STM32 – rodzina 32–bitowychmikrokontrolerów w układach scalonych produkowanych przez francusko-włoską firmę STMicroelectronics. Chipy STM32 są pogrupowane w różne, blisko spokrewnione serie, oparte na 32–bitowych procesorach ARM, takich jak Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0 + lub Cortex-M0. Każdy mikrokontroler składa się z rdzenia procesora, statycznej pamięci RAM, pamięci flash (do przechowywania), interfejsu debugowania i różnych urządzeń peryferyjnych[1]. Mikrokontrolery STM32 są przystosowane do zasilania pojedynczym napięciem o wartości 2 do 3,6 V.
Poniżej znajduje się historia ewolucji rodziny mikrokontrolerów STM32.
Październik 2006 – firma STMicroelectronics ogłasza licencję na rdzeń ARM Cortex–M3[2]
Czerwiec 2007– firma ogłasza serię STM32 F1 opartą na rdzeniu ARM Cortex–M3[3]
Październik 2009 – firma ogłasza, że nowe chipy ARM zostaną zbudowane przy wykorzystaniu procesu technologicznego 90 nm[4]
Kwiecień 2010 – firma ogłasza chipy z serii STM32 L1[5]
Wrzesień 2010 – firma ogłasza płytkę rozwojową STM32VLDISCOVERY[6]
Listopad 2010 – firma ogłasza układy z serii STM32 F2 oparte na rdzeniu ARM Cortex–M3 oraz przyszły rozwój układów opartych na rdzeniach ARM Cortex–M4 i ARM Cortex–M3[7]
Luty 2011 – firma wypuszcza na rynek płytkę STM32L-DISCOVERY[8]
Wrzesień 2011 – firma wypuszcza serię STM32 F4 oparta na rdzeniu ARM Cortex-M4F oraz płytkę STM32F4-DISCOVERY[9]
Maj 2012 – firma wypuszcza na rynek płytkę STM32F0-DISCOVERY[10]
Luty 2014 – firma wprowadza zestaw startowy STM32Nucleo, zgodny ze strandardem Arduino[11]
Październik 2016 – firma ogłasza serię mikrokontolerów STM32H7, mikrokontrolery te wyprodukowano w technologii 40 nm[12]
Październik 2018 – firma ogłasza serię mikrokontolerów STM32L5, charakteryzującą się bardzo niskim poborem mocy[13]
Luty 2021 – firma ST ogłasza serię mikrokontrolerów STM32U5, charakteryzującą się bardzo niskim poborem mocy, mikrokontrolery te oparte są na rdzeniu ARM Cortex-M33[14].
Seria STM32 F0 to pierwsza rodzina mikrokontrolerów STM32, która została oparta na rdzeniu ARM Cortex-M0. Rdzeń ten może być taktowany częstotliwością do 48 MHz. Cechują się dużą wydajnością w czasie rzeczywistym, niskim zużyciem energii oraz zaawansowaną architekturą[16]. Seria jest podzielona na 4 linie[17]:
STM32F0x0 Value Line
STM32F0x1 Access Line – posiada szereg wbudowanych układów peryferyjnych
STM32F0x2 USB Line – skierowana na układy transmisji danych, w tym transmisji przez moduł komunikacyjny USB (w porównaniu do linii Value Line moduł nie wymaga taktowania generatorem stabilizowanym kwarcem); posiada interfejs CAN, HDMI oraz SPI z możliwością konfigurowania jako I2S;
STM32F0x8 Low-voltage Line – przewidziana do zasilania niskim napięciem 1,8 V ±8%
Seria STM32 F1 to pierwsza grupa mikrokontrolerów STM32, która była oparta na rdzeniu ARM Cortex-M3. Z czasem seria F1 zwiększała szybkość procesora oraz rozmiar pamięci wewnętrznej oraz powiększała różnorodność urządzeń peryferyjnych. Seria F1 składa się z pięciu linii, które są kompatybilne między sobą pod względem pinów, oprogramowania czy urządzeń peryferyjnych[18]:
W serii tej zastosowano rdzeń ARM Cortex-M3, taktowany z maksymalną częstotliwością do 120 MHz[19]. CPU za pośrednictwem bloku ART ma dostęp do pamięci Flash, w wyniku czego umożliwia wymianę danych z pełną prędkością wynikająca z częstotliwości taktowania rdzenia mikrokontrolera, bez konieczności wydłużania czasu dostępu za pomocą cyklu oczekiwania. Pod względem wyprowadzeń, seria ta jest kompatybilna z serią F4[20]. Seria jest podzielona na 2 linie[21]:
STM32F205/215 – dostępne w wersjach z pamięcią Flash od 128 kB do 1 MB, wyposażono w jeden kanał USB-OTG (FS/HS)
STM32F207/217 – wyposażono w dwa interfejsy USB-OTG (FS/HS) oraz jeden interfejs USB-OTG FS, interfejs kamery CCD oraz MAC Ethernet 10/100, sprzętowy generator liczb pseudolosowych, moduł kryptograficzny (3DES, MD5, AES256/SHA-1 oraz HMAC)
Seria mikrokontrolerów F3 bazuje na rdzeniu ARM Cortex-M4F (z FPU) o taktowaniu 72 MHz. Zawiera liczne peryferia analogowe: 12-bitowy przetwornik A/C, 12-bitowy przetwornik C/A, wzmacniacze PGA – 16-bitowy przetwornik A/C typu sigma-delta. Zawierają również timery, interfejsy komunikacyjne (USB, SPI, USART, I²C, CAN, HDMI), kontroler przycisków pojemnościowych, moduł do obliczania CRC, moduł DMA, jednostkę MPU[22]. Seria jest podzielona na sześć linii[23]:
W tej serii mikrokontrolerów zastosowano rdzeń ARM Cortex-M4F. W ramach rodziny STM32F4 producent oferuje 33 typy mikrokontrolerów, wyposażonych w pamięć Flash o maksymalnej pojemności od 512 KB do 2 MB, pamięć SRAM o pojemności 192 lub 256 KB[24].
Seria F7 bazuje na rdzeniu ARM Cortex-M7 o taktowaniu maksymalnym 216 MHz. Frima STM jest pierwszą firmą, która zastosowała ten rdzeń w swoich mikrokontrolerach. Cortex-M7 jest wstecznie kompatybilny z zestawem instrukcji rdzenia Cortex-M4[25]. W mikrokontrolerach tych wykorzystano interfej Master AXI, który zapewnia „splatanie” kilku kanałów magistrali AHB w jeden, szybki kanał dwukierunkowej komunikacji rdzenia z otoczeniem. Seria F7 zawiera również dwa interfejsy: QSPI (realizują transmisję danych z pamięciami wyposażonymi w 1-, 4- i 8-bitowe interfejsy komunikacyjne), USB-OTG (z wydzielonym zasilaniem, umożliwia korzystanie z tego interfejsu także przy zasilaniu mikrokontrolera napięciem 1,8 V)[26].
Seria G0 jest ulepszonym następcą rodziny mikrokontrolerów F0. Mikrokontrolery tej serii bazują na rdzeniu ARM Cortex-M0+ o maksymalnym taktowaniu 64 MHz. W zależności od zastosowanych układów peryferyjnych podzielono ją na trzy linie: Value Line, Access Line oraz Access Line & Encryption[27].
Seria G4 oparta jest na rdzeniu ARM Cortex-M4F o taktowaniu 170 MHz. Jest to kolejna generacja mikrokontrolerów, która ma zastąpić serię F3, oferując m.in. lepszą sprawność energetyczną oraz wydajność w porównaniu do starszych serii F3 czy F4. Układy zawierają dwa akceleratory obliczeniowe przyspieszające przetwarzanie danych, wykorzystujące algorytm Cordic oraz funkcje filtrujące. Mikrokontrolery z tej serii posiadają timery dużej rozdzielczości do konwerterów mocy, analogowe peryferia, obsługują interfejs USB-C oraz USB-PD[28][29].
Seria L0 jest pierwszą, która została oparta na rdzeniu ARM Cortex-M0+. Seria ta jest dostosowana do aplikacji wymagających stosowania energooszczędnych podzespołów[30]. Mikrokontrolery z tej serii wyposażono w sprzętowy firewall, którego zadaniem jest ochrona zawartości zadanych obszarów pamięci RAM oraz nieulotnej przed odczytem przez program ulokowanych w obszarze niechronionym pamięci RAM lub Flash. Wspólnymi elementami wyposażenia wszystkich mikrokontrolerów z serii L0 są: pamięć EEPROM, kontroler DMA, interfejsy komunikacyjne (SPI, I2C), interfejs USB (nie wymaga stosowania specjalnego rezonatora kwarcowego), komparatory analogowe oraz 96-bitowy sprzętowy numer seryjny, który pozwala na identyfikację urządzenia z wbudowanym mikrokontrolerem[31].
W tej serii zastosowano rdzeń ARM Cortex-M3 o maksymalnym taktowaniu 32 MHz[32]. Mikrokontrolery te są przystosowane do projektów energooszczędnych. W skład tej serii wchodzą cztery podrodziny: STM32L100, STM32L151, STM32L152, STM32L162. Wartość napięcia zasilającego wynosi 1,65 V, przy czym mikrokontrolery mogą pracować w urządzeniach zasilanych napięciem do 3,6 V[33].
Seria L4 została oparta na rdzeniu ARM Cortex-M4F o maksymalnym taktowaniu 80 MHz. Producent oferuje dwie podrodziny: STM32L476, wyposażony w interfejs USB oraz kontroler LCD, oraz STM32L486, który dodatkowo posiada procesor kryptograficzny AES256/128. Pojemność pamięci RAM wynosi 128 kB[34].
Seria L4+ jest rozszerzeniem serii L4, zapewniając większą wydajność, więcej wbudowanej pamięci oraz bogatszą grafiką i funkcje łączności przy zachowaniu niskiego zużycia energii. Maksymalne taktowanie rdzenia mikrokontrolera wynosi 120 MHz. Mikrokontrolery z tej serii posiadają również kontroler wyświetlaczy TFT-LCD, akcelerator Chrom-ART, czy interfejs kamery[35]. Mogą być stosowane jako centralny kontroler m.in. w inteligentnych miernikach, małych urządzeniach medycznych czy niedużych czujnikach przemysłowych[36].
STM32 L5 to kolejna seria mikrokontrolerów o ultraniskim poborze mocy. Została oparta na rdzeniu ARM Cortex-M33F o taktowaniu maksymalnym 110 MHz ze wsparciem FPU i instrukcjami DSP. Posiada interfejsy USB, USART, I2C, SPI, CAN-FD. Posiada również wsparcie dla pojemnościowych czujników dotyku. Serię tę wyposażono w technologię ARM TrustZone, mającą na celu zwiększenie bezpieczeństwa urządzenia[37][38].
Do prawidłowego zaprogramowania mikrokontrolerów z rodziny STM32 niezbędne jest zastosowanie narzędzi programistycznych. Producent mikrokontrolerów bezpłatnie udostępnia program STM32CubeMX[39]. Program posiada czytelny interfejs graficzny, który ułatwia konfigurację mikrokontrolera.