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.

CC2640R2F: GPIO HIGH despite disabling all GPIO

Part Number: CC2640R2F

Hi

I have one particular GPIO in my custom board - the DIO14 that shows HIGH (~1.6V) despite me having disabled all GPIOs through PIN_TERMINATE in BoardGpioInitTable.

I can see this because I have an LED connected to that pin.

I am also using that pin to enable/disable an onboard OpAmp - the ADA4807-2.

I am using the Simple_Peripheral example with the modification in the BoardGpioInitTable.

I also tried forcing DIO14 to 0 through the following statement:

IOID14| PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW,

I am not sure what I am missing here.

Can you please suggest?

Thanks

Tushar

  • What is VDDS in this case? 1.6 V does not sound like a full logic '1' but I assume that the voltage is lowered by the current draw in the LED. I would assume that the LED is connected between the DIO and ground?

    To simplify the software a bit, do you see the same if you are running the "empty" example from the SDK? 

  • Hi TER

    Thanks for the revert. 

    I was able to find the culprit. In this case, the same DIO is being configured as an input in another place - board_key.c

    #elif defined(CC2650_LAUNCHXL) || defined(CC2640R2_LAUNCHXL) || defined(CC1350_LAUNCHXL)
        Board_BTN1          | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,
        Board_BTN2          | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,

    Board_BTN2 is DIO14

    So after commenting this out and two other places in the same file where it has been configured as a negative edge triggered interrupt and as an interrupt for wakeup, the GPIO behaves as expected. It's now at 0V.

    Thanks

    Tushar

  • And, to answer your question - the LED is between the DIO and a 220 ohm resistor to ground. 

    VDDS is 2.7V