Aperçu

 Le kit d'évaluation MIMXRT1010-EVK est basé sur le microcontrôleur i.MX RT1010 de NXP. Il fait partie de la famille i.MX RT Crossover qui comprend des cœurs Arm Cortex-M très performants (certains en ont même deux). La plupart sont optimisés pour les protocoles Ethernet en temps réel dans les applications industrielles IdO et automobiles, mais le RT1010, l'un des plus petits membres de la famille, est plus polyvalent.

À l'intérieur du microcontrôleur

L'iMX RT1010 est basé sur un cœur Arm Cortex-M7, fonctionnant à des vitesses allant jusqu'à 400 MHz. Les membres plus puissants de sa famille y ajoutent un cœur Arm Cortex-M4. Le processeur est doté d'une mémoire vive sur puce de 128 Ko, configurable en tant que mémoire à couplage étroit (TCM) ou en tant que mémoire vive à usage général. Le SoC intègre un module de gestion de l'énergie qui simplifie grandement l'alimentation du dispositif. Bien entendu, il existe toute une série d'interfaces de connectivité, notamment UART, SPI, I²C, I²S et USB. Un CAN et un capteur de température n'ont pas été oubliés non plus.

 
iMX RT1010 inside
Schéma fonctionnel du microcontrôleur iMX RT1010. (Source : NXP) 

Applications audio

L'iMX RT1010 est un appareil polyvalent avec une légère spécialité pour les applications audio, car il possède de riches fonctions audio, notamment des interfaces audio SPDIF et I²S. Le kit d'évaluation sur lequel le microcontrôleur est monté accentue cet aspect en intégrant un CODEC audio stéréo WM8960 de Wolfson, une prise pour casque, des connexions pour haut-parleurs, un microphone à condensateur et des empreintes (non peuplées) pour les connecteurs SPDIF.

Autres applications

Outre les applications audio, l'iMX RT1010 est également adapté à la commande de moteurs. Pour faciliter cela, l'EVK dispose de connecteurs exposant les signaux PWM générés par le module eFlexPWM du microcontrôleur ainsi que des entrées analogiques pour mesurer les courants et les tensions.

Le MIMXRT1010-EVK est également supporté par le RTOS Zephyr.

Autres périphériques

Comme il est d'usage pour les cartes d'évaluation, elles contiennent des éléments supplémentaires destinés à faciliter le développement d'applications, et la MIMXRT1010-EVK n’y fait pas exception. Outre les périphériques audio et de contrôle moteur déjà mentionnés, elle dispose également d'une mémoire flash QSPI de 128 Mbit (pour le stockage des programmes et des données, car le microcontrôleur n'en a pas) et d'une mémoire flash LPSPI de 4 Mbit, d'un port USB OTG, d'un bouton utilisateur et d'une LED, et d'un capteur de mouvement à 6 axes avec accéléromètre à 3 axes et magnétomètre à 3 axes.
 
MIMXRT1010-EVK peripherals
Emplacement des périphériques sur le MIMXRT1010-EVK. (Source : NXP) 

Les shield Arduino sont également pris en charge

Les connecteurs d'extension de type Arduino UNO sont également disponibles, mais d'une manière spéciale puisqu'ils consistent en des connecteurs à double rangée au lieu d'une rangée unique. Les rangées intérieures sont compatibles avec les shield Arduino, tandis que certaines des rangées extérieures permettent d'accéder à l'interface de commande du moteur.

Débogage facilité

Pour faciliter le développement d'applications, l'EVK est livré avec un support de débogage intégré. En plus d'un header JTAG, il y a aussi une interface Freelink (un vestige de l'époque Freescale) avec un port USB (qui fournit aussi l'alimentation à la carte). Cette interface est prise en charge par MCUXpresso, la plate-forme de développement de logiciels intégrés basée sur Eclipse de NXP.

MCUXpresso et exemples

Cela nous amène au développement de logiciels. Comme nous l'avons dit plus haut, MCUXpresso est le moyen le moins cher de commencer à utiliser le MIMXRT1010-EVK car il est gratuit. Il est livré avec un SDK complet fournissant de nombreux exemples pour presque tous les périphériques disponibles sur le microcontrôleur et sur l'EVK. Tout ce que vous avez à faire est d'importer l'exemple qui vous intéresse, de le compiler et de le télécharger sur la carte.

De nombreux exemples sont disponibles en trois versions : 'bm', 'lite_bm' et 'freertos'. BM' signifie bare metal, c'est-à-dire sans système d'exploitation comme FreeRTOS. Les exemples lite sont des exemples bare metal mais avec une pile USB minimale. Les exemples plus complexes sont accompagnés d'une documentation, mais ils sont profondément cachés dans un sous-dossier d'un dossier portant le nom de la carte ('evkmimxrt1010') qui contient également un exécutable précompilé.
 
MCUXpresso debug session
Exemple de code dans MCUXpresso. 

J'ai essayé quelques exemples, qui ont tous fonctionné sans problème. Une fois téléchargé, vous pouvez immédiatement exécuter ou déboguer le code en le parcourant ou en plaçant des points d'arrêt.

Une démo surprenante

Un exemple curieux que j'ai essayé est 'evkmimxrt1010_dev_audio_generator_bm' qui émule un périphérique de lecture audio USB. Après avoir compilé et téléchargé le code, Windows découvre un périphérique USB AUDIO DEMO que vous pouvez écouter. Cependant, au lieu de jouer de la musique douce, la démo crie : « Out ! Out ! Out ! Out ! ... ».

Bien entendu, l'EVK et le processeur iMX RT1010 sont également pris en charge par les fabricants de chaînes d'outils établis.

La documentation ?

Parce qu'il est toujours un peu intimidant de commencer à utiliser un nouveau processeur, et encore plus lorsqu'il est équipé de nombreux périphériques complexes, il est important de disposer d'une bonne documentation. C'est malheureusement le point faible du MIMXRT1010-EVK. Il n'y a pas grand chose et ce qu'il y a ne vous dit pas grand chose. Elle inclut cependant les fichiers de conception de la carte avec un schéma en PDF, ce qui vous permet de savoir comment, par exemple, les ports d'extension sont câblés. Pour tout le reste, vous devez consulter la fiche technique du microcontrôleur.

Achetez le livre !

En l'absence de documentation, vous pouvez lire le nouveau livre Elektor intitulé « Get Started with the NXP iMX RT1010 Development Kit » par Dogan Ibrahim. Ce livre décrit le processeur, la carte d'évaluation et la façon de développer des applications avec MCUXpresso de façon beaucoup plus détaillée que NXP, c'est donc un excellent moyen de commencer.