STM32F4. Урок 13 - Робота з SD-картою

  • Час 26-03-2015, 20:23
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

Ця бібліотека призначена для роботи з SD-картою з файловою системою FAT через SDIO інтерфейс з використанням DMA під управлінням мікроконтролера STM32f4.

Примітка: існує бібліотека для USB флешки з файловою системою FATFS (урок №32) і комбінована USB + SD бібліотека (урок №87).

Для створення даної бібліотеки (FATFS) був використана бібліотека з відкритим вихідним кодом від STM для роботи з функціями SDIO.

Бібліотека FATFS має дуже хорошу англомовну документацію, в якій описані всі необхідні функції і параметри.

Далі в статті будуть описано кілька основних функцій, що дозволяють змонтувати флешку, відкрити файл, прочитати або записати рядок у нього.

Швидкість читання блоку складає 2.4Мбайт / с в буфер 512 байт, швидкість запису на картку - 500 кбайт / с.

Починаючи з бібліотеки версії 1.4 можна перемикати з 4х бітного на одне-бітний режим управління у файлі "stm32_ub_sdcard.h" режимі SDIO.

Акселерометр і гіроскоп MPU6050

  • Час 26-03-2015, 12:42
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

Перш ніж приступити до розгляду модуля гіроскопа і акселерометра, думаю, буде не зайвим коротко розібратися що це таке. Гіроскоп являє собою пристрій, що реагує на зміну кутів орієнтації контрольованого тіла. У класичному уявленні це якийсь інерційний предмет, який швидко обертається на підвісах. Як результат обертається предмет завжди буде зберігати свій напрямок, а по положенню підвісів можна визначити кут відхилення. Насправді ж електронні гіроскопи побудовані за іншою схемою і влаштовані трохи складніше (обертається дзига впихнути в мікросхему було б не просто). Акселерометр - це пристрій, який вимірює проекцію удаваного прискорення, тобто різниці між істинним прискоренням об'єкта і гравітаційним прискоренням. На простому прикладі така система являє собою деяку масу, закріплену на підвісі, що володіє пружністю (пружина для доброго прикладу).

STM32F4. Урок 12 - UART

  • Час 24-03-2015, 12:24
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

Дана бібліотека дозволяє використовувати до 6 UART мікроконтролера.
UART, які будуть використовуватися, повинні бути оголошені в Н-і C-файлах. У структурі "UART []" повинні бути вказані всі необхідні параметри (тобто розташування висновків, швидкість передачі даних і т.д.).

Бібліотека містить функції передачі даних по UART і функцію перевірки, чи прийшла рядок (передавач повинен підтримувати функцію тегів, наприклад повернення покажчика до початку рядка).
Прийом даних відбувається у фоновому режимі з використанням переривання.
У прикладі використовується 2 UART:

  • COM2 по UART2 [TX = PA2], [RX = PA3] з 115200 Baud
  • COM3 по UART3 [TX = PD8], [RX = PD9] з 115200 Baud

Вимоги:

   Модулі CooCox-IDE: GPIO, USART, MISC.
   Підтримувані бібліотеки: відсутні.

Перерахування:

typedef enum {NONE = 0, // нет ідентифікатора в кінці LFCR, // новий рядок + переклад каретки (0x0A, 0x0D) CRLF, // переклад каретки + новий рядок (0x0D, 0x0A) LF, // тільки новий рядок (0x0A ) CR // тільки переклад каретки (0x0D)} UART_LASTBYTE_t; typedef enum {RX_EMPTY = 0, // Нічого не прийнято RX_READY, // Зміст приймального буфера RX_FULL // Приймальний буфер заповнений} UART_RXSTATUS_t;

Функції:

Декоративний термометр на мікроконтролері

  • Час 18-03-2015, 20:10
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

У цій статті мова піде про пристрій, що в цілому не буде вирішувати складні завдання, управляти механізмами і так далі. Мова піде про своєрідному сувенірі, "дрібничці".

Власне пристрій являє собою термометр. Але є кілька нюансів, які і роблять його більше сувеніром, ніж приладом з конкретним призначенням: точність вимірювання умовна - дані про температуру відображаються лише приблизно, як «індикатора», дисплея, виступає світлодіодна «смужка». Що ж стосується точності, то як ви зрозуміли, вона не особливо потрібна, але тим не менш є можливість використання високоточного датчика температури. 

Закінчивши з вступної частиною можна зайнятися розбором схеми. Основа всієї конструкції - мікроконтролер ATmega8. Чому саме він? На його користь можна віднести такі фактори: 8Кб пам'яті, велике у висновків, наявність АЦП.

& Quot; Що дозволено Юпітеру ... & quot ;, або Чому одні мікроконтролери надійніше інших

  • Час 18-03-2015, 18:52
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

У статті автор розглядає деякі аспекти, на які розробникам слід звернути увагу при виборі мікроконтролера для застосувань, що відповідають високим вимогам надійності і безпеки.

За родом своєї професійної діяльності в дистриб'юторської компанії ТОВ «Елтех» автору доводиться обговорювати проблеми розробки пристроїв з багатьма вітчизняними виробниками електроніки. У ході цих обговорень з'ясовується, що російські розробники використовують для вирішення своїх завдань мікроконтролери всіх виробників, представлених на електронному ринку. Для деяких виробників цілком підходять мікроконтролери так званого «комерційного» виконання. Але є виробники, для яких одним з найважливіших критеріїв вибору електронного компонента є його надійність. Насамперед, це фахівці, що працюють в області виробництва медичної техніки, ліфтового обладнання, автомобільної електроніки.

STM32F4. Урок 11 - Генератор випадкових чисел

  • Час 12-03-2015, 17:37
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

Дана бібліотека дозволяє отримати випадкові числа. Генератор випадкових чисел використовує для роботи центральний процесор. Ця функція дозволяє отримувати випадкове значення в заданому діапазоні чисел, наприклад між 50 і 100.

Приклад роботи:

STM32F4. Урок 11 - Генератор випадкових чисел

STM32F4. Урок 10 - Програмні таймер і лічильник

  • Час 9-03-2015, 16:18
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

Ця бібліотека використовує системний таймер, що відраховує по 1мкс (або 1мс) і обробляє переривання. Дана бібліотека дозволяє реалізувати різні паузи (в мікросекундах, миллисекундах і секундах). Бібліотека дозволяє запускати і опитувати циклічно два програмних таймера (теоретично може бути запущено будь-яку кількість таймерів). Програмні лічильники дозволяють вимірювати проміжки часу. Лічильник запускається з 0 позначки і може бути запитаний в деякій точці, отримавши пройдений час (в мікросекундах, миллисекундах і секундах).

Вимоги:

   Модулі CooCox-IDE: відсутні.
   Підтримувані бібліотеки: відсутні.

Перерахування:

typedef enum {TIMER_STOP = 0, // Таймер зупинений і скинутий TIMER_START_us, // Таймер запущений в режимі мікросекунд TIMER_START_ms, // Timer запущений в режимі мілісекунд TIMER_START_s, // Timer запущений в режимі секунд TIMER_CHECK // Перевірка закінчення роботи таймера} TIMER_STATUS_t; typedef enum {TIMER_HOLD = 0, // Таймер закінчив роботу TIMER_RUN // Таймер працює} TIMER_CHECK_t; typedef enum {COUNTER_STOP = 0, // Лічильник зупинений COUNTER_START_us, // Лічильник запущений в режимі мікросекунд COUNTER_START_ms, // Лічильник запущений в режимі мілісекунд COUNTER_START_s, // Лічильник запущений в режимі секунд COUNTER_CHECK // Перевірка, скільки часу пройшло} COUNTER_STATUS_t;  

Функції:

Термометр на датчику SE97B і AVR-микроконтроллере

  • Час 6-03-2015, 13:36
  • Автор admin
  • Число коментарів 0 Комент.
  • Силка url

Думаю, багато хто може можуть знайти у себе в засіках відгомони щедрості компанії NXP semiconductors у вигляді безкоштовних зразків електронних компонентів. Роздавали вони і красиво оформлені набори I2C мікросхем для різних класів додатків. В одному з таких наборів (computer applications) були датчики температури під маркуванням SE97BTP. Крім датчика температури ця мікросхема виконує функції EEPROM пам'яті. Так от, якщо є така мікросхема, то чому б не спробувати її використовувати де-небудь у своїх розробках? Найдрібніший корпус датчика HWSON8 дозволить без праці вбудувати термометр в будь-який пристрій, ну або майже в будь-яке.

Термометр на датчику SE97B і AVR-микроконтроллере