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.

Idle Profile cannot "wake up" from GPIO signal

Other Parts Discussed in Thread: CC3200

The button works fine, and GPIO is printed on the UART, but when I try to change the wakeup source to another pin to interface a PIR sensor (which works--tested separately), nothing happens. It seems a lot of people have this issue--is it a LaunchPad defect in general? 

I have two LP's--both have this issue. I've tried both with and without middleware lib 

  • I understand that the following can be used to wake up from hibernate: GPIO 2, 4, 11, 13, 17, 24, 26. However, none of them are causing it to wake up. I have checked the signal coming in and it does in fact change, but regardless of the mode (high/low signal rise/fall edge) there is no response. 

    The switch works with GPIO13, and the accelerometer can cause a wakeup as well with GPIO17, but connecting the pins to a sensor is not working. I understand people in the past have had this issue as well, but I could not find anything that had been answered. 

    Any solutions? 

    PRCMHibernateWakeUpGPIOSelect(PRCM_HIB_GPIO13, PRCM_HIB_HIGH_LEVEL); // marco expansion 0x3
    PRCMHibernateWakeupSourceEnable(PRCM_HIB_GPIO13); // SW3 is 13?

    UART_PRINT("Hibernating now\n");
    PRCMHibernateEnter();

  • Hi,

    I have merged the two threads as they are similar.
    We will check and get back to you on this.

    Regards,
    Gigi Joseph.
  • Thanks, I look forward to your response. Sadly, if I can't get this working I will probably have to stop development with this board.
  • Keyur,

    Apologies for the delayed response.

    May I ask which SDK example is being used for your experiments? And are you saying that you are never able to wake up the board using GPIO-17? Can you please ensure that clock to the corresponding GPIO module is enabled and the pin is configured as input?

    void PinMuxConfig(void)
    {
        ...
        ...
    
        MAP_PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK);
    
        //
        // Configure PIN_08 for GPIOInput
        //
        MAP_PinTypeGPIO(PIN_08, PIN_MODE_0, false);
        MAP_GPIODirModeSet(GPIOA2_BASE, 0x2, GPIO_DIR_MODE_IN);
    }

  • Are you getting this issue both in LPDS and Hibernate ? are they both are same GPIO's

  • Okay I had overlooked the pinmux confiugration. I went ahead and added the appropriate code for PIN02, which is one of the ones MAP_PRCMHIbernate should be able to use with the following:

    MAP_PinTypeGPIO(PIN_02, PIN_MODE_0, false);
    MAP_GPIODirModeSet(GPIOA1_BASE, 0x8, GPIO_DIR_MODE_IN);

    and to be safe I turned on all the GPIO peripheral clocks:

    MAP_PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK);
    MAP_PRCMPeripheralClkEnable(PRCM_GPIOA0, PRCM_RUN_MODE_CLK);
    MAP_PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK);
    MAP_PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK);
    MAP_PRCMPeripheralClkEnable(PRCM_GPIOA3, PRCM_RUN_MODE_CLK);

    Two things: I'm connecting an ultrasonic sensor to PIN02 with VCC to VCC and GND to GND (the pins near GPIO2). The ultrasonic sensor works by making a clicking sound which I'm not hearing. Is there a way to activate the device while it is in hibernate? It seems the sensor is not powered on. Are there certain pins which will work to power the sensor while in hibernate. Without this I will not be able to test whether the Wakeup is working
  • No, In Hibernate all GPIO's will be in High Impedance state you cannot give any control from CC3200 GPIO'sin hibernate.

  • Keyur, Does this answer your question? Let me know if you need additional information.

    -/Praneet