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

NRF52832/52810 System OFF wakeup issue

Hi:

I test the system off mode, I attached a micro vibration sensor. Pulse generated when shaking as follow.

the button config is BSP example default(toggle) ,  i try to use  NRF_GPIO_PIN_PULLUP/NRF_GPIO_PIN_PULLDOWN/ NRF_GPIO_PIN_NOPULL ang BUTTONS_ACTIVE_STATE  One-to-one matching for test. and found when the input is high on hold or low on hold,the system always wakeup. it is true ???? 

  • My shake sensor is connected in series with a resistor connected to GND. The input is set to a pull-up input. One problem is that when my sensor off, the detection pin is pulled down. At this time, I set it to a high level to detect NRF_GPIO_PIN_SENSE_HIGH.(Resistance changes during vibration increase the level of pin detection),it works. But when the sensor off, because of the direct connection to GND and the pull-up input relationship, the leakage current is 200 ua, and the pull-down resistance isolation is at least 100 + ua, which will lead to the level mismatch and can not wake up normally. What can I do to solve the leakage problem? Or is there any better way to wake up?

  • Hi,

    I am not sure I understood you correctly, but from what I understood you have connected the sensor as shown below, via a serial resistor and then the pull-down resistor:

    This constitutes a voltage divider, so depending on the resistor values, you will get an invalid voltage level at the input on the nRF.

    I don't know any details of your design, but generally, you can fix this in one of the following ways:

    • Make sure that Rser is much smaller then Rpull, so that the voltage between will still be within the valid region.
    • Remove Rser (if it is not needed)
    • Use an external pull resistor and move Rpull before Rser. The nRF GPIO input is high impedance and draws virtually no current, so it should not have much impact on the voltage in this case.
  • As you said, the voltage between Rser and Rpull is logical low level < 0.7*VDD = 2.1. I'm adjusting 1.7V. When shake the vibration sensor, GPIO can detect the rising edge pulse to 1.7V - > 3V, because I set GPIO as the pull-up input. Because of setting up pull-up input, Rpull and GND generate a 100-200ua leakage current. This is very troublesome when it comes to system off. By the way, the sensor is also connected to GND.

  • I see. As mentioned, the nRF GPIO input is high impedance (unless you count the optional pull resistor, which is ~13 kΩ), so it is up to you to design a circuit that provided valid logic levels to the nRF.

Related