Teensy 4.1 – Come un Arduino più potente ed esteso

Teensy 4.1

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.

Teensy 4.1

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

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.