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

  • Thanks for reply,Øyvind Karlsen

    Q1:What happens if you perform a debug or firmware reset to these devices that have frozen? A: We have try to touch the NRESET PIN with metal wire and found that,1,if we just touch it and left it quickly, 51822 will get a reset and the code will run again,2, if we keep touching the NRESET pin, code is not running,the current comsuption raise to 3-4mA, this two status will happen even if my hand don`t touch the metal part of the wire.

    Q2:What kind of ripple do you see on the VDD line? A:we now just test the voltage rise of normal one,since we get a 47uF capacitance between the LDO and MCU ,the rising time from 0V to 2V is about 5ms, 0V to 3V is about 25ms, I not sure that time is too long for a power on reset, we also found that sometimes we power on the module and it will not start to run the code. I don`t know how to attatch a picture in comment. When the code is running ,we tested the buzzer and found that there would be around 200mV ripple on the VDD pin of 51822, I wanna kown that what the ripple will cause?

    Q3:The nRF51 is only specified to source a maximum of 15 mA in high drive through gpios, are you exceeding this? A:We have not seen that current comsuption. Anything you want to know more ,please add a comment,Thanks again.

Reply
  • Thanks for reply,Øyvind Karlsen

    Q1:What happens if you perform a debug or firmware reset to these devices that have frozen? A: We have try to touch the NRESET PIN with metal wire and found that,1,if we just touch it and left it quickly, 51822 will get a reset and the code will run again,2, if we keep touching the NRESET pin, code is not running,the current comsuption raise to 3-4mA, this two status will happen even if my hand don`t touch the metal part of the wire.

    Q2:What kind of ripple do you see on the VDD line? A:we now just test the voltage rise of normal one,since we get a 47uF capacitance between the LDO and MCU ,the rising time from 0V to 2V is about 5ms, 0V to 3V is about 25ms, I not sure that time is too long for a power on reset, we also found that sometimes we power on the module and it will not start to run the code. I don`t know how to attatch a picture in comment. When the code is running ,we tested the buzzer and found that there would be around 200mV ripple on the VDD pin of 51822, I wanna kown that what the ripple will cause?

    Q3:The nRF51 is only specified to source a maximum of 15 mA in high drive through gpios, are you exceeding this? A:We have not seen that current comsuption. Anything you want to know more ,please add a comment,Thanks again.

Children
No Data
Related