STM32H7 – nowe mikrokontrolery STM32 z rdzeniem Cortex-M7 @400MHz
Wydawać by się mogło – zresztą nie po raz pierwszy – że dotychczasowe bogactwo możliwości oferowane przez mikrokontrolery STM32 nie da się już powiększyć, ale STMicroelectronics pokazuje – także nie po raz pierwszy – że nie jest to słuszny pogląd. Kolejna „mikrokontrolerowa” premiera w rodzinie STM32 to układy STM32H7.
Rodzina mikrokontrolerów STM32H7 jest przez producenta przedstawiana jako pierwsza na świecie, umożliwiająca uzyskanie pełnej wydajności rdzenia Cortex-M7 (architektura rdzenia ARMv7E-M – taka sama jak w STM32F4), wynikającej z konstrukcji tego rdzenia. Dzięki kilku nowym rozwiązaniom rdzeń mikrokontrolerów STM32H7 może pracować z maksymalną częstotliwością zegarową 400 MHz, a wykonywanie programów z tą prędkością bez konieczności oczekiwania na pobranie danych z pamięci Flash umożliwiają dwie niezależne pamięci cache poziomu L1 (po 16 kB dla danych i rozkazów – 4-krotnie więcej niż w STM32F7) oraz szybkie pamięci TCM (tightly-coupled memory) o pojemnościach 128 kB dla danych (DTCM) i 64 kB dla rozkazów (ITCM). Dla porównania – w mikrokontrolerach STM32F7 pojemność pamięci DTCM wynosiła 64 kB, a pamięci ITCM – 16 kB.
Modyfikacje wprowadzone w mikrokontrolerach STM32H7 spowodowały, że wydajność CPU w testach wynosi 2010 CoreMark/856 DMIPS (vs – odpowiednio – 1082/462 w mikrokontrolerach STM32F7), czyli 5 CoreMark/MHz oraz 2,14 DMIPS/MHz. Są to wyniki identyczne z określaną przez ARM maksymalną prędkością wykonywania programów przez rdzeń Cortex-M7, co dobrze świadczy o staraniach konstruktorów technologów, w wyniku których mamy na rynku mikrokontroler o rekordowej wydajności.
Rys. 1. Domeny zegarowe w STM32H7 podzielono na trzy części
W mikrokontrolerach STM32H7 z maksymalną prędkością taktowania pracuje CPU i jej bezpośrednie otoczenie (rysunek 1). W tej samej domenie zegarowej, ale z częstotliwością o połowę mniejszą, pracują peryferia dołączone do CPU za pomocą magistrali AXI. W wydzielonych domenach zegarowych pracują – rozdzielone na dwie grupy – bloki peryferyjne dołączone do magistrali AHB, która jest podrzędna względem AXI. Uproszczony schemat blokowy mikrokontrolerów STM32H7 pokazano na rysunku 2.
Rys. 2. Uproszczony schemat blokowy STM32H7
Przypisanie bloków peryferyjnych do domen zegarowych jest związane z optymalizacją poboru energii przez mikrokontroler – użytkownik może wyłączyć taktowania całej grupy, łącznie z fragmentem sekcji AHB, co upraszcza działanie aplikacji, w których wymagane jest oszczędzanie energii przez mikrokontroler.
Rys. 3. Oficjalne dane na temat poboru prądu przez CPU w STM32H7 w różnych trybach pracy
Na rysunku 3 pokazano podawane przez producenta pobory prądu z zasilania przez mikrokontroler, w różnych warunkach pracy. Średni pobór prądu CPU w STM32H7 podczas normalnej pracy jest w przybliżeniu 2-krotnie mniejszy niż w przypadku rodziny STM32F7, co daje – przy niemal 2-krotnie większej wydajności CPU – 4-krotnie większą wydajność na jednostkę poboru prądu (rysunek 4).
Rys. 4. Rozwiązania technologiczne zastosowane w STM32H7 powodują, że dynamiczny pobór prądu przez CPU jest niemal 2-krotnie mniejszy niż w STM32F7
Prezentowane mikrokontrolery są produkowane w technologii 40 nm, wyposażono je w system skalowanego (wewnątrz) zasilania. Pojemność wbudowanej pamięci Flash wynosi do 2 MB, RAM (w tym 192 kB obszaru TCM) – 1 MB, przy czym obydwie pamięci wyposażono w system kontroli błędów ECC. W portfolio bloków peryferyjnych producent przewiduje 35 różnych elementów, w tym kilka nowych, m.in. 14-bitowy przetwornik ADC (2 MSpS), programowany wzmacniacz operacyjny z opcjonalnym wejściem różnicowym, analogowy komparator oraz interfejsy komunikacyjne TT-CAN i FD-CAN.
Portfolio mikrokontrolerów STM32H7 dostępnych obecnie i planowanych do wdrożenia do masowej produkcji w najbliższym czasie pokazano na rysunku 5.
Rys. 5. Zapowiadane i dostępne modele STM32H7
Na koniec ważna wiadomość: nowe mikrokontrolery STM32H7 będą dostępne w obudowach identycznych z dotychczas produkowanym STM32F7, zachowany zostanie także rozkład wyprowadzeń, co ułatwi dobór wydajności mikrokontrolera do wymogów aplikacji, bez konieczności modyfikacji PCB i elementów w jego otoczeniu.