STM32F7-DISCOVERY (STM32F746G-DISCOVERY) – test pierwszego zestawu z mikrokontrolerem STM32F7 (Cortex-M7)

Mikrokontrolery STM32F7 (wyposażone w rdzeń Cortex-M7) dojrzewały dość długo w ofercie STMicroelectronics, ale ich rynkowe narodziny mamy za sobą: do sprzedaży trafiło 19 typów nowych mikrokontrolerów, których podstawowe cechy i parametry zebrano w tabeli 1.

 

Tab. 1. Zestawienie dostępnych typów mikrokontrolerów STM32F7 i najważniejszych elementów ich wyposażenia (kolorem zaznaczono mikorkontroler użyty w zestawie STM32F746G-DISCOVERY)

Typ Flash [kB] SRAM [kB] Timery 16-bitowe Timery 32-bitowe ADC Licbczba GPIO DAC Interfejsy Obudowa
STM32F745IE 512 320 12×16-bit 2×32-bit 24×12-bit 140 2×12-bit 6 x SPI BGA 176 LQFP 176
STM32F745IG 1024 320 12×16-bit 2×32-bit 24×12-bit 140 2×12-bit 1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC BGA 176 LQFP 176
STM32F745VE 512 320 12×16-bit 2×32-bit 16×12-bit 82 2×12-bit 2 x I2C;2 x SAI;6 x SPI LQFP 100
STM32F745VG 1024 320 12×16-bit 2×32-bit 16×12-bit 82 2×12-bit 1 x SDIO;2 x CAN;2 x I2C;2 x I2S;2 x USB OTG;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 100
STM32F745ZE 512 320 12×16-bit 2×32-bit 24×12-bit 114 2×12-bit 2 x SAI;6 x SPI LQFP 144
STM32F745ZG 1024 320 12×16-bit 2×32-bit 24×12-bit 114 2×12-bit 1 x SDIO;2 x CAN;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 144
STM32F746BE 512 320 12×16-bit 2×32-bit 24×12-bit 168 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 208
STM32F746BG 1024 320 12×16-bit 2×32-bit 24×12-bit 168 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 208
STM32F746IE 512 320 12×16-bit 2×32-bit 24×12-bit 140 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC BGA 176 LQFP 176
STM32F746IG 1024 320 12×16-bit 2×32-bit 24×12-bit 140 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC BGA 176 LQFP 176
STM32F746NE 512 320 12×16-bit 2×32-bit 24×12-bit 168 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC TFBGA 216L 0.8
STM32F746NG 1024 320 12×16-bit 2×32-bit 24×12-bit 168 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC TFBGA 216L 0.8
STM32F746VE 512 320 12×16-bit 2×32-bit 16×12-bit 82 2×12-bit 1 x CEC;2 x SAI;3 x I2C;4 x I2C;4 x SPI;4 x UART;4 x USART LQFP 100
STM32F746VG 1024 320 12×16-bit 2×32-bit 16×12-bit 82 2×12-bit 1 x SDIO;2 x I2C;2 x I2S;2 x SAI;2 x USB OTG;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 100
STM32F746ZE 512 320 12×16-bit 2×32-bit 24×12-bit 114 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 144 WLCSP 143L 0.4
STM32F746ZG 1024 320 12×16-bit 2×32-bit 24×12-bit 114 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 144 WLCSP 143L 0.4
STM32F756BG 1024 320 12×16-bit 2×32-bit 24×12-bit 168 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 208
STM32F756IG 1024 320 12×16-bit 2×32-bit 24×12-bit 140 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC BGA 176 LQFP 176
STM32F756NG 1024 320 12×16-bit 2×32-bit 24×12-bit 168 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC TFBGA 216L 0.8
STM32F756VG 1024 320 12×16-bit 2×32-bit 16×12-bit 82 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 100
STM32F756ZG 1024 320 12×16-bit 2×32-bit 24×12-bit 114 2×12-bit 1 x CEC;1 x SDIO;2 x CAN;2 x SAI;2 x USB OTG;4 x I2C;4 x UART;4 x USART;6 x SPI;Ethernet MAC LQFP 144 WLCSP 143L 0.4

 

Rdzenie układów prezentowanych w tabeli są przystosowane do taktowania sygnałem zegarowym o maksymalnej częstotliwości 216 MHz, co pozwala uzyskać mikrokontrolerom wypadkową wydajność obliczeniową 1082 CoreMark i prędkość wykonywania programu 462 DMIPS. Przy tak dużej wydajności producentowi udało się utrzymać – charakterystyczny dla większości współczesnych mikrokontrolerów –  niewielki pobór mocy, szacowany pobór prądu przez CPU nie przekracza 420 μA/MHz.

Przypomnijmy, że od strony technicznej Cortex-M7 to rozbudowana wersja rdzenia Cortex-M4, wyposażona w szybką pamięcią SRAM TCM (dla danych i instrukcji programu) oraz cache dla danych i instrukcji (rysunek 1). Dodatkowo zastosowano w tym rdzeniu zaawansowany 6-poziomowy mechanizm przetwarzania potokowego z predykcją oraz sprzętowym wsparciem superskalarnego wykonywania programu.

 

Rys. 1. Rdzeń Cortex-M7 jest najwydajniejszy w rodzinie Cortex-M, głównie dzięki zastosowaniu w nim rozwiązań pochodzących wprost z mikroprocesorów

 

Ważnym udoskonaleniem wprowadzonym w rdzeniu Cortex-M7 jest nowa magistrala służąca do komunikacji CPU z blokami peryferyjnymi, który ma wpływ na wypadkową prędkość pracy mikrokontrolera: Master AXI (AXIM). Zapewnia ona łączenie kilku kanałów magistrali AHB w jeden, bardzo szybki kanał dwukierunkowej komunikacji rdzenia z otoczeniem (w rdzeniach Cortex-M4 rdzeń komunikuje się z otoczeniem za pomocą „standardowych” interfejsów-magistral AHB). Rozwiązania zastosowane przez firmę ARM w rdzeniu Cortex-M7 pozwalają na szybszy niż w przypadku poprzedników dostęp rdzenia do zawartości pamięci SRAM i Flash, oczywiście przy założeniu, że konstrukcja pamięci umożliwia bezpośredni odczyt danych z relatywnie wysoką częstotliwością (dla typowych pamięci nieulotnych za taką uchodzi 70…90 MHz). Żeby uniknąć efektu „wąskiego gardła” w dostępie do zawartości pamięci Flash, producenci stosują różne rozwiązania: w mikrokontrolerach STM32 pobieranie danych z pamięci Flash jest buforowane za pomocą sprzętowego akceleratora ART (Adaptive Real-Time). Jego działanie polega m.in. na dekompozycji 128-bitowych słów przechowywanych w pamięci Flash na słowa 16- lub 32-bitowe (rysunek 2), które są kolejkowane w lokalnej (wbudowanej w ART) pamięci cache. Według informacji publikowanych przez producenta, mechanizmy usprawniające dostęp do zawartości Flash spowodowały, że nie ma konieczności używania podczas odczytu wait-state’ów dotychczas istotnie zmniejszających realną prędkość transferu danych.

 

Rys. 2. Budowa i ilustracja działania akceleratora ART

 

Producent opracowując mikrokontrolery STM32F7 zadbał o wyposażenie ich w bogaty zestaw elementów peryferyjnych, w skład którego wchodzą wszystkie interfejsy znane z poprzednich generacji mikrokontrolerów oraz kilka nowych rozwiązań, w tym m.in.:

  • zmodyfikowany podsystem generacji sygnałów zegarowych, pozwalający na modyfikację częstotliwości taktowania bloków peryferyjnych bez konieczności zmiany ustawień taktowania CPU,
  • dwukanałowy transceiver I2S z obsługą SPDIF oraz 3 półdupleksowe kanały wejściowe SPDIF, interfejsy USB-OTG z wydzielonym zasilaniem, co pozwala korzystać z tego interfejsu także przy zasilaniu mikrokontrolera napięciem 1,8 V,
  • dwa interfejsy QSPI, które sprzętowo realizują transmisję danych z pamięciami wyposażonymi w 1-, 4- lub 8-bitowe interfejsy komunikacyjne.

O autorze