The Hackster Crossover Code Challenge might be over, but really, it’s just the beginning for you. Now it’s your chance to take advantage of all the ideas to jump start your next design.
The Crossover Code Challenge generated lots of project examples using NXP’s i.MX RT1010 EVK and MCUXpresso software. All of which are available for you to leverage here. These projects include things like pictures, documentation, schematics and software and spanned applications like a rover platform with internet control, speech recognition, and even an interactive vocoder synth application. These projects take advantage of various product features and demonstrate the flexibility of the i.MX RT1010 device, giving examples for how to use the FlexIO and FlexSRAM, the ADC, SAI and SPI (just to name a few).
With features such as Flex PWM for motor control, S/PDIF for audio, and a FlexIO module for things like graphic LCDs, it is easy to see the breadth of products and use cases that could benefit from such a general purpose, feature-rich MCU (read the i.MX RT1010 blog series here for even more ideas). Working with Hackster, NXP wants to hear from you on what you can do with the i.MX RT1010.
NXP is challenging the Hackster community to develop feature-rich code using the i.MX RT1010 EVK in order to demonstrate just how much functionality is packed into this low-cost MCU. Thousands of dollars will be rewarded to the best ideas and implementations.
Today I conclude my countdown of top reasons to use i.MX RT1010, and I wanted to end the blog series in the same way that it began – by talking about how to get started. It is has been 2 weeks since my first post, so hopefully by now you have found the $10.10 in your couch cushion to order your i.MX RT1010 EVK. Maybe you even already have the EVK on your desk and followed the instructions on the Getting Started webpage which leads you to download the software and tools. But what is MCUXpresso and how much does it cost?
MCUXpresso is the holy trinity of software tools. It includes the MCUXpresso SDK along with an IDE and set of Config Tools under one name. It launched in 2017, and I know that team surpassed the 100,000 download mark earlier this year.
The MCUXpresso SDK supports the entire i.MX RT series, as well as other NXP MCU platforms, including LPC and K32 MCUs. It includes a comprehensive suite of drivers supporting the on-chip peripherals, and it also incorporates a number of key middleware and software components from NXP software partners, market-leading open source providers, and NXP software development teams. If you are already familiar with the MCUXpresso SDK for i.MX RT, then you will be happy to hear that now complete boot configuration is supported and Wi-Fi drivers have been added.
Closely paired with the success of the MCUXpresso SDK are the accompanying development tools – the MCUXpresso IDE and the MCUXpresso Config Tools. These tools have been a key part of the success of the MCUXpresso software and tools suite. The aim of these tools, along with the SDK, is to make you as efficient as you can be.
So take the MCUXpresso out for a try and see for yourself just how easy it is to get started. If you liked the $10.10 price for the EVK, you will love the $0 price for MCUXpresso software and tools. Register and get your own copy today.
Listen up everyone. We are winding down the countdown and my blog today is about audio. Many consumer products and embedded devices support various digital audio functions, and more and more engineers are looking for the MCU to support these functions, rather than needing to add a DSP or other dedicated solution. The good news is that many MCUs now have the capabilities to support these basic audio tasks. But how do you choose an MCU that will give your product the price, performance, and design flexibility you need?
Let’s say you are building a docking station or a set of digital speakers or even a thermostat that can play music throughout the home. A high performance, low-cost MCU like the i.MX RT1010 device, can play a big role in this type of design by managing the digital music streams. The audio subsystem of the i.MX RT1010 MCU consists of the following modules: SAI-1, SAI-2, S/PDIF and MQS.And, the performance of the i.MX RT1010 device will allow you to decode common audio formats like MP3/4, AAC, or WMA with plenty of MIPS to spare.
One of the more interesting audio features of the i.MX RT1010 MCU is the on-chip Sony/Philips Digital Interface (S/PDIF) module. The S/PDIF module can transmit uncompressed or compressed data and it is an easy way to get stereo or multi-channel audio to the i.MX RT MCU. The i.MX RT1010 S/PDIF module has both a receiver and transmitter. A use case for the S/PDIF interface is to carry compressed digital audio for surround sound.
So what’s the message here on audio? You can achieve lossless transmission of CD-quality audio from a small 80LQFP MCU and all for a super low price. Can you believe that?
Tomorrow, October 24, NXP’s technical experts will be delivering a 1-hour webinar on i.MX RT and MCUXpresso (this may or may not also be a hint about tomorrow's blog topic). We would love for you to join us and ask us any question that you are wondering about the i.MX RT1010. You can register here. Hope to see you online tomorrow!
So you want to add a display to your product? You look at the i.MX RT series table and see that the i.MX RT1010 device does not have an LCD interface, so you immediately write it off. Not so fast! Did you know that you can add a display to your i.MX RT1010 design through the I2C module? What’s great about the i.MX RT1010 is that we didn’t skimp on peripherals to hit that $1 price point. Even the pin muxing takes into account maximum usability for a variety of applications. But say you are working on a thermostat application and need the I2C module to connect to a variety of sensors instead. Based on yesterday’s blog, hopefully you immediately think of the FlexIO module. Below is an example block diagram on how the i.MX RT1010 MCU could be used in a thermostat application. The i.MX RT1010 device can connect to your sensors via the I2C, a speaker via I2S, a keypad via the on-chip keyboard I/F, and the LCD display using the FlexIO module. Based on the configuration of the i.MX RT1010 device, I would estimate that your max screen resolution would be about QVGA before you would want to jump to a higher end i.MX RT device.
By offering a rich set of peripherals, the i.MX RT1010 MCU can enable a wide variety of use-cases, including those requiring the use of a simple QVGA LCD display. So you don’t have to be shy about putting it all out on display.
Say for example, you are working on your industrial application using the i.MX RT1010 MCU and have everything designed out. You are using two UARTs for sensor interfaces, one UART for camera, and the fourth UART will be used for development and future debug. Then, your product marketer comes by and asks you to add Bluetooth to the product.
What can you do? The i.MX RT1010 only supports 4 UARTs. Do you move to an i.MX RT1050 MCU since it has 8 UARTs? Do you add another external UART to your design?
Don’t fret! FlexIO to the rescue!
NXP’s FlexIO is capable of supporting a wide range of protocols including, but not limited to: UART, I2C, SPI, I2S, camera interface, display interface, PWM waveform generation, etc. Hens the ‘flex’ name. The module can remain functional when the chip is in a low power mode provided the clock it is using remains active. So, you can use the FlexIO to support that new Bluetooth requirement from marketing.
It is easy to remember that it is the flexibility that make this FlexIO peripheral so great. The i.MX RT1010 MCU only has one FlexIO port, but other devices like i.MX RT1060 MCU contain upward of three. And the FlexIO module has a long history in the NXP MCU portfolio. Popular product series like S32K and Kinetis also use the same FlexIO IP. Hackster.io even ran a contest on FlexIO several years ago. See the results here. What are you waiting for? Flex away.
All engineers – and most anyone – love to make things spin, right? That explains the revenue made on those fidget spinners. The inventor is a genius! OK ok … now back to MCUs … the i.MX RT MCU motor control demos are some of the most highly viewed demos. So what makes the i.MX RT1010 device ideal for motor control applications? Is it the FlexPWM? The ADC? Or just the raw performance of this 500 MHz MCU? The answer – all of the above. The i.MX RT1010 MCU is an ideal solution for a single motor and here’s why:
Arm® Cortex®-M7 core, up to 500 MHz
16 KB L1 instruction cache and 8 KB L1 data cache
Up to 128KB on-chip RAM that can be configured as I-TCM and D-TCM or general-purpose on chip RAM
4 sub-modules with A, B, X PWM outputs in each FlexPWM
Separated 16-bit counter for center, edge-aligned, and asymmetrical PWMs for each sub-module
Easily configured to work in synchronous mode
Multiple output h/w triggers generated per PWM cycle
12-bit ADC with up to 1MS/s sampling rate and 15 input channels selected by h/w or s/w triggers
ADC_ETC to share an ADC in a time-division-multiplexing way and to sync trigger between trigger initiator and ADC
32-bit PIT for periodical interrupt generation
2 x 32-bit GPT with 2 input capture Channels and 3 output compare Channels
And let’s not forget about software. The MCUXpresso SDK for i.MX RT products includes the motor control libraries (for BLDC, PSMS, and ACIM).SDK examples are also included and are based on these libraries.
On what could be perceived as a low-cost MCU, it is nice to see that security was not compromised on the i.MX RT1010 device. In fact, the i.MX RT1010 MCU has the same security block that exists on many of the other i.MX RT products. Features like:
High assurance boot
Secure JTAG controller
Secure non-volatile storage
True random number generator
Advanced encryption standard
Cyclic redundancy check
Flash access control
One great feature available in all i.MX RT crossover MCUs is the integration of hardware protected keys. In the factory, we create the fuse material that gets placed in the MCU during manufacturing that enables security. When a customer receives the device, they cannot even use the key material in the device until they implement a secure boot. Once they do, they then have access to the OTPMK (One time Programmable Master Key). This hardware protected key then has a secret bus that goes to the AES engine and can be used to encrypt data. This multi-step method adds a new level of security for customers.
Make sure that you are implementing secure designs. Below is a great resource for you to learn more about the i.MX RT MCU security:
For today's blog, I am going to keep it short and direct it to the PCB layout engineers out there. The i.MX RT1010 MCU designers want you to know that the utmost care was taken when designing the i.MX RT1010 device. Even if your company typically prioritizes product requirements over package requirements, NXP has you covered. During our package development, we do a number of pin-out iterations and a fanout exercise to make sure that the i.MX RT LQFP packages are easily laid out for 2-layer through-hole PCBs. We make sure that your PCB design will not require buried or blind vias, that you will be able to support at least 4 mil PCB traces and spaces on your board and that you will be able to avoid all high-density PCB design rules. How do we do that? By designing our own EVK boards in-house and then passing along our knowledge. It’s not every day that you can find a 500 MHz device in a small, easy-to-lay-out 80LQFP package. i.MX RT1010 is the MCU where both your product requirements and your package requirements meet.
Continuing with my countdown of top reasons to use i.MX RT1010 crossover MCU, today I want to talk about performance. The performance of the i.MX RT series really pushes this portfolio to a classification of its own – crossover MCUs. Engineers can now enjoy the level of performance historically seen in the processor space, now in the MCU world – providing tremendous familiarity and usability for engineers. But just ask the rabbit from the Tortoise and the Hare fable, sometimes it is not enough just to be fast. You have to be smart too. Within the i.MX RT1010 family, several smart features are coupled together with the 500 MHz Arm® Cortex®-M7 core. These features include:
16 KB L1 instruction cache
8 KB L1 data cache
Full featured Floating Point Unit (FPU) with support of the VFPv5 architecture
Support the Armv7-M Thumb instruction set, defined in the ARM v7-M architecture
Integrated MPU, up to 16 individual protection regions
Up to 128 KB I-TCM and D-TCM in total
While all of these features are important to designers, the large amount of tightly-coupled memory (TCM) is one of the most important and is a hidden hero of MCU performance. TCM is a small, dedicated memory region that, as the name implies, is very close to the CPU. The CPU can access the TCM every single cycle, and TCM provides the highest possible theoretical performance.
For MCUs with only a small amount of TCM, the data must be stored in embedded flash or in an external NOR or NAND flash instead. Therefore, for every access that the CPU core has to make to a non-TCM, there is a significant degradation in the effective performance as the CPU must wait for several cycles for the data to arrive.
Conversely, i.MX RT crossover MCUs with high density of on-chip TCM delivers significantly higher net effective performance than what is possible with other traditional MCUs. So, not only will you benefit from high 500 MHz performance, you will benefit from efficient, smart performance as well.
Want to learn more about i.MX RT Series, read this white paper.
Continuing with my 10-day countdown to top reasons to consider the i.MX RT1010, today we look at reason #9 -the unlimited memory capabilities of the i.MX RT1010.
Looking at the i.MX RT1010 crossover MCU, one might notice that there is no on-chip Flash memory. Where do you boot from? Where do you store your code? And is it safe? What about latency issues? The i.MX RT1010 MCU was designed to ensure maximum memory flexibility, while not sacrificing performance or security.
The truth is that an MCU with integrated flash memory is limited with regards to scalability. If the system needs more memory than what is provided internal to the controller, then external memory must then be added at that point or an entirely new MCU must be selected. And often, external memory (such as EEPROM) is added anyway to store data for other uses in the system. While a flash-based MCU might have been chosen with the best intentions in mind, it can quickly end up pretty limiting and technically challenging.
But is using external flash secure? First let’s look at the memory controller on the i.MX RT1010 MCU - the FlexSPI module. The FlexSPI works with Serial NOR or Serial NAND devices. The capabilities of the i.MX RT FlexSPI memory controller enhance eXucute in Place (XiP) operation.
The eXecute in Place, or XiP, is a capability that allows a processor to execute code directly from external flash memory. Many embedded applications require connectivity stacks, audio processing, and vision; and the amount of executable code for these functions has grown to substantial sizes. When considering these application requirements together for one embedded system, the capability of XiP with external flash is an essential enabler as it allows nearly limitless data space for the embedded system. Designers do not have to face issues with over buying for a larger memory size to protect against software growth. The choice of external memory can be made for what is needed for the embedded design. This ensures that every penny spent on the processor components in the system goes towards relevant features for the end product. This architecture reduces both risk and design cycle times as the XiP system architecture can be scaled with only a change to the serial NOR flash in the bill of materials for the circuit boards. In addition, XiP brings an advantage in terms of power and fast wakeup from sleep mode.
And having code placed externally is not risky in the case of the i.MX RT1010 MCUs because it has hardware protected keys that can be used to encrypt the code from external memory before it moves into the MCU. Furthermore, the MCUXpresso SDK has examples pre-built to make it even easier to get started.
Though not widely publicized, the $1 price point of the newly announced i.MX RT1010 crossover MCU made me pause. My parents always told me that a dollar is not what it used to be, meaning that the value of a dollar today does not go nearly as far as it used to for them when they were growing up.
On one hand, I agree. The average trip to Starbucks, will likely cost you $6. The “One Dollar” dry-cleaner in Austin, Texas, is now charging over $3 per article of clothing. And when I go to a movie, I am easily forking over at least $10 per ticket.
But on the other hand, when I look at technology, the value actually continues to grow year after year. You do get more for less when compared to technology from years ago. And now for just $1, you can get a 500 MHz MCU, integrated with smart features and complete with software drivers and support.
For just $1, you can use the new i.MX RT1010 crossover MCU to start designing everything from a guitar pedal to a light switch to a robotic medicine dispenser. I am excited to see what this new lower price point in the high performance MCU market will enable.
Over the next 10 days, I’ll be counting down 10 reasons why you should consider i.MX RT1010 MCUs, all in celebration of the product launch. Hopefully these blogs will give you some insight into the chip and help you launch your own legacy using i.MX RT series MCUs.