Останнім часом, у нас, в CS@UCU, завелося багато демоплат, поміж них, за кількістю, домінують плати Discovery від STM32. В них почав плутатися вже й і я, що говорити про студентів. Тому вирішив написати такий собі довідничок: короткий опис плати, ключові компоненти, зокрема -- присутня на платі периферія, особливості її мікроконтролера (MCU), супроводжуючи інформацію посиланнями на офіційні сторінки, даташіти і т.д.
Варто зауважити, що на офіційних сторінках мікроконтролерів, крім даташітів є також посилання на величезну кількість так-званих AppNote -- прикладів використання якихось можливостей мікроконтролерів. Дуже рекомендую ознайомитися хоча б із списками. :-)
Порядок плат менш-більш довільний, грубо -- по спаданню потужності мікроконтролера на платі та різноманітності периферії.
Описано:
Базова інформація про плату:
Описано:
- STM32F4Discovery
- STM32F3Discovery
- 32F072BDISCOVERY
- 32L0538DISCOVERY
- 32L152CDISCOVERY
- STM32VLDISCOVERY
- китайська "Blue pill"
- екзотична M24LR-DISCOVERY
STM32F4Discovery
Цікава плата із одним із найпотужніших мікроконтролерів
сімейства (на М7 не заглядатимемося поки). Новіший варіант, (із кодом
замовлення STM32F407G-DISC1).
Базова інформація про плату:
- Офіційна сторінка, ціна на момент написання -- 20$.
- Код модифікації: STM32F407G-DISC1 (існує популярний старіший варіант плати)
- Даташіт (UM1472)
- Програматор ST-LINK/V2-A, із підтримкою VCP (може теж колись поговоримо).
- Офіційна сторінка мікроконтролера: STM32F407VG
- LIS3DSH -- трьохосьовий акселерометр.
- MP45DT02 -- цифровий, слабонаправлений, MEMS-мікрофон.
- CS43L22 -- ЦАП, для аудіо, включаючи стерео.
- 4 світлодіоди, під'єднаних до GPIO.
- Традиційних дві кнопки, user i reset.
- USB OTG FS з конектором micro-AB. З ним пов'язано два світлодіоди: LD7 (зелений) -- VBUS і LD8 (червоний) -- over-current.
- STM32F407VG
- ARM Cortex M4
- Документація на серію, до якої він належить: "RM0090: STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 advanced ARM®-based 32-bit MCUs"
- Документація конкретно на цей мікроконтролер: "DS8626: ARM Cortex-M4 32b MCU+FPU, 210DMIPS, up to 1MB Flash/192+4KB RAM, USB OTG HS/FS, Ethernet, 17 TIMs, 3 ADCs, 15 comm. interfaces & camera". (Говорилося вже про цю дивну манеру STM ділити документацію... Ніби зрозуміло, чого так, але все рівно весело.)
- Помилки в ньому: "ES0182: STM32F405/407xx and STM32F415/417xx device limitations"
- Спільний документ для всіх ARM Cortex M4 від STM32 -- особливості ядра: "PM0214: STM32F3 Series, STM32F4 Series, STM32L4 Series and STM32L4+ Series Cortex®-M4 programming manual"
- До 168 MHz
- 192Kb RAM, правда, двома не суміжними в адресному просторі фрагментами, 128Кб і 64Кб. А з точки зору швидкодії діляться навіть так: 16 + 112 + 64.
- Плюс 4Кб "backup RAM", пам'яті, яка резервується разом із RTC.
- 1Mb Flash
- 16 каналів DMA
- 10 таймерів загального використання, якщо не вказано інше, 16-бітних (TIM2 (32 біти), TIM3, TIM4, TIM5 (32 біти) - 4 канали, TIM9, TIM12 - 2 канали, TIM10, TIM11, TIM13, TIM14 - 1 канал),
- 2 просунутих таймери (TIM1, TIM8),
- 2 базових таймери (TIM6, TIM7).
- Всього каналів ШІМ (PWM) - 30, з комплементарними 38 (ці числа можуть бути неточними).
- RTC, IWDG, WWDG.
- Генератор випадкових чисел.
- 3 SPI та 2 I2S (що перетинаються із SPI2/SPI3).
- 3 I2C
- 4 USART, 2 UART
- 2 CAN
- 1 SDIO -- підтримка SD/SDIO/MMC-карт
- 1 Ethernet
- USB OTG FS/HS
- 3 АЦП, 16 каналів, до 12 біт
- 1 ЦАП, 2 канали, 12 біт
- Інтерфейс пам'яті FSMC (PCCard/Compact Flash, SRAM, PSRAM, NOR Flash, NAND Flash, LCD parallel interface).
- Інтерфейс камери (DCMI), до 54Мб/с
STM32F3Discovery
Базова інформація про плату:
- Офіційна сторінка. Ціна, на момент написання: 15.5$
- Даташіт (UM1570).
- Програматор ST-LINK/V2 або ST-LINK/V2-B. Останній підтримує VCP.
- Офіційна сторінка мікроконтролера: STM32F303VCT6.
- Користувацький USB (Device-only).
- Трьохосьовий MEMS-гіроскоп L3GD20. Три діапазони: 250/500/2000 градусів за секунду (dps), інтерфейс I2C або SPI, на вибір (на платі приєднаний до SPI1), лінії переривань, фільтри, 8-бітний вбудований термометр.
- LSM303DLHC -- трьохосьовий акселерометр та магнітометр. Діапазон, відповідно, ±2g/±4g/±8g/±16g та ±1.3 to ±8.1 гаус, I2C (під'єднано на платі до I2C1), можливість запрограмувати на виявлення вільного падіння та початок руху.
- 8 користувацьких світлодіодів різних кольорів (по два червоних, синіх, зелених та оранжевих). Крім того, на платі два службових світлодіоди -- живлення і зв'язок по USB.
- Користувацька кнопка + кнопка перевантаження контролера.
- Користувацький USB (Mini B) + USB програматора.
- STM32F303VCT6.
- ARM Cortex M4F
- Документація на серію, до якої він належить: "RM0316: STM32F303xB/C/D/E, STM32F303x6/8, STM32F328x8, STM32F358xC, STM32F398xE advanced ARM®-based MCUs "
- Документація конкретно на цей мікроконтролер: "DS9118: ARM®-based Cortex®-M4 32b MCU+FPU, up to 256KB Flash+ 48KB SRAM, 4 ADCs, 2 DAC ch., 7 comp, 4 PGA, timers, 2.0-3.6 V".
- Помилки в ньому: "ES0204: STM32F303xB/C Rev Z and Y device limitations".
- Спільний документ для всіх ARM Cortex M4 від STM32 -- особливості ядра: "PM0214: STM32F3 Series, STM32F4 Series, STM32L4 Series and STM32L4+ Series Cortex®-M4 programming manual"
- До 72MHz
- 48 KB RAM (неперервна область, 8+40)
- 256 KB Flash
- 12 каналів DMA
- 6 таймерів загального використання, якщо не вказано інше -- 16-бітних. (TIM2 (32 біти), TIM3, TIM4 - 4 канали, TIM15 - 2 канали, TIM16, TIM17 - 1 канал);
- 2 просунутих таймери (TIM1, TIM8);
- 2 базових таймери (TIM6, TIM7).
- Всього каналів ШІМ (PWM) - 24, з комплементарними 35.
- RTC, IWDG, WWDG
- 3 SPI/2 I2S (перетинаються із SPI2/SPI3).
- 3 I2C
- 3 USART/2 UART
- 1 CAN
- 1 USB FS
- 4 АЦП, 39 каналів, до 12 біт.
- 1 ЦАП, 2 канали, 12 біт.
- 7 аналогових компараторів.
32F072BDISCOVERY
Зверніть увагу на пропущені літери "STM" на початку -- нова політика, здається, опускати їх в назвах демоплат. :-) Хоча, дотримуються не зовсім послідовно.
Плата, що демонструє мікроконтролери серії Cortex M0 -- Low-end, так би мовити. Скромніша за периферією, ніж попередні.
Базова інформація про плату:
- Офіційна сторінка. Ціна, на момент написання: 10.5$
- Даташіт (UM1690).
- Програматор ST-LINK/V2.
- Офіційна сторінка мікроконтролера: STM32F072RBT6.
- Користувацький USB (Device-only).
- Трьохосьовий MEMS-гіроскоп L3GD20. Три діапазони 250/500/2000 градусів за секунду (dps), інтерфейс I2C або SPI, на вибір (на платі приєднаний до SPI2), 2 лінії переривань, фільтри, 8-бітний вбудований термометр.
- Linear touch sensor, який може служити або сенсором на 3 позиції, або 4-ма кнопками (використані для нього піни, для мінімізації завад, на зовнішню колодку не виведені -- PA2, PA3, PA6, PA7, PB0, PB1). Відповідний AppNote: "AN4312: Guidelines for designing touch sensing applications with surface sensors".
- 4 користувацьких світлодіоди різних кольорів (червоний, синій, зелений та оранжевий). Крім того, на платі два службових світлодіоди -- живлення і зв'язок по USB.
- Користувацька кнопка + кнопка перевантаження контролера.
- Користувацький USB (Mini B) + USB програматора.
- RF EEprom конектор.
- STM32F072RBT6
- ARM Cortex M0
- Документація на серію, до якої він належить: "RM0091: STM32F0x1/STM32F0x2/STM32F0x8 advanced ARM®-based 32-bit MCUs"
- Документація конкретно на цей мікроконтролер: "DS9826: ARM®-based 32-bit MCU, up to 128 KB Flash, crystal-less USB FS 2.0, CAN, 12 timers, ADC, DAC & comm. interfaces, 2.0 - 3.6 V".
- Помилки в ньому: "ES0223: STM32F072x8/xB device limitations".
- Спільний документ для всіх ARM Cortex M0 від STM32 -- особливості ядра: "PM0215: STM32F0xxx Cortex-M0 programming manual".
- До 48MHz
- 16 KB RAM
- 256 KB Flash
- 12 каналів DMA
- 6 таймерів загального використання, якщо не вказано інше -- 16-бітних. (TIM2 (32 біти), TIM3 - 4 канали, TIM15 - 2 канали, TIM14, TIM16, TIM17 - 1 канал);
- 1 просунутий таймер (TIM1);
- 2 базових таймери (TIM6, TIM7).
- Всього каналів ШІМ (PWM) - 17, з комплементарними 23.
- RTC, IWDG, WWDG
- 2 SPI/2 I2S (перетинаються).
- 2 I2C
- 4 USART
- 1 CAN
- 1 USB FS
- High-definition multimedia interface (HDMI) -- consumer electronics control (CEC)
- Touch sensing controller (TSC)
- 1 АЦП, 16 каналів, до 12 біт
- 1 ЦАП, 2 канали, 12 біт
- 2 аналогових компаратора
32L0538DISCOVERY
Ще одна демоплата нижнього діапазону. Цього разу -- ARM Cortex M0+. Як на мене, менш цікава та із слабшим MCU, ніж попередня, але вдвічі дорожча.
Базова інформація про плату:
- Офіційна сторінка. Ціна, на момент написання: 22.9$
- Даташіт (UM1775).
- Програматор ST-LINK/V2-1, із підтримкою VCP.
- Офіційна сторінка мікроконтролера: STM32L053R8.
- Користувацький USB (Device-only).
- GDE021A1 -- 2.04" E-paper Display, 172x72 пікселів, 1 або 2 біти на піксель (4 відтінки сірого), на контролері SSD1606. З ним трішки складно. Даташіт відправляє до (виробника?): www.good-display.com, але цієї моделі там немає. Знайшлася вона на smart-prototyping: сам дисплей (але без посилань на документацію), готовий модуль, де є посилання на даташіт, даташіт контролера SSD1606, приклади коду для STM32 і ардуїнівську бібліотеку. (Див. також приклад використання модуля.)
- Linear touch sensor, який може служити або сенсором на 3 позиції, або 4-ма кнопками (використані для нього піни, для мінімізації завад, на зовнішню колодку не виведені -- PA2, PA3, PA6, PA7, PB0, PB1). Відповідний AppNote, AN2869, на сайті st.com відсутній, хоча, підозрюю, чи то це старіший варіант наступного документа: "AN4312: Guidelines for designing touch sensing applications with surface sensors", (чи таки альтернативна технологія?).
- 2 користувацьких світлодіоди (червоний і зелений). Крім того, на платі два службових світлодіоди -- живлення і зв'язок по USB.
- Користувацька кнопка + кнопка перевантаження контролера.
- Користувацький USB (Mini B) + USB програматора.
- NFC (Near Field Communication) конектор.
- STM32L053R8
- ARM Cortex M0+
- Документація на серію, до якої він належить: "RM0367: Ultra-low-power STM32L0x3 advanced ARM®-based 32-bit MCUs"
- Документація конкретно на цей мікроконтролер: "DS10152: Ultra-low-power 32-bit MCU Arm®-based Cortex®-M0+, up to 64KB Flash, 8KB SRAM, 2KB EEPROM, LCD, USB, ADC, DAC".
- Помилки в ньому: "ES0253: STM32L053x6/8 device limitations".
- Спільний документ для всіх ARM Cortex M0+ від STM32 -- особливості ядра: "PM0223: STM32L0 Series Cortex®-M0+ programming manual"
- До 32MHz (і від 32кГц)
- 8 KB RAM
- 16 KB Flash
- 2Кб EEPROM
- 7 каналів DMA
- 3 таймери загального використання, 16-бітних. (TIM2 - 4 канали, TIM21, TIM22 - 2 канали);
- 0 просунутих таймерів;
- 1 базовий таймер (TIM6);
- 1 LPTIM -- low-power timer, із незалежним тактуванням та 1 каналом.
- Всього каналів ШІМ (PWM) - 8, комплементарних немає.
- RTC, IWDG, WWDG
- 2+2 SPI/1 I2S (I2S суміщений із SPI2, 2 повноцінних SPI, 2 -- USART в режимі SPI Master).
- 2 I2C
- 2 USART + 1 LPUART
- 1 USB FS
- Драйвер LCD
- Touch sensing controller (TSC)
- 1 АЦП, 16 каналів, до 12 біт
- 1 ЦАП, 1 канал, 12 біт
- 2 аналогових компаратора
32L152CDISCOVERY
Ще одна плата, трохи старіша, із ARM Cortex M3.
Базова інформація про плату:
- Офіційна сторінка. Ціна, на момент написання: 12.3$
- Даташіт (UM1775).
- Програматор ST-LINK/V2.
- Офіційна сторінка мікроконтролера: STM32L152RBT6 (в статусі "Not recommended for new design).
- LCD, 6 14-сегментних цифр, стовпчик на 4 сегменти, 24 піни + 4 спільних. Займає 24 піни, щоб ними скористатися для ще чогось, слід витягнути дисплей.
- Linear touch sensor, який може служити або сенсором на 3 позиції, або 4-ма кнопками ("його" піни, для мінімізації завад, на зовнішню колодку не виведені -- PA6, PA7, PC4, PC5, PB0, PB1). Відповідний AppNote: "AN4312: Guidelines for designing touch sensing applications with surface sensors".
- 2 користувацьких світлодіоди (червоний і зелений). Крім того, на платі два службових світлодіоди -- живлення і зв'язок по USB.
- Користувацька кнопка + кнопка перевантаження контролера.
- STM32L152RBT6
- ARM Cortex M3
- Документація на серію, до якої він належить: "RM0038: STM32L100xx, STM32L151xx, STM32L152xx and STM32L162xx advanced ARM®-based 32-bit MCUs"
- Документація конкретно на цей мікроконтролер: "DS6876: Ultra-low-power 32-bit MCU ARM®-based Cortex®-M3, 128KB Flash, 16KB SRAM, 4KB EEPROM, LCD, USB, ADC, DAC".
- Помилки в ньому: "ES0125: STM32L100x6/8/B, STM32L151x6/8/B and STM32L152x6/8/B ultra-low-power device limitations ".
- Спільний документ для всіх ARM Cortex M3 від STM32 -- особливості ядра: " PM0056: STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual"
- До 32MHz (і від 32кГц)
- 16 KB RAM
- 128 KB Flash
- 4 КB EEPROM
- 7 каналів DMA
- 6 таймерів загального використання, 16-бітних. (TIM2, TIM3, TIM4 - 4 канали, TIM19 - 2 канали, TIM10, TIM11 - 1 канал);
- 0 просунутих таймерів;
- 2 базових таймери (TIM6, TIM7);
- Всього каналів ШІМ (PWM) - 16, комплементарних немає.
- RTC, IWDG, WWDG
- 2 SPI
- 2 I2C
- 3 USART
- 1 USB FS (але на платі підтримки чи конектора немає)
- Драйвер LCD
- 1 АЦП, 20 каналів, до 12 біт
- 2 ЦАП, 2 канал, 12 біт
- 2 аналогових компаратора
STM32VLDISCOVERY
Плата із якої в мене все починалося із STM32. :-) Найбільш примітивна із Discovery-плат.
Базова інформація про плату:
- Офіційна сторінка. Ціна, на момент написання: 9.7$
- Даташіт (UM0919).
- Програматор ST-LINK (V1). Не підтримується SW4STM32!
- Офіційна сторінка мікроконтролера: STM32F100RBT6B.
- 2 користувацьких світлодіоди (зелений і синій). Крім того, на платі два службових світлодіоди -- живлення і зв'язок по USB.
- Користувацька кнопка + кнопка перевантаження контролера.
- STM32F100RBT6B
- ARM Cortex M3
- Документація на серію, до якої він належить: "RM0041: STM32F100xx advanced ARM®-based 32-bit MCUs"
- Документація конкретно на цей мікроконтролер: "DS6517: Low & medium-density value line, advanced ARM®-based 32-bit MCU with 16 to 128 KB Flash, 12 timers, ADC, DAC & 8 comm interfaces ".
- Помилки в ньому: "ES093: STM32F100x4, STM32F100x6, STM32F100x8 and STM32F100xB low and medium-density value line device limitations".
- Спільний документ для всіх ARM Cortex M3 від STM32 -- особливості ядра: "PM0056: STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual"
- До 24MHz
- 8 KB RAM
- 128 KB Flash
- 7 каналів DMA
- 6 таймерів загального використання, 16-бітних. (TIM2, TIM3, TIM4 - 4 канали, TIM15 - 2 канали, TIM16, TIM17 - 1 канал);
- 1 просунутий таймер (TIM1);
- 2 базових таймери (TIM6, TIM7).
- Всього каналів ШІМ (PWM) - 20, 28 з комплементарними.
- RTC (доволі урізаний), IWDG, WWDG
- 2 SPI
- 2 I2C
- 3 USART
- High-definition multimedia interface (HDMI) -- consumer electronics control (CEC)
- 1 АЦП, 16 каналів, до 12 біт
- 2 ЦАП, 2 канал, 12 біт
"Blue Pill"
Плата ця -- аж ніяк не від STMicroelectronics, але, враховуючи її дешевизну та популярність, вирішив згадати. Був один час такий проект від LeafLabs -- Maple, Arduino на базі STM32. Він породив ціле сімейство платок із STM32. Поміж них "Blue Pill", ось така:
Я, чесно кажучи, ніколи з нею як із Arduino не працював. Замість всієї цієї возні із бутлоадерами, просто під'єдную ST-Link і програмую як звичайну STM-ку. Але, кому цікаво, див: головна сторінка проекту, "Programming an STM32F103 board using its USB port (Blue Pill)", "Converting an STM32F103 board to a Black Magic Probe".
Базова інформація про плату:
- Напів-офіційна сторінка. Ціна, на момент написання, на Аліекспрес: ~2$
- Pinout та принципова схема.
- Плати ці мають баг -- резистор підтяжки на лінії D+ USB має мати опір 1.5кОм, але на цій платі він (R10 -- див. на нижній стороні) має опір 10кОм (деякі варіанти - 4.7кОм). В принципі, частина USB-хостів її "визнають" і так, якщо ж ні -- слід або перепаяти цей резистор, або під'єднати паралельно із ним, між PA12 i 3.3V резистор опором 1.8кОм.
- Офіційна сторінка мікроконтролера: STM32F103C8.
- 1 користувацький світлодіод на PC13.
- SWD-конектор для програматора.
- Користувацький USB.
- Годинниковий кварц на 32кГц для RTC (на додачу до 8МГц кварцу для MCU) -- всі плати вище на ньому зекономили, та й "головний" зовнішній кварц на більшості відсутній. Правда, тут він необхідний для USB -- решта мають окремий програматор із своїм кварцом.
- Кнопка перевантаження контролера.
- STM32F103C8
- ARM Cortex M3
- Документація на серію, до якої він належить: "RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM®-based 32-bit MCUs"
- Документація конкретно на цей мікроконтролер: " DS5319: Medium-density performance line ARM®-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 com. interfaces".
- Помилки в ньому: "ES096: STM32F101x8/B, STM32F102x8/B and STM32F103x8/B medium-density device limitations".
- Спільний документ для всіх ARM Cortex M3 від STM32 -- особливості ядра: "PM0056: STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual".
- До 72 MHz
- 20 KB RAM
- 64 KB Flash (Кажуть любителі, що фактично на деяких чіпах є 128 Кб, але покладатися ні на цей факт, ні навіть якщо пам'ять ця присутня, на неї -- не варто! Вона може бути "урізаною" із комерційних міркувань, і тоді все буде ОК, але вона може бути просто пошкодженою, що не дало використати цей чіп як старшу модель, STM32F103CB)
- 7 каналів DMA
- 3 таймери загального використання, 16-бітні. (TIM2, TIM3, TIM4 - 4 канали);
- 1 просунутий таймер (TIM1);
- 0 базових таймерів.
- Всього каналів ШІМ (PWM) - 16, 20 з комплементарними.
- RTC (доволі урізаний), IWDG, WWDG
- 2 SPI
- 2 I2C
- 3 USART
- 1 USB FS
- 1 CAN
- 2 АЦП, 10 каналів, до 12 біт
M24LR-DISCOVERY
Ще один набір демоплат, трішки відмінний від попередніх: вони демонструють M24LR04E-R Dual Interface EEPROM -- грубо кажучи, пам'ять із радіоінтерфейсом. При чому, плата M24LR не потребує зовнішнього живлення -- живиться теж індуктивно, від RFID-рідера або NFC-сумісного телефона. Друга плата, RF transceiver, власне, містить RFID-рідер -- після підключення до комп'ютера, може служити джерелом живлення та засобом комунікації із поставленою на неї чи близько поруч, M24LR. Однак, із M24LR можуть працювати і деякі телефони з NFC -- STM навіть надає відповідну програмку NfcV-Reader (доступна через Google Play).
Детально їх не розглядатиму, лише основні посилання:
M24LR:
- M24LR04E-R -- 4Кб EEPROM, із подвійним інтерфейсом: I2C або ISO/IEC 15693 та живленням -- безпосереднім чи по радіоканалу. (Має навіть вивід Vout, для живлення інших пристроїв).
- Антена.
- I2C термометр STTS751
- 24-сегментний LCD (вже згадуваний вище -- в 32L152Discovery)
- Дві кнопки - користувацька і перезавантаження
- Ряд конекторів для роботи із платою (див. даташіт: "UM1589: M24LR-DISCOVERY kit user guide")
- 8-бітний мікроконтролер STM8L152C6T6, із 32 Кб Flash, 2 Кб RAM, 1Кб EEPROM і різноманітними, звичними вже таймерами та комунікаційною периферією.
- CR95HF transceiver, з UART та SPI-інтерфейсом.
- Антена.
- Різноманітні конектори.
- STM32F103CBT6 -- варіант згаданого вище, в Blue-pill, мікроконтролера із 128Кб RAM (решту опису див. там. :-)
На цьому наш список закінчимо, хоча, в майбутньому він може доповнюватися (інформацією), поповнюватися (платами), виправлятися. А поки --
Дякую за увагу!
Немає коментарів:
Дописати коментар