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.

TIDA-00489: Correct settings for the BoardGpioInitTable[]

Part Number: TIDA-00489
Other Parts Discussed in Thread: CC1310, TIDA-01476

Hello guys,

we are using the TIDA-00489 design with the sensor example of the 15.4Stack SDK 3.2. I just stumbled over the BoardGpioInitTable[] of the sensor example SDK, which looks like this:

const PIN_Config BoardGpioInitTable[] = {

    CC1310_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,       /* LED initially off          */
    CC1310_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,       /* LED initially off          */
    CC1310_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,          /* Button is active low       */
    CC1310_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,          /* Button is active low       */
    CC1310_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,  /* External flash chip select */
    CC1310_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
    CC1310_LAUNCHXL_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,                         /* UART TX via debugger back channel */
    CC1310_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master out - slave in */
    CC1310_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master in - slave out */
    CC1310_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,                                             /* SPI clock */
    CC1310_LAUNCHXL_DIO16_TDO | PIN_INPUT_EN  | PIN_NOPULL | PIN_HYSTERESIS,                             /* PIR low                       */
    CC1310_LAUNCHXL_DIO17_TDI | PIN_INPUT_EN  | PIN_NOPULL | PIN_HYSTERESIS,                             /* PIR high                      */
    PIN_TERMINATE
};

This table (like the rest of the sensor example from the SDK) seems to be fitting for the CC1310_Launchpad. In the TIDA-01476, which has the same hardware design as the TIDA-00489, there is also a software example for a sensor. The BoardGPIOInitTable[] looks different:

PIN_Config BoardGpioInitTable[] =
{
	Board_PIR_Out_Lo | PIN_INPUT_EN  | PIN_NOPULL | PIN_HYSTERESIS,								/* PIR low  					 */
	Board_PIR_Out_Hi | PIN_INPUT_EN  | PIN_NOPULL | PIN_HYSTERESIS,								/* PIR high  					 */
	Board_Mode       | PIN_INPUT_EN  | PIN_NOPULL | PIN_HYSTERESIS,								/* Backdoor to prevent shutdown  */
	Board_TEST26     | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW   | PIN_PUSHPULL,						/* Testpoint, DIO_26		   	 */
	Board_TEST27     | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW   | PIN_PUSHPULL,						/* Testpoint, DIO_27		 	 */
	Board_TEST28     | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW   | PIN_PUSHPULL,						/* Testpoint, DIO_28		 	 */
	Board_TEST29     | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW   | PIN_PUSHPULL,						/* Testpoint, DIO_29		 	 */
    PIN_TERMINATE                                                                               /* Terminate list                */
};

Are there any benefits in changing my BoardGpioInitTable to the one of the TIDA-01476 firmware? I am hesitating since I dont want to change a running system. Besides, the current consumption during idle is at about 2.7µA and none of the SPI, LED or UART PINs are connected in the TIDA-00489 layout anyway.

Hope you can give me advice on this.

Best wishes

Slev1n

  • Hi Slev1n,

    It looks like both init tables initialize the window comparator outputs to the MCU ("PIR low" and "PIR high") as being inputs with no internal pull-up/pull-down resistances, which makes sense.  The only difference is how the other pins are handled, which in your case doesn't seem to be all that critical.  Unused pins could be handled a variety of ways, but to minimize current consumption I'd avoid configuring GPIOs as outputs if they are connected to any circuitry that could load them (for example, don't configure a high output on a pin that is grounded on the PCB) and avoid floating inputs (that is, input pins with no internal or external pull-up/pull-downs).  I don't see either of these conditions occurring with the current init table, so if your system is working as intended already and standby power is low I don't see any benefit you would get from changing it.

    Regards,
    Max  

  • Hey Robert,

    thank you for your fast response and your explanations, which will help me for similar future situtations. I will keep it as is.

    best wishes

    Slev1n