Replacing RT1062 (Teensy4) with RT1064 on custom board


Well-known member


I do the developments using Teensy4, to finally make my own board for end customers in commercial projects. Since the RT1062 microcontroller is out of stock at all vendors, at first I thought of using the RT1052 that will be in stock soon, but then I thought it much better to use the RT1064 that I do have in stock here.

To see the compatibility between Teensy4 and RT1064, I have looked at the flash boot address in Teensy 4, to compare it with that of the RT1064 and I see that they are different, also the sizes of both FLASH and RAM, although the address of the RAM does match.

In the Arduino environment for Teensy4, I have found the Linker script with this data for the RT1062:
RAM (rwx): ORIGIN = 0x20200000, LENGTH = 512K
FLASH (rwx): ORIGIN = 0x60000000, LENGTH = 1984K

Then I looked for the RT1064 in the Reference Manual, but I didn't get it clear and so I opened in MCUXpresso one of the many example projects that there are, and here I see the memory map being this:
RAM SRAM_OC 0x20200000 0xC0000
Flash PROGRAM_FLASH 0x70000000 0x400000

In Teensy4 the FLASH is at 0x60000000, while in RT1064 it is at 0x70000000. In addition, the sizes vary, being the flash of the RT1064 of 4Mb, and in Teensy4 of 2Mb, and the RAM of 512k for Teensy4 and 1Mb for RT1064.

Does anyone know if it would be enough to change this data in the Teensy4 Linker Script, so that it compiles and loads in RT1064 ?

On my RT1064 board I would load the program with a SEGGER Jlink programmer or similar, and probably use an encrypting bootloader like uTasker to give updates to clients.




I could be 100% wrong here. But at one point I was looking at some of the 106x parts out of curiosity to see if there were anything out there. Did not really matter to me as I would not build my own board with those sizes of SMDs....

But I thought I read in some of the Descriptions and/or PDF something like:
Some of the chips come with their own Flash memory and something about that I think it took over one of the FlexSPI devices. And I think it was the one we use for the bottom connectors....

But my memory and/or interpretation of what I think I read may be totally bogus!
But I thought I read in some of the Descriptions and/or PDF something like:
Some of the chips come with their own Flash memory and something about that I think it took over one of the FlexSPI devices.

The text below is from a DigiKey page on iMXRT (link at bottom of this message). 1064 is pin-to-pin compatible with 1062, but with 4MB on-board flash. With different memory maps, though, pin compatibility doesn't necessarily mean software compatibility.

i.MX RT1050

Featuring an ARM Cortex-M7 core with up to 600 MHz frequency, the i.MX RT crossover processors are designed to support the next generation IoT applications with a high level of integration and security balanced with MCU-level usability at an affordable price. The i.MX RT1050 is the flagship i.MX RT device offering the perfect balance of performance, power, integration, and usability.

i.MX RT1060

The i.MX RT1060 doubles the on-chip SRAM to 1 MB while keeping pin-to-pin compatibility with i.MX RT1050. This new series introduces additional features ideal for real-time applications such as high-speed GPIO, CAN-FD, and synchronous parallel NAND/NOR/PSRAM controller. The i.MX RT1060 runs on the Arm® Cortex-M7® core at 600 MHz.

i.MX RT1064

The i.MX RT1064 has 1 MB on-chip SRAM and is the first i.MX RT device to offer on-chip 4 MB Flash memory, while keeping pin-to-pin compatibility with i.MX RT1050 and i.MX RT1060. The i.MX RT1064 runs on the Arm® Cortex-M7® core at 600 MHz.

1. 1062 code can run on 1052s as long as the additional 512k fixed OCR is not used (avoid 1052As though since they have a few missing registers and horrible HW errata)
2. 1062 code can run on 1064 once the FlexSPI address is changed from 0x60000000 to 0x70000000
3. I have about 6'000 MIMXRT1062DVL6B in stock (date code 2233) which are left over from another project. If there is an emergency with parts send me a PM.

Note that I have done a few designs with the 0.65mm BGAs on 4-layer boards (the PCB price tends to be about 30% more expensive due to the finer drills needed), including for TFT displays whereby it can be a bit tricky getting all signals out in some cases. EMC testing was always good (but I do use spread spectrum on 528MHz for TFT timing since the emissions are otherwise close to the limits).



P.S. It is also possible to solder the chips on to prototype boards with a hot air gun. It is a bit frightening at first but works quite well. I solder the BGA in as very first thing and then test all GPIO/Peripheral connections with a diode tester against 0V. If about 0.5V shows up the ball is soldered. If not it hasn't connected and I re-heat it until it does. Like this I can be almost 100% sure that all balls are soldered well and then continue mounting the rest of the components.
Last edited: