Crash after fast reset cycle

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Crash after fast reset cycle

Jump to solution
612 Views
SalM
Contributor I

Hello Community,
I've recently come across a very weird behavior of an LPC1768. When I toggle the reset button/power from high to low in a short duration (~0.5sek or even longer) the controller goes into a state where nothing is running, also at a new reset (longer duration), the only response the controller is sending, is when the ISP-pin is held low and resetting the controller over the reset pin. In order to exit this state, power down the controller, pause and plug in the supply again.
Our firmware is staged, first is a secondary bootloader and the second the actual firmware, when the second firmware is exchanged, the problem does not occur. Sadly attaching a debugger does not work in this state either and comparing the two firmware, the LPC_SC (System Config) registers are identical.
After this issue occurs the µC is neither running in the first nor second stage.

Thank in advanced
Best Regards

0 Kudos
Reply
1 Solution
553 Views
SalM
Contributor I

The ramp-up voltages are correct.

Using a debugger and connecting to the running system, I was able to identify the problem. It turns out that if the controller is reset during an I2C communication, while the slave is pulling the
data line to low and staying low, the auto hardware detection of our bootloader could not identify the I2C bus, this was all done before the systick was initialised, therefore no timeout is trigged and executes an endless loop.
Of course these events only happen when the controller is initialised and all parameters are fetched from an I2C FRAM, that's why a fast reset can disrupt the communication.

As always, it was a PICNIC error

Anyway, thanks for your help!

View solution in original post

0 Kudos
Reply
2 Replies
557 Views
vicentegomez
NXP TechSupport
NXP TechSupport

Are you using a custom board?

 

Can you please check if the ramp up time is correct?

0 Kudos
Reply
554 Views
SalM
Contributor I

The ramp-up voltages are correct.

Using a debugger and connecting to the running system, I was able to identify the problem. It turns out that if the controller is reset during an I2C communication, while the slave is pulling the
data line to low and staying low, the auto hardware detection of our bootloader could not identify the I2C bus, this was all done before the systick was initialised, therefore no timeout is trigged and executes an endless loop.
Of course these events only happen when the controller is initialised and all parameters are fetched from an I2C FRAM, that's why a fast reset can disrupt the communication.

As always, it was a PICNIC error

Anyway, thanks for your help!

0 Kudos
Reply