Overzicht

De MIMXRT1010-EVK (evaluatiekit) is gebaseerd op de i.MX RT1010 microcontroller unit (MCU) van NXP. Deze MCU maakt deel uit van de i.MX RT Crossover-familie die beschikt over krachtige Arm Cortex-M-kernen (sommige hebben er zelfs twee). De meeste leden van deze familie zijn geoptimaliseerd voor realtime Ethernetprotocollen in industriële IoT- en automobieltoepassingen, maar de RT1010, een van de kleinere apparaten uit de familie, is meer universeel inzetbaar.

In de MCU

De iMX RT1010 is gebaseerd op een Arm Cortex-M7 kern die werkt met snelheden tot 400 MHz. Krachtigere leden van de familie voegen hier een Arm Cortex-M4 kern aan toe. De processor heeft 128 KB RAM op de chip, configureerbaar als vast gekoppeld geheugen (TCM) of RAM voor algemeen gebruik. De SoC integreert een energiebeheermodule die de voeding van het device sterk vereenvoudigt. Natuurlijk is er een scala aan connectiviteitsinterfaces, waaronder UART, SPI, I²C, I²S en USB. Ook een ADC en temperatuursensor zijn niet vergeten.
 
iMX RT1010 inside
Blokschema van de iMX RT1010 microcontroller. (Bron: NXP)

Audiotoepassingen

De iMX RT1010 is een device voor algemene doeleinden met een lichte voorkeur voor audiotoepassingen, aangezien het over uitgebreide audiofuncties beschikt, waaronder SPDIF en I²S audio-interfaces. De evaluatiekit waarop de MCU is gemonteerd, accentueert dit door de integratie van een WM8960 audio stereo CODEC van Wolfson, een hoofdtelefoonaansluiting, luidsprekeraansluitingen, een ingebouwde condensatormicrofoon en (onbezette) footprints voor SPDIF-connectoren.

Andere toepassingen

Naast audiotoepassingen is de iMX RT1010 ook geschikt voor motorbesturing. Om dit mogelijk te maken heeft de EVK-connectoren die PWM-signalen leveren die worden gegenereerd door de eFlexPWM-module van de MCU, samen met analoge ingangen voor het meten van stromen en spanningen.

De MIMXRT1010-EVK wordt ook ondersteund door het Zephyr RTOS.

Inschrijven
Schrijf u in voor tag alert e-mails over Embedded & AI!

Andere randapparatuur

Zoals gebruikelijk bij evaluatiekaarten, zit er wat meer spul op dat bedoeld is om het ontwikkelen van toepassingen wat gemakkelijker te maken. MIMXRT1010-EVK is daarop geen uitzondering. Naast de al genoemde audio- en motorbesturingsperiferie heeft het board ook 128 Mbit QSPI-flashgeheugen (voor programma- en dataopslag, aangezien de MCU dit niet heeft) en 4 Mbit LPSPI flashgeheugen, USB OTG, een gebruikersknop en LED, en een 6-assige bewegingssensor met 3-assige versnellingsmeter en 3-assige magnetometer.

 
MIMXRT1010-EVK peripherals
Locatie van de periferie op de MIMXRT1010-EVK. (Bron: NXP)

Arduino Shields worden ook ondersteund

Arduino-UNO-stijl uitbreidingsheaders zijn ook beschikbaar, maar op een speciale manier omdat ze bestaan uit headers met dubbele rijen in plaats van enkele rijen. De binnenste rijen zijn compatibel met Arduino-shields, terwijl sommige van de buitenste rijen toegang bieden tot de motorbesturingsinterface.

Debuggen gemakkelijk gemaakt

Om de ontwikkeling van toepassingen te vergemakkelijken, wordt de EVK geleverd met ingebouwde debug-ondersteuning. Naast een JTAG-header is er ook een Freelink Interface (een overblijfsel van Freescale) met een USB-poort (levert ook stroom aan het board). Deze interface wordt ondersteund door MCUXpresso, NXPs op Eclipse gebaseerde geïntegreerde softwareontwikkelplatform.

MCUXpresso en voorbeelden

Dit brengt ons bij softwareontwikkeling. Zoals gezegd is MCUXpresso de goedkoopste manier om met de MIMXRT1010-EVK aan de slag te gaan, omdat het gratis is. Het wordt geleverd met een uitgebreide SDK met vele voorbeelden voor bijna alle randapparatuur die beschikbaar is op de MCU en op de EVK. Het enige wat je moet doen is het voorbeeld waarin je geïnteresseerd bent importeren, compileren en uploaden naar het board.
 

Veel voorbeelden komen in drie versies: 'bm', 'lite_bm' en 'freertos'. BM' staat voor bare metal, dus zonder besturingssysteem zoals FreeRTOS. De lite voorbeelden zijn bare metal voorbeelden maar met een minimale USB-stack. De complexere voorbeelden worden geleverd met wat documentatie, maar diep weggestopt in een submap van een map met de naam van het board ('evkmimxrt1010') die ook een voorgecompileerde executable bevat.


 
MCUXpresso debug session
Stappen door een codevoorbeeld in MCUXpresso.

Ik heb een paar voorbeelden geprobeerd en ze werkten allemaal zonder problemen. Eenmaal geüpload, kun je de code onmiddellijk uitvoeren of debuggen door er doorheen te stappen of door breekpunten te zetten.

Een verrassende demo

Een vreemd voorbeeld dat ik heb geprobeerd is 'evkmimxrt1010_dev_audio_generator_bm' dat een USB-audioweergaveapparaat emuleert. Na het compileren en uploaden van de code, ontdekt Windows een 'USB AUDIO DEMO' apparaat waar je naar kunt luisteren. Echter, in plaats van het afspelen van aangename muziek, schreeuwt de demo: “Out! Out! Out! Out! ...”.

Natuurlijk worden de EVK en de iMX RT1010 processor ook ondersteund door de gevestigde fabrikanten van tool chains.

Documentatie?

Omdat het altijd een beetje intimiderend is om met een nieuwe processor te beginnen, en nog meer als er veel complexe randapparatuur bij komt kijken, is goede documentatie belangrijk. Dit is helaas het zwakke punt van de MIMXRT1010-EVK. Er is niet veel en wat er is, vertelt je niet veel. Het bevat echter wel de ontwerpbestanden van de print met een schema in PDF, zodat je kunt achterhalen hoe bijvoorbeeld de uitbreidingspoorten bedraad zijn. Voor al het andere moet je de datasheet van de MCU raadplegen.

Koop het boek!

Aangezien documentatie ontbreekt, kun je het nieuwe Elektor-boek ‘Get Started with the NXP iMX RT1010 Development Kit’ van Dogan Ibrahim raadplegen. Het boek beschrijft de processor, het evaluatieboard en hoe je er toepassingen voor kunt ontwikkelen met MCUXpresso veel gedetailleerder dan NXP, dus het is een prima manier om aan de slag te gaan.