Guys,
I have been away from this forum for a year or so because I wanted to do a deep dive on the MIMXRT1062. As a hobbyist, time is the main problem; however, I have realised that the insights I needed were not reasonable to ask of this forum (way too detailed for any quick reply, and I had way too much to learn even to be able to talk about it). The Arduino framework was the go-to thing for me at the start; however, I wanted to operate at a lower level. I purchased a BOARD EVM from NXP and downloaded the MCUExpresso IDE and configuration tools and started typing. The 3500-page Reference Manual is the core of all insight; however, it is primarily declarative, not truly instructive until one has reached a certain threshold of learning. Claude Sonnet 5 has helped there an amazing amount. It can provide semantic insight into the "why" of NXP's thinking and guide you to the relevant manual chapters on "how". There is deep-dive detail in the CCM, the pad assignments under IOMUXC macros, the daisy-chain registers, the crossbar (XBAR) connectivity, and, in each case, the peripheral configurations which I have handled using both CMSIS functions and the peripheral wizard on MCUExpresso. Much of this detail is hidden from you in the Arduino environment, and this is a great thing, because it removes a significant barrier to entry for the XRT1062. However, to truly get to grips with the processor, I used Claude to validate concepts and logic against the reference manual and other publicly available resources. The biggest leap was understanding the IOMUXC/DaisyChain/XBAR trail, the startup and linker memory files, and the relationship between IDTC and DTC RAM types, DMA cache coherency, understanding the cache and cache flushing macros _ISB(), _DSB() and a host of other details too vast to mention here. The first real test was to (manually) configure the Quadrature encoders ENC1 or QDC1 (PHASE_A, PHASE_B, INDEX, TRIGGER) to reach the external pins. Once I had understood the steps, I could use the CMSIS functions with more comfort. One of the first decisions was to move away from the BOARD EVM and go back to the Teensy 4.1 to use the TeensyLoader.exe to boot up Teensy with code supplied by the MCUExpresso IDE. There is a simple post-link copy that produces a Teensy-loadable HEX file that runs every compile. Turnaround times under this "incremental compile and press the white button" sequence are less than 30 seconds. However, Claude admonished me not to expect Teensy4.1 to be exactly as performant as BOARD EVM projects, citing the HID and XIP via SPI protocols not necessarily being compliant, and noting that the characteristics of the Winbond flash may differ between BOARD1060 EVM and how the Teensy 4.1 behaves at boot and load compared with BOARD EVM. Does this make sense? Has anybody else gone down this path besides me who might be able to point out any issues with this approach? Is there a gotcha waiting for me? Stevo
I have been away from this forum for a year or so because I wanted to do a deep dive on the MIMXRT1062. As a hobbyist, time is the main problem; however, I have realised that the insights I needed were not reasonable to ask of this forum (way too detailed for any quick reply, and I had way too much to learn even to be able to talk about it). The Arduino framework was the go-to thing for me at the start; however, I wanted to operate at a lower level. I purchased a BOARD EVM from NXP and downloaded the MCUExpresso IDE and configuration tools and started typing. The 3500-page Reference Manual is the core of all insight; however, it is primarily declarative, not truly instructive until one has reached a certain threshold of learning. Claude Sonnet 5 has helped there an amazing amount. It can provide semantic insight into the "why" of NXP's thinking and guide you to the relevant manual chapters on "how". There is deep-dive detail in the CCM, the pad assignments under IOMUXC macros, the daisy-chain registers, the crossbar (XBAR) connectivity, and, in each case, the peripheral configurations which I have handled using both CMSIS functions and the peripheral wizard on MCUExpresso. Much of this detail is hidden from you in the Arduino environment, and this is a great thing, because it removes a significant barrier to entry for the XRT1062. However, to truly get to grips with the processor, I used Claude to validate concepts and logic against the reference manual and other publicly available resources. The biggest leap was understanding the IOMUXC/DaisyChain/XBAR trail, the startup and linker memory files, and the relationship between IDTC and DTC RAM types, DMA cache coherency, understanding the cache and cache flushing macros _ISB(), _DSB() and a host of other details too vast to mention here. The first real test was to (manually) configure the Quadrature encoders ENC1 or QDC1 (PHASE_A, PHASE_B, INDEX, TRIGGER) to reach the external pins. Once I had understood the steps, I could use the CMSIS functions with more comfort. One of the first decisions was to move away from the BOARD EVM and go back to the Teensy 4.1 to use the TeensyLoader.exe to boot up Teensy with code supplied by the MCUExpresso IDE. There is a simple post-link copy that produces a Teensy-loadable HEX file that runs every compile. Turnaround times under this "incremental compile and press the white button" sequence are less than 30 seconds. However, Claude admonished me not to expect Teensy4.1 to be exactly as performant as BOARD EVM projects, citing the HID and XIP via SPI protocols not necessarily being compliant, and noting that the characteristics of the Winbond flash may differ between BOARD1060 EVM and how the Teensy 4.1 behaves at boot and load compared with BOARD EVM. Does this make sense? Has anybody else gone down this path besides me who might be able to point out any issues with this approach? Is there a gotcha waiting for me? Stevo