Płytka Teensy 4.0 ARM Cortex-M7 NXP iMXRT1062 600MHz [PJRC TEENSY40]
Nettigo
RSS
149.00
121.14 + VAT
- Kod:
- TEN-1821
- Dodany do bazy:
- Ostatnio widziany:
- Zmiana ceny:
- -6% (28.03.2025)
- Poprzednia cena:
- 159.00
Sugerowane produkty dla ma600
Czysta moc obliczeniowa!
To malutka, niepozorna płytka programowalna z poziomu Arduino IDE, która skrywa w sobie ogromny potencjał. Teensy 4.0 zostało wyposażone w 32-bitowy procesor ARM Cortex-M7 taktowany zawrotnym zegarem 600 MHz. Zastosowanie układu NXP iMXRT1062 sprawia, że Teensy 4.0 to w chwili premiery najszybszy mikrokontroler na rynku. Deklasuje absolutnie wszystko co do tej pory widzieliśmy. Zostawia daleko w tyle superszybkie Teensy 3.6, od którego jest przynajmniej 5 razy szybsze. Z kolei od popularnego ESP32 jest szybsza przynajmniej 6 razy… Ale to nie koniec niespodzianek. Teensy 4.0 potrafi wróżyć (branch prediction), może modyfikować swój zegar podczas pracy, ma wydajne peryferia, które mogą korzystać z DMA i sprzętowe FPU obsługujące liczby zmiennoprzecinkowe podwójnej precyzji.
Co z tym zrobić?
Paul Stoffregen - autor płytki przewiduje, że Teensy 4.0 będzie wykorzystywane do polifonicznej syntezy audio, uruchamiania średnio złożonych algorytmów uczenia maszynowego i analizy audio w czasie rzeczywistym. W wielu przypadkach pierwszy poziom obróbki danych z urządzeń wejściowych można teraz przenieść z komputera na zewnętrzny mikrokontroler, zmniejszając przepustowość wymaganą pomiędzy mikrokontrolerem a komputerem. Z kolei w przypadku projektów wykorzystujących wyświetlacz wbudowany potok przetwarzania pikseli może znacząco przyspieszyć operacje graficzne, tym samym odciążając procesor.
Możesz też wgrać blinka i chełpić się tym, że Twoja płytka ma 600MHz :P
Specyfikacja:
* Procesor: NXP iMXRT1062 ARM Cortex-M7 taktowany zegarem 600 MHz
* RAM: 1024K (512K ściśle powiązane)
* Flash: 2048K (64K zarezerwowane w celach odzyskiwania i emulacji EEPROM)
* 2 x USB, pracujące z prędkością 480 mbps
* 3 x CAN Bus (1 z CAN FD)
* 2 x Cyfrowe Audio I2S
* 1 x Cyfrowe Audio S/PDIF
* 1 x SDIO (4 bit) natywne SD
* 3 x SPI, wszystkie z 32 bajtowym FIFO (16 word)
* 3 x I2C, wszystkie z 4 bajtowym FIFO
* 7 x Serial, wszystkie z 4 bajtowym FIFO
* 32 kanały DMA ogólnego przeznaczenia
* 31 piny PWM
* 40 pinów cyfrowych, wszystkie z obsługą przerwań
* 14 pinów analogowych, 2 ADC wbudowane w układ
* Sprzętowa akceleracja operacji kryptograficznych
* Sprzętowy Generator liczb losowych
* Zegar czasu rzeczywistego RTC (data/czas)
* Programowalne FlexIO
* Pixel Processing Pipeline
* Peripheral cross triggering
* Power On/Off management
Zużycie prądu, skalowanie zegara i zarządzanie zasilaniem
Komputery PC przyzwyczaiły nas, że wysoka wydajność zawsze idzie w parze z bardzo wysoka prądożernością. Podczas pracy z częstotliwością 600 MHz Teensy 4.0 pobiera około 100 mA prądu. To dużo i niedużo, zależy jak spojrzeć. Co ważne Teensy 4.0 wspiera obsługę dynamicznego skalowania zegara. W przeciwieństwie do tradycyjnych mikrokontrolerów, w których zmiana prędkości zegara powoduje błędy transmisji i inne “ciekawe” problemy, sprzęt Teensy 4.0 i oprogramowanie Teensyduino obsługujące funkcje taktowania są zaprojektowane tak, aby umożliwić dynamiczne zmiany prędkości. Prędkość transmisji szeregowej, częstotliwości próbkowania strumieniowego przesyłania audio oraz funkcje Arduino, takie jak delay() i millis(), oraz rozszerzenia Teensyduino, takie jak IntervalTimer i elapsedMillis, działają poprawnie podczas gdy procesor w najlepsze zmienia prędkość. A jak się domyślacie niższy zegar to niższe zużycie prądu.
Teensy 4.0 zapewnia również funkcję wyłączania zasilania bez potrzeby odłączania kabli. Po podłączeniu przycisku do styku On/Off mamy możliwość całkowitego wyłączenia sekcji zasilania 3.3V. Wystarczy przytrzymać przycisk przez 5 sekund. Ponowne włączenie odbywa się przez ponowne krótkie naciśnięcie przycisku. Jeśli do pinu VBAT jest podłączona bateria podtrzymująca RTC, Teensy 4.0 będzie śledzić datę i czas, gdy zasilanie jest wyłączone.
A teraz usiądźcie… Teensy 4.0 można również podkręcić! I to znacznie powyżej 600 MHz!
Kilka słów o procesorze Cortex-M7
2 instrukcje w 1 cyklu
ARM Cortex-M7 naszym zdaniem jest bardzo dobrym kandydatem do stworzenia platformy czasu rzeczywistego. Co prawda nie jest to procesor w pełni dwu wątkowy, ale dzięki architekturze superskalarnej może on wykonywać 2 instrukcje na cykl zegara. I to wszystko przy zawrotnych 600 MHz! Oczywiście możliwość jednoczesnego wykonania instrukcji zależy od ich typu i rejestrów porządkowych kompilatora, ale pierwsze testy porównawcze pokazały, że kod C++ skompilowany przez Arduino IDE ma tendencję do jednoczesnego wykonania 2 instrukcji w około 40-50% wypadków podczas wykonywania intensywnej obliczeniowo pracy na liczbach całkowitych i wskaźnikach. To tak jakbyśmy właśnie dołożyli dodatkowe 300MHz do zegara :)
Wróżbita (branch prediction)
Niespodzianek jest o wiele więcej! Cortex-M7 to pierwszy mikrokontroler z rodziny ARM, który potrafi wróżyć z kart tarota, fusów waniliowego Latte i szklanej kuli :) <żarcik? /> Posiada bowiem układ przewidywania rozgałęzień (branch prediction), który całkiem dobrze sobie radzi w mikrokontrolerowych warunkach. Zasada działania tego układu jest dość prosta. Cały czas monitoruje statystycznie pod jakie adresy skacze program i jeśli adres się powtarza kilka razy, to automatycznie przygotowuje strumień instrukcji z tego adresu do przetwarzania przez procesor. Dla porównania w rodzinie M4 (znanej z Teensy 3.x) wielokrotne wykonywanie kodu pętli na obsługę pożerało 3 cykle zegara za każdym razem. W Cortex-M7 po tym jak pętla zostanie wykonana kilka razy, mikrokontroler magicznie likwiduje narzut, pozwalając na wykonanie pętli z użyciem tylko jednego cyklu zegara. W świecie mikrokontrolerów oznacza to ogromną oszczędność czasu procesora. Kolejne cykle można wykorzystać na coś innego.
RAM ściśle powiązany/spięty/sprzężony… umagiczniony!
W Teensy 4.0 połowa RAMu jest “ściśle powiązana”. Czy jakkolwiek się tłumaczy termin “Tightly Coupled Memory”. W naszej mikrokontrolerowej karierze spotykamy się z tym pierwszy raz. Pamięć tę widać na schemacie blokowym kontrolera - znajduje się ona bezpośrednio w rdzeniu ARM. W rezultacie procesor ma do niej bardzo szybki i wyłączny dostęp. W praktyce oznacza to, że Cortex-M7 potrafi w pojedynczym cyklu zegara otrzymać dostęp do pamięci używając dwóch 64-bitowych magistrali. Jest szybko, bardzo szybko… Robi to dobrą robotę i przekłada się to na wzrost wydajności, więc nie narzekamy :)
Wydajne peryferia z obsługą DMA
Reszta pamięci jest zoptymalizowana pod DMA (Direct Memory Access - bezpośredni dostęp do pamięci). Oznacza to, że obustronna komunikacja z peryferiami odbywa się bardzo szybko i co ważne, procesor nie musi być pośrednikiem. Dla przykładu, dzięki temu można transferować dane do DAC bez udziału procesora w precyzyjnie ustalonych odstępach czasu. Wymagające peryferia mają zatem ogromne pole do popisu - jednym słowem mamy tu do czynienia z bardzo wydajnym I/O.
W dokumentacji procesora natrafiamy także na HSGPIO czyli obsługę GPIO zaimplementowaną w rdzeniu ARM. Łatwo się domyślić, że jest to bardzo szybka obsługa. Są to co prawda tylko wybrane piny, ale w razie potrzeby natychmiastowej reakcji na sygnał, taka funkcjonalność może okazać się na wagę złota.
FPU podwójnej precyzji co robi zacną robotę!
Procesor Cortex-M7 w Teensy 4.0 posiada dedykowaną jednostkę do obliczeń zmiennoprzecinkowych (FPU), która obsługuje zarówno 64-bitowe liczby podwójnej precyzji (“double”), jak i standardowe 32-bitowe liczby zmiennoprzecinkowe (“float”). Należy pamiętać, że FPU było obecne już w rodzinie M4 (Teensy 3.5, 3.6, Atmel SAMD51). Ale tam wspierało tylko 32-bitowe liczby zmiennoprzecinkowe. Każde użycie liczb zmiennoprzecinkowych podwójnej precyzji, czy funkcji takich jak log(), sin(), cos() oznaczało przesiadkę na powolne obliczenia implementowane programowo. W Teensy 4.0 wszystkie te operacje wykonuje sprzętowy FPU. Niezły czad! Kolejne zaoszczędzone cykle!
Jak małe są płytki Teensy?
W chwili obecnej rodzina Teensy składa się z 7 płytek. Dwie z nich bazują na 8-bitowym mikrokontrolerze AVR, pozostałe 5 to zawierają 32-bitowe układy z rodziny ARM. Wymiary poszczególnych płytek:
* Teensy 2.0 - 30 x 18 mm
* Teensy++ 2.0 - 50 x 18 mm
* Teensy LC - 36 x 18 mm
* Teensy 3.2 - 36 x 18 mm
* Teensy 3.5 - 61 x 18 mm
* Teensy 3.6 - 61 x 18 mm
* Teensy 4.0 - 36 x 18 mm
* Teensy 4.1 - 61 x 18 mm
W zestawieniu z Arduino UNO R3 wyglądają następująco:
Płytki Teensy 8-bit AVR:
Płytki Teensy 32-bit ARM:
Dedykowane akcesoria:
Pasujące akcesoria:
Elecena nie prowadzi sprzedaży elementów elektronicznych, ani w niej nie pośredniczy.
Produkt pochodzi z oferty sklepu Nettigo