StevenMartin
Member
Hi all,
I'm learning embedded systems from the ground up with a Teensy 4.1, deliberately trying to understand the hardware/software boundary rather than relying on the Arduino/PJRC abstractions. I'm really enjoying digging through the RT1062 reference manual and the Teensy schematic.
I've been trying to understand the purpose of the separate PJRC bootloader MCU (U2), particularly given that the RT1062 itself contains immutable NXP Boot ROM with a Serial Downloader mode.
My understanding is that the RT1062 can be put into Serial Downloader mode via its BOOT_MODE pins, after which the ROM can communicate over USB/UART, download an image into internal RAM, and execute it. NXP's documentation then describes using a RAM-resident flashloader to program external boot flash.
That leaves me with two questions:
What functionality does the separate PJRC bootloader MCU provide?
I understand that it provides the Teensy programming/recovery experience and has additional responsibilities such as power sequencing, fuse configuration, security, etc. But I'm interested in the fundamental reason for having a separate MCU to program the external flash, given that the RT1062 has immutable ROM recovery and external flash can presumably be reprogrammed through NXP's native mechanism. Is there functionality or a limitation I'm overlooking?
Can the PJRC bootloader MCU be bypassed for learning/experimentation?
As a learning exercise, I'd like to isolate the RT1062 as much as reasonably possible and interact directly with its NXP ROM Serial Downloader — ideally forcing the appropriate BOOT_MODE state, resetting the RT1062, and communicating with its USB Serial Downloader from a PC using the NXP SDP protocol, without using the PJRC loader.
Is this physically possible on an unmodified Teensy 4.1, or would it require modifying the board / disconnecting U2? If it is possible, are there particular pins, test points, or reset/power considerations I should be aware of?
I'm not trying to replace the Teensy bootloader for normal use; this is purely a learning exercise. I'd like to start as close to the RT1062 itself as possible, understand the immutable ROM → RAM → external flash boot chain directly, and then work upwards into what PJRC adds.
Thanks to everyone who has helped document the Teensy hardware so well. It's been a very useful platform for learning this stuff.
I'm learning embedded systems from the ground up with a Teensy 4.1, deliberately trying to understand the hardware/software boundary rather than relying on the Arduino/PJRC abstractions. I'm really enjoying digging through the RT1062 reference manual and the Teensy schematic.
I've been trying to understand the purpose of the separate PJRC bootloader MCU (U2), particularly given that the RT1062 itself contains immutable NXP Boot ROM with a Serial Downloader mode.
My understanding is that the RT1062 can be put into Serial Downloader mode via its BOOT_MODE pins, after which the ROM can communicate over USB/UART, download an image into internal RAM, and execute it. NXP's documentation then describes using a RAM-resident flashloader to program external boot flash.
That leaves me with two questions:
What functionality does the separate PJRC bootloader MCU provide?
I understand that it provides the Teensy programming/recovery experience and has additional responsibilities such as power sequencing, fuse configuration, security, etc. But I'm interested in the fundamental reason for having a separate MCU to program the external flash, given that the RT1062 has immutable ROM recovery and external flash can presumably be reprogrammed through NXP's native mechanism. Is there functionality or a limitation I'm overlooking?
Can the PJRC bootloader MCU be bypassed for learning/experimentation?
As a learning exercise, I'd like to isolate the RT1062 as much as reasonably possible and interact directly with its NXP ROM Serial Downloader — ideally forcing the appropriate BOOT_MODE state, resetting the RT1062, and communicating with its USB Serial Downloader from a PC using the NXP SDP protocol, without using the PJRC loader.
Is this physically possible on an unmodified Teensy 4.1, or would it require modifying the board / disconnecting U2? If it is possible, are there particular pins, test points, or reset/power considerations I should be aware of?
I'm not trying to replace the Teensy bootloader for normal use; this is purely a learning exercise. I'd like to start as close to the RT1062 itself as possible, understand the immutable ROM → RAM → external flash boot chain directly, and then work upwards into what PJRC adds.
Thanks to everyone who has helped document the Teensy hardware so well. It's been a very useful platform for learning this stuff.