Other Parts Discussed in Thread: HALCOGEN
I have to RM44L920 MCUs on a single board for redundancy, with a GPIO from each going to the other's nRST pin via an inverter. Due to a net naming error, we had to pull the external power monitoring IC from one of the two MCUs, and occasionally that MCU will not come up on power on, and its nERROR pin is low. This is due to a dirty power glitch that the hardware team is working on. (Before the voltage to the regulators comes up to full value, it fluctuates a bit and sometimes exceeds the turn on voltage for the regulators for a very short period.)
In the meantime, I have been using the cross reset functionality to pulse the nRST pin to recover the MCU in the nERROR condition to continue normal operation & testing. The cross reset works about 80% of the time. When it doesn't, the nERROR pin remains low.
I've tried longer duration pulses, but the 15 milliseconds I started with should be plenty of time.
How is the nERROR condition being maintained over a physical reset? I realize it's a warm reset, but still. I'm sure I'm missing something simple here as usual.
I read through the ESM section of the RM44 reference manual, but it seems as though the esmInit() function called in system_main.c should be clearing things up for me, though again I'm sure I'm missing something.
As a side note I am using RM46 LaunchXL boards for some of the development work, and was attempting to force an nERROR condition using esmREG->EKR = 0xAU, but I couldn't figure out how to get into privileged mode to do so. This is low priority.
Any help with clearing out the (occasionally) hanging nERROR condition would be greatly appreciated.
Thanks!
- Tom