
Teensy 4.1 con protezione da copia è l’ultima versione della piattaforma di sviluppo incredibilmente popolare, dotata di un processore ARM Cortex-M7 a 600 MHz, con un chip NXP iMXRT1062, una memoria flash quattro volte più grande rispetto alla 4.0 e due nuove posizioni per aggiungere memoria opzionale. Teensy 4.1 ha le stesse dimensioni e la stessa forma di Teensy 3.6 (2,4 pollici per 0,7 pollici) e offre maggiori capacità di I/O, tra cui un PHY Ethernet, un socket per schede SD e una porta host USB.
A 600 MHz, Teensy 4.1 consuma circa 100 mA di corrente e supporta la scalabilità dinamica del clock. A differenza dei microcontrollori tradizionali, in cui la modifica della velocità di clock causa baud rate errati e altri problemi, l’hardware di Teensy 4.1 e il supporto software di Teensyduino per le funzioni di temporizzazione di Arduino sono progettati per consentire variazioni dinamiche della velocità. Le velocità di trasmissione seriali, le frequenze di campionamento dello streaming audio e le funzioni Arduino come delay() e millis(), nonché le estensioni di Teensyduino come IntervalTimer ed elapsedMillis, continuano a funzionare correttamente mentre la CPU cambia velocità. Teensy 4.1 offre anche una funzione di spegnimento automatico. Collegando un pulsante al pin On/Off, l’alimentazione a 3,3 V può essere completamente disattivata tenendo premuto il pulsante per cinque secondi e riattivata con una breve pressione. Se una batteria a bottone è collegata a VBAT, l’RTC di Teensy 4.1 continua a tenere traccia di data e ora anche quando il dispositivo è spento. Teensy 4.1 può anche essere overcloccato, ben oltre i 600 MHz.
L’ARM Cortex-M7 offre numerose potenti funzionalità CPU a una vera piattaforma di microcontrollori in tempo reale. Il Cortex-M7 è un processore superscalare a doppia uscita, il che significa che può eseguire due istruzioni per ciclo di clock a 600 MHz. Naturalmente, l’esecuzione simultanea di due istruzioni dipende dall’ordinamento di istruzioni e registri del compilatore. I benchmark hanno mostrato che il codice C++ compilato da Arduino tende a eseguire due istruzioni in circa il 40-50% dei casi, pur eseguendo operazioni numericamente intensive utilizzando interi e puntatori. Il Cortex-M7 è il primo microcontrollore ARM a utilizzare la predizione di diramazione (branch prediction). Su M4, i cicli e altro codice che richiedono molte diramazioni richiedono tre cicli di clock. Con M7, dopo che un ciclo è stato eseguito alcune volte, la predizione di diramazione rimuove tale sovraccarico, consentendo all’istruzione di diramazione di essere eseguita in un solo ciclo di clock.
La memoria strettamente accoppiata (Tightly Coupled Memory) è una funzionalità speciale che consente al Cortex-M7 di accedere rapidamente alla memoria in un singolo ciclo utilizzando una coppia di bus a 64 bit. Il bus ITCM fornisce un percorso a 64 bit per il recupero delle istruzioni. Il bus DTCM è in realtà una coppia di percorsi a 32 bit, consentendo a M7 di eseguire fino a due accessi alla memoria separati nello stesso ciclo. Questi bus ad altissima velocità sono separati dal bus AXI principale di M7, che accede ad altre memorie e periferiche. 512 bit di memoria sono accessibili come memoria strettamente accoppiata. Teensyduino alloca automaticamente il codice sketch di Arduino in ITCM e tutta la memoria non-malloc utilizzata al veloce DTCM, a meno che non si aggiungano parole chiave aggiuntive per sovrascrivere l’impostazione predefinita ottimizzata. La memoria non accessibile sui bus strettamente accoppiati è ottimizzata per l’accesso DMA da parte delle periferiche. Poiché la maggior parte dell’accesso alla memoria di M7 avviene sui due bus strettamente accoppiati, le periferiche potenti basate su DMA hanno un accesso eccellente alla memoria non-TCM per un I/O altamente efficiente.
Il processore Cortex-M7 di Teensy 4.1 include un’unità a virgola mobile (FPU) che supporta sia il “double” a 64 bit che il “float” a 32 bit. Con la FPU di M4 su Teensy 3.5 e 3.6, e anche sui chip Atmel SAMD51, solo il float a 32 bit è accelerato hardware. Qualsiasi utilizzo di funzioni double come log(), sin(), cos() comporta una lenta implementazione software della matematica. Teensy 4.1 esegue tutte queste funzioni con hardware FPU.

Software
IDE Arduino + Teensyduino
Il software IDE di Arduino con il componente aggiuntivo Teensyduino è l’ambiente di programmazione principale per Teensy. Su Windows, Linux e vecchi Mac, Arduino viene installato prima, poi l’installer di Teensyduino aggiunge il supporto per Teensy all’IDE di Arduino. Sui Mac più recenti, viene fornito un download completo. Teensyduino include un’ampia raccolta di librerie testate e ottimizzate per Teensy. Altre librerie possono essere installate manualmente o tramite il gestore librerie di Arduino.
Visual Micro
Visual Micro consente l’utilizzo di Microsoft Visual Studio per programmare schede compatibili con Arduino, inclusa Teensy. È supportato solo Windows. Visual Micro è un software commerciale a pagamento.
PlatformIO
PlatformIO IDE è un ambiente di sviluppo multipiattaforma con numerose funzionalità avanzate. Sono supportati Windows, Linux e Macintosh.
CircuitPython
CircuitPython fornisce un file .HEX che si programma su Teensy 4.1 utilizzando Teensy Loader. Teensy apparirà quindi sul tuo computer come un disco USB, su cui potrai copiare o salvare il codice Python. CircuitPython non supporta completamente tutto l’hardware di Teensy 4.1.
Considerazioni finali
Teensy 4.1 è una board dotata di elevatissime capacità di calcolo. La presenza di memoria ad elevata velocità di accesso, dxi trigger specifici e timer ad hoc lo rendono utilissdimo anche per applicazioni di codifica online (ad esempio generazione di forme d’onda audio). Il prezzo, intorno ai 60 euro, sembra un po’ elevato, ma le caratteristiche della scheda consentono di risolvere numerosi progetti altrimenti inavvicinabili con Arduino. In quei casi, l’investimento viene senza dubbio ripagato ccompletamente.
Link utili:
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano
- Raspberry PI 5
- Raspberry PI 400
- Raspberry PI Pico
- Programmiamo il Pico