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.

CC2650: CC2650 GPIO open source pins

Part Number: CC2650

Hello everyone,

my question is about CC2650 current through GPIO pins. According to the datasheet, @Vdd=3.8V the input current to GPIO when the GPIO is pulled up is 277 uA, and 113 uA when it is pulled down. 

However, I can't find any information for the input current through a GPIO pin when it not pulled up nor pulled down.   Also, as I see in the Code Composer Studio, it is possible to configure a GPIO pin to be an "open-source pin", however, I need confirmation if this is the mode I imagine - without any internal pull-up or pull-down resistor connected to it, leaving it floating if left unconnected externally.

Best regards

  • Hello Kamen,

    This depends on the applied voltage on the pin. If simply left unconnected and floating (input buffer and output driver both disabled) no current will flow as told in the TRM section 11.6 Unused I/O Pins.

    You are correct. You can enable open-source configuration or open drain configuration with no pull. When a DIO is configured as open-source it can be driven high by setting the output to 1. When the output is cleared (set to 0) in software, the pin is floating unless you have configured a pull down.

    I believe this will do the trick:

    PIN_Config openSourcePinTable[] = {
       Board_DIO?  | PIN_GPIO_OUTPUT_EN | PIN_OPENSOURCE | PIN_NOPULL | PIN_GPIO_INPUT_DIS,
       PIN_TERMINATE
    };

  • Hi Erik,

        There are no more #define PIN_GPIO_INPUT_DIS at PIN.h.

         I am setting 4 pins to be open drain configuration. Would these pins still be configured as open drain configuration even without including PIN_GPIO_INPUT_DIS?

    #if defined (CC2650_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_ROW0          | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,  //added by markel
        Board_ROW1          | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,  //added by markel
        Board_ROW2          | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,  //added by markel
        Board_ROW3          | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,  //added by markel
        Board_COL0          | PIN_GPIO_OUTPUT_EN  |  PIN_OPENDRAIN | PIN_NOPULL, //added by markel
        Board_COL1          | PIN_GPIO_OUTPUT_EN  |  PIN_OPENDRAIN | PIN_NOPULL,  //added by markel
        Board_COL2          | PIN_GPIO_OUTPUT_EN  |  PIN_OPENDRAIN | PIN_NOPULL,  //added by markel
        Board_COL3          | PIN_GPIO_OUTPUT_EN  |  PIN_OPENDRAIN | PIN_NOPULL,  //added by markel
    
    #elif defined (CC2650DK_7ID)  || defined (CC1350DK_7XD)
        Board_KEY_SELECT    | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,
        Board_KEY_UP        | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,
        Board_KEY_DOWN      | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,
        Board_KEY_LEFT      | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,
        Board_KEY_RIGHT     | PIN_GPIO_OUTPUT_DIS  | PIN_INPUT_EN  |  PIN_PULLUP,
    #endif
        PIN_TERMINATE
    };

    - kel

  • Nevermind, I confirmed that the pins function as OPEN DRAIN pins, even without the PIN_GPIO_INPUT_DIS.

    - kel
  • Great, The input is disabled by default so it should be as you confirmed.