This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf51822 seems fail to run the code

Hi, Nordic and all great guys,

I have a weird and terrible problem about our products,which used a MCU based on nrf51822. Some info about our product:this is a module powered by 12-24V DC power, BLE accepts commands from users and control a relay ,which will control the door lock, and a GPIO interrupt is set for a button at the inner side of the door,also control the relay,pretty simple.

The problem is that: we powered on several products for a long time ,at the beginning ,all are alive and work good, then after several days, some of them are "dead",no BLE advertising action, no GPIO interrupt response(the priority is low). However, the power supply is always working,the VDD voltage is still 3.2V to 3.3V even the product is dead. When we disconnect the power line and reconnect it , the product works again ,but we are worried that sometime in the future it will "die" again. We need these products work without any "undetectable time", until it break down totally. It seems that the MCU is going to certain kind of unknown state, the code is no longer running even the power is normal,but we have not found the cause.our code is an interrupt based program, all activity are done in the interrupt response, we have BLE,GPIO,APP_TIMER,our other products using the same program pattern have not met this problem. The attachment is our schematic diagram,maybe someone can find the problem or strange things from hardware aspect,any help and advice are appreciated, if more information needed, please add a comment below and I will reply.THANKS ALL.schematic diagram.pdf

updated 8-11: The power up voltage waveform is like this:scope_12.png

when buzzer is on, the VDD waveform is like this :scope_14.png

updated 8-22: the full PCB layout is here:Lock_control13.PcbDoc

Parents
  • Hi,

    Couple of questions. What happens if you perform a debug or firmware reset to these devices that have frozen?

    What kind of ripple do you see on the VDD line?

    How is VCC routed? We recommend that each device in the system is connected individually through a star node (so that high current draws on one device will not drop voltages for all devices), preferably this star node should have a capacitor reservoir.

    I would also try probing the reset line to see that the pull is strong enough.

    The nRF51 is only specified to source a maximum of 15 mA in high drive through gpios, are you exceeding this?

    I am also not sure that the LDO you are using is properly specced, it seems that it will in certain cases deliver more than 100 mV ripple (we require that the ripple be less than this, with increased sensitivity as the voltage drops). Set up a constant load of approx 16 mA and test the ripple.

    Best regards,

    Øyvind

  • Hi,Øyvind Karlsen , We have tested the waveform on the NRESET pin, when we touch the wire connected to NRESET pin, we found so many glitches, many of them will drop the voltage below 2V, so they might RESET 51822 persistently, the phenomenon causeed by it is similar to the "dead ones", no BLE actions, no GPIO interrupt response,no watchdog timeouts. However, we still can not explain why they are powered again, they become normal. If we add a capacity between NRESET PIN and GND,these glitches become too small,and the MCU works normal,even we touch the NRESET pin with or without metal wires, but it seems that we can not flash the MCU any more, is it right? We still want to know the what the ripple over 100mV on VCC will cause. Thanks a lot.

Reply
  • Hi,Øyvind Karlsen , We have tested the waveform on the NRESET pin, when we touch the wire connected to NRESET pin, we found so many glitches, many of them will drop the voltage below 2V, so they might RESET 51822 persistently, the phenomenon causeed by it is similar to the "dead ones", no BLE actions, no GPIO interrupt response,no watchdog timeouts. However, we still can not explain why they are powered again, they become normal. If we add a capacity between NRESET PIN and GND,these glitches become too small,and the MCU works normal,even we touch the NRESET pin with or without metal wires, but it seems that we can not flash the MCU any more, is it right? We still want to know the what the ripple over 100mV on VCC will cause. Thanks a lot.

Children
No Data
Related