Płytka Teensy 4.1 ARM Cortex-M7 600MHz, zgodna z Arduino IDE [PJRC TEENSY41]

Kod:
TEN-1976
Waga: Help
13 g
Dostawca:

Większa wersja Teensy 4.0 z dodatkowymi GPIO, Ethernet PHY, slotem na kartę microSD oraz hostem USB. Na pokładzie super wydajny procesor ARM Cortex-M7 o taktowaniu 600MHz i 4 razy więcej pamięci flash.

Mamy też wersję Teensy 4.1 bez Ethernet PHY

W magazynie Help 146

PLN 209,00
PLN 169,92 bez VAT
Ile sztuk? Rabat Cena za szt
1 209,00
5+ 7,00 % 194,38
25+ 15,00 % 177,65
Rabaty ilościowe nie sumują się z innymi promocjami. Podano ceny brutto, obliczenia na podstawie cen netto.

Możliwości… dużo możliwości :)

Teensy 4.1 to połączenie mocy znanej z Teensy 4.0 z wygodą użytkowania Teensy 3.6 - gdzie większość pinów wyprowadzona jest w postaci wygodnych w użyciu pól w rastrze 2.54mm. Teensy 4.1 ma dokładnie ten sam procesor co Teensy 4.0. Zostało wyposażone w 32-bitową jednostkę ARM Cortex-M7 taktowaną zawrotnym zegarem 600 MHz. Zastosowanie układu NXP iMXRT1062 sprawia, że rodzina Teensy 4 to w chwili premiery jedne z najszybszych płytek rozwojowych na rynku. Deklasują absolutnie wszystko co do tej pory widzieliśmy. Zostawiają 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 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.

Jak zawsze płytkę można programować z poziomu Arduino IDE oraz PlatformIO.

Teensy 4.1 vs Teensy 4.0

Różnice między płytkami serii 4 są widoczne gołym okiem.

  • Po pierwsze: wygląd. Mnogość pinów. Teraz jest ich o wiele więcej i łatwo się do nich podpiąć.
  • Po drugie: na płytce znalazło się miejsce dla Ethernet PHY, dzięki czemu za pomocą 6-pinowego złącza w rastrze 2.0mm (2x3) możemy podpiąć moduł z gniazdem Ethernet. Nie potrzeba tu skomplikowanych układów, wystarczy gniazdo z wbudowanym transformatorem (np: RB1-125BAG1A).
  • Po trzecie: host USB. Teensy serii 3 i 4 są często używane do budowy instrumentów muzycznych. Host USB pozwala na podpięcie klawiatur, manipulatorów, decków, przenośnych dysków, pendrivów, kamer, itp. Robi się ciekawie :)
  • Po czwarte: slot na kartę microSD.
  • Po piąte: 4 razy więcej pamięci flash plus dwa miejsca na wlutowanie dodatkowej pamięci.

Co z tym zrobić?

Paul Stoffregen - autor płytki przewiduje, że Teensy 4 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: 8192K (64K zarezerwowane w celach odzyskiwania i emulacji EEPROM)
  • 2 x USB, pracujące z prędkością 480 mbps
  • 1 x Ethernet PHY (10/100 Mbit DP83825)
  • 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
  • 35 piny PWM
  • 55 pinów I/O:
    • 42 wyprowadzonych pinów cyfrowych, wszystkie z obsługą przerwań
    • 6 pinów w slocie karty microSD
    • 7 na padach lutowniczych kości pamięci
  • 18 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

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.1 pobiera około 100 mA prądu. To dużo i niedużo, zależy jak spojrzeć. Co ważne Teensy 4.1 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.1 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.

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 HS_GPIO 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.1 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.1 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: