wtorek, 4 grudnia 2018

STM32G0 - OnlineTraining [update - moje notatki]

Firma ST udostępniła informacje o nowej rodzinie - STM32G0...

Jest bardzo dużo materiałów na ten temat i jedna bardzo fajna rzecz - stronka: https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32g0-online-training.html?ecmp=tt8994_gl_social_nov2018 z materiałami video na temat hmm w sumie wszystkiego co siedzi w tych prockach.
Kojarzy mi się to z warsztatami ST - to na nich zawsze poznawałem takie "smaczki", a tu mamy je łatwo dostępne. Nawet jeśli kogoś to średnio interesuje - polecam sobie odpalić na drugim/trzecim monitorze podczas jakiegoś lżejszego kodzenia :)

Update - przebrnąłem przez te filmiki i w międzyczasie robiłem sobie mega luźne notatki na ten temat - wrzucam je poniżej:
STM32G0 - notatki, co fajnego/różnice względem F0:

- rdzeń CortexM0+ - bardzo fajnie, w przeciwieństwie do M0 wspiera priorytety przerwań
- prędkość taktowania 64MHz
- 2 piny zasilania!!! uprości to mozaikę ścieżek na PCB itp
- mają być 8pinowe obudowy!!! ciekawe jak to wyjdzie :)
- rozbudowana sieć połączeń między peryferiami - ICM (interconnect Matrix), wcześniej była lista co z czym możemy połączyć i była dość ograniczona - teraz to ładnie rozbudowano
- w tych układach jest jedno DMA (w F0 większych były 2), ale za to mamy do dyspozyscji multiplekser DMAMUX dzięki któremu możemy o wiele lepiej dostosować je do potrzeb
- DMA ma "DMA request generator" - może generować serie odpytań do różnych peryferii
- przez EXTI mamy więcej możliwości wybudzania z trybów LowPower
- GPIO MUX przełozony z SYSCFG do EXTI
- SWDIO i SWCLK klasycznie na PA13 i PA14
- peryferia mogą mieć niezależne zegary (jak już to było z np ADCkiem) - czyli w uśpieniu niektóre mogą pozostać włączone
- wbudowany HSI ma 16MHz
- jeden PLL z trzema niezależnymi wyjściami - może dać 3 różne wartości dla róznych peryferii
- procki mają vbat mode
- peryferia mogą same uruchamiać HSI16 (np jeśli DMA wyzwoli coś do wysłania, a one są z niego taktowane)
- TIM1 i TIM15 mogą mieć prędkość 2xSYSCLK
- możliwe, że już było wcześniej - w przypadku wykrycia awarii HSE możemy wyłączyć wyjścia np timerów - dla aplikacji sterujących silnikami fajna sprawa
- można używać kwarcy do 48MHz - muszę sobie kiedyś sprawdzić jak to wychodzi "mocowo" czy lepiej mieć PLLa odpalonego, czy taki kwarc - na 80% kwarc pobierze mniej prądu
- max rdzenia to 64MHz, ale magistrale też :) - wcześniej były ograniczenia co do tego
- z I/O wakeup najgłębsze uśpienie to pobór prądu na poziomie 40nA!
- 7 niezależnych źródeł zasilania w środku, które są odpowiednio sterowane w trybach uśpienia
- LP uarty, I2C w trybach uśpienia działają tak, że oczekują startu, zgodnego adresu i dopiero wtedy uruchamiają resztę peryferium
- było też wcześniej, ale warto wspomnieć - jeśli mamy dostępną nóżkę Vbat to w środku jest "or" na diodkach razem z Vdd jak to się robiło dla zasilania PCFów z baterii
- jak już wspomniałem wcześniej, że GPIO komunikuje się z rdzeniem bezpośrednio - wcześniej było to przez magistralęAHB
- domyślnym stanem po resecie dla GPIO jest teraz analog mode (nie wszystkie - jak np piny programatora)
- względem F0 różnica - możemy uruchamiać PU/PD w trybach LowPower (przez PWR controller)
- pin SWCLK jest teraz także pinem BOOT0 - ciekawa sprawa
- wcześniej też było - każdy procek ma DES - device electronic signature - sam nigdy nie potrzebowałem tego używać "prywatnie", ale w pracy już się spotkałem kilka razy w wykorzystywaniem tego. Jako ciekawostka - w tym numerze jest też zawarta pozycja rdzenia w krzemie
- rozdzielono TAMP i RTC w krzemie
- FLASH G0 ma Cache na instrukcje (16bit), a także przestrzeń OTP(1kB) we FLASHu
- FLASH wspiera też "Fast programming" - może programować blok 256B zamiast słowa do pamięci FLASH
- tradycyjnie potrzebujemy WS przy odczycie, ponieważ pamięć pracuje na 24MHz, więc przy pełnej prędkości (64MHz) potrzebujemy uruchomić 3WS
- prefetch i cache zapobiegają spadkowi wydajności dla większych wartości WS
- mamy peryferium do AESa (w access line prockach)
- Random number generator z analog seed
- HDMI-CEC
- chyba nie ma wersji z CANem :/ szkoda - mam go na liście do większych zabaw
- uarty mają wbudowane FIFO - 8 bajtów - zarówno do wysyłania jak i do odbioru, fajna rzecz, ale już mam biblioteki z DMA i działają całkiem spoko
- SPI działa tak samo jak w F0 z linii STM32F07x
- SPI ma max częstotliwość 32MHz - jeszcze szybsze LCDki :p
- w prezentacjach od SPI jest mowa o analizatorach protokołów i jest fotka "beagle i2c/spi" - cena w TME 1600zł :/
- timery mogą być taktowane większą prędkością niż rdzeń - TIM1 i TIM15 powyżej 100MHz
- RTC względem F0 - ma teraz 2 alarmy!!! no nareszcie, wcześniej jeden alarm szedł na "tykanie sekund" u mnie zawsze
- ciekawostka od kolegi Marcin z microgeeka - wersje procków z 32pinami nie mają pinów dla HSE
- swoją drogą wychodzi tak, że procki 32pinowe mają 29użytkowych pinów (odpadają 2 na zasilanie i jeden na reset - reszte mozna używać)


jeszcze patrząc na ceny wzięte z MCUfindera dla 10k sztuk dla taniego procka z 48pin:
- M8 - STM8L151C6 - 77centów    (24MHz, 32kB flash, 2kB RAM)
- F0 - STM32F030C6 - 54centy (48MHz, 32kB flash, 4kB RAM)
- L0 - STM32L01C6 - 64 centy (32MHz, 32kB flash, 8kB RAM)
- G0 - STM32G070RB - 75centów (64MHz,128kB flash, 36kB RAM(z tym, ze aktualnie oznaczona jako "under evaluation", dostępna jest wersja z 64pin)
chociaż to porównanie nie jest idealne, bo STM8 jest w bogatszej wersji - z DACiem itp a inne tego nie mają

Update2:
tu jeszcze fajny link:
https://blog.st.com/stm32g0-mainstream-90-nm-mcu/

 

0 komentarze:

Prześlij komentarz