This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1352P: GPIO Interrupt callback function is not called

Part Number: CC1352P
Other Parts Discussed in Thread: SYSCONFIG

Hi,

I'm using the SimpleLink 6.20.0.29.

On my custom board, I have an external connector connected to a GPIO Pin. The external connector delivers a voltage of +3,3V.
I also implemented a Pull down resistor on the GPIO Pin on my custom board.
When the connector is disconnected, the device should go into standby.
To do this, I configured the GPIO Pin in SysConfig as Input with Interrupt Trigger "Falling Edge".

When the connector is disconnected, the callback function is only called, when I activate the internal Pull Up Resistor in SysConfig.
If I set it to "None" or "Pull down", the callback function is never called, when I disconnect the connector.

The problem for me is, that the power consumption has to be low as possible, when the device is in standby.
When I measure the power consumption, when no internal Pull Up is activated, I have a value of 20μA, which is very good.
When I activate the internal Pull up, the Power consumption is 0,2mA, which is too high.

So my question is:
Why is the GPIO callback function not called, when I set the internal resistor to "None"?

Thanks for any help!

Regards

Thomas

  • Hi Thomas,

    Could you try adding some sort of counter in the callback function, and check its value to see whether it incremented or not?

    I think what happens is, due to contact bouncing, we go into the callback function several times, thus giving no time for the chip to go into standby.

    Moreover, I find that 0.2 mA value indeed very high. How many pins supposed to be in pullup mode?

    Table 8.25.6.1 of the datasheet says that it should typically only use 73uA.

    Regards,

    Arthur

  • Hi Arthur,

    thanks for your answer.

    The problem was the contact bouncing.
    The callback function is now called with no internal Pullup.
    I implemented some code, that will ensure, that the standby is only called once.
    I have no other pins that uses pullup mode.    

    To minimize the power consumption, I decided to shutdown the device and not to use the standby.
    When the callback function is called, I set the wakeup source to "High" on that GPIO Pin.
    Then I call Power_shutdown(0, 0);

    When I connect my external connector back and the voltage is high on that pin, the device doesn't wake up from shutdown.

    Do you have any idea why the device is not restarting after the voltage is high?

    This is the code what I'm using:

    GPIO_setConfig(CONFIG_GPIO_POWER_SUPPLY, GPIO_CFG_IN_NOPULL | GPIO_CFG_SHUTDOWN_WAKE_HIGH);
    Power_shutdown(0, 0);

    Regards,

    Thomas

  • Hi Thomas,

    I have tested with the internal pull-down:

    GPIO_setConfig(CONFIG_GPIO_WAKEUP, GPIO_CFG_IN_PD | GPIO_CFG_SHUTDOWN_WAKE_HIGH);

    And the wake-up procedure functions. If your worry is power consumption, could you use a high value (>1MOhms) external resistor to have the pin asserted low while in shutdown? A behavior I noticed is that the device was actually waking up by itself when the pin was left floating.

    Regards,

    Arthur