Le Teensy 4.1 est la dernière itération de la plate-forme de développement incroyablement populaire qui comprend un processeur ARM Cortex-M7 à 600 MHz, avec une puce NXP iMXRT1062, une mémoire flash quatre fois plus grande que la 4.0 et deux nouveaux emplacements pour éventuellement ajouter plus de mémoire. Le Teensy 4.1 a la même taille et la même forme que le Teensy 3.6 (2,4 pouces sur 0,7 pouces) et offre une plus grande capacité d'E/S, y compris un PHY Ethernet, une prise pour carte SD et un port hôte USB.
Lorsqu'il fonctionne à 600 MHz, le Teensy 4.1 consomme environ 100 mA de courant et prend en charge la mise à l'échelle dynamique de l'horloge. Contrairement aux microcontrôleurs traditionnels, où la modification de la vitesse d'horloge entraîne des débits en bauds erronés et d'autres problèmes, le matériel Teensy 4.1 et la prise en charge logicielle de Teensyduino pour les fonctions de synchronisation Arduino sont conçus pour permettre des changements de vitesse dynamiques. Les débits en bauds série, les fréquences d'échantillonnage du streaming audio et les fonctions Arduino telles que delay() et millis(), ainsi que les extensions Teensyduino comme IntervalTimer et elapsedMillis, continuent de fonctionner correctement pendant que le processeur change de vitesse. Teensy 4.1 fournit également une fonction de mise hors tension. En connectant un bouton-poussoir à la broche On/Off, l'alimentation 3,3 V peut être complètement désactivée en maintenant le bouton enfoncé pendant cinq secondes, et réactivée par une brève pression sur le bouton. Si une pile bouton est connectée au VBAT, le RTC du Teensy 4.1 continue également de suivre la date et l'heure lorsque l'alimentation est coupée. Teensy 4.1 peut également être overclocké, bien au-delà de 600 MHz !
L'ARM Cortex-M7 apporte de nombreuses fonctionnalités de processeur puissantes à une véritable plate-forme de microcontrôleur en temps réel. Le Cortex-M7 est un processeur superscaler à double problème, ce qui signifie que le M7 peut exécuter deux instructions par cycle d'horloge, à 600 MHz ! Bien entendu, l’exécution simultanée de deux dépend des instructions et des registres du compilateur. Les premiers tests ont montré que le code C++ compilé par Arduino a tendance à réaliser deux instructions environ 40 à 50 % du temps tout en effectuant un travail numérique intensif à l'aide d'entiers et de pointeurs. Le Cortex-M7 est le premier microcontrôleur ARM à utiliser la prédiction de branchement. Sur M4, les boucles et autres codes qui se branchent prennent trois cycles d'horloge. Avec M7, après l'exécution d'une boucle plusieurs fois, la prédiction de branchement supprime cette surcharge, permettant à l'instruction de branchement de s'exécuter en un seul cycle d'horloge.
La mémoire étroitement couplée est une fonctionnalité spéciale qui permet au Cortex-M7 d'accéder rapidement à un seul cycle. mémoire en utilisant une paire de bus de 64 bits de large. Le bus ITCM fournit un chemin de 64 bits pour récupérer les instructions. Le bus DTCM est en réalité une paire de chemins de 32 bits, permettant au M7 d'effectuer jusqu'à deux accès mémoire distincts dans le même cycle. Ces bus extrêmement rapides sont distincts du bus AXI principal du M7, qui accède à d'autres mémoires et périphériques. 512 de mémoire sont accessibles en tant que mémoire étroitement couplée. Teensyduino alloue automatiquement votre code d'esquisse Arduino dans ITCM et toute l'utilisation de la mémoire non malloc au DTCM rapide, à moins que vous n'ajoutiez des mots-clés supplémentaires pour remplacer la valeur par défaut optimisée. La mémoire non accessible sur les bus étroitement couplés est optimisée pour l'accès DMA par les périphériques. Étant donné que la majeure partie de l'accès à la mémoire du M7 s'effectue sur les deux bus étroitement couplés, les puissants périphériques basés sur DMA ont un excellent accès à la mémoire non TCM pour des E/S très efficaces. Le processeur Cortex-M7 de Teensy 4.1 comprend un processeur à virgule flottante. unité (FPU) qui prend en charge à la fois le "double" 64 bits et le "float" 32 bits. Avec le FPU de M4 sur Teensy 3.5 et 3.6, ainsi que les puces Atmel SAMD51, seul le flottant 32 bits est accéléré matériellement. Toute utilisation de fonctions doubles, doubles comme log(), sin(), cos() signifie des mathématiques implémentées par logiciel lent. Teensy 4.1 exécute tout cela avec du matériel FPU.
Remarque : veuillez noter que le Teensy 4.1 n'inclut pas d'en-têtes et devra être acheté séparément et soudé sur vous-même.
ARM Cortex-M7 à 600 MHz
1024 Ko de RAM (512 Ko sont étroitement couplés)
Flash de 8 Mo (64 Ko réservés à la récupération et à l'émulation EEPROM)
Port hôte USB
2 puces et mémoire de programme
55 broches d'E/S au total
3 bus CAN (1 avec CAN FD)
2 Audio numérique I2S
1 audio numérique S/PDIF
1 SD native SDIO (4 bits)
3 SPI, tous avec FIFO de 16 mots
7 signaux de tampon SMT inférieur
8 ports série
32 canaux DMA à usage général
35 broches PWM
42 E/S compatibles avec la maquette
18 entrées analogiques
Accélération cryptographique
Générateur de nombres aléatoires
RTC pour la date/l'heure
FlexIO programmable
Pipeline de traitement des pixels
Déclenchement croisé périphérique
10/100 Mbits DP83825 PHY (6 broches)
Prise pour carte microSD
Gestion marche/arrêt