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.

[参考译文] CC2340R5:关断和唤醒

Guru**** 2331900 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1462809/cc2340r5-shutdown-and-wake-up

器件型号:CC2340R5

工具与软件:

您好、我正在尝试在 按下按钮2时执行 SHUTDOWN、然后在按下按钮3时再次处于 wakup 状态、因为它将进入 SHUTDOWN 状态、 但在 CONFIG_GPIO_SW4_INPUT 时不会唤醒。该按钮或按钮3都是相同的、但它不会唤醒、请建议我如何唤醒  

void * vTask1Function (void * arg0)

for (;;)

GPIO_WRITE (CONFIG_GPIO_GREEN、1);
if (connect_flag==0)

if (button_up=1)

BUTTON_UP = 0;
BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) stopAdvertisment);
while (connect_flag==0)

scan_device();
vTaskDelay (pdms_to_ticks (3000));
}
}

}
vTaskDelay (pdms_to_ticks (1000));

if (button_down=2)

BUTTON_DOWN = 0;
PowerLPF3_ResetReason resetReason = PowerLPF3_getResetReason ();

/*如果我们从关机状态中唤醒,请做一些额外的事情。 */
如果(resetReason=PowerLPF3_RESET_SHUTDOWN_IO)

/*应用程序代码在退出关断模式时必须始终禁用 IO 锁存器*/
PowerLPF3_releaseLatches ();


}
Button_Params 按钮参数;
Button_Params_(&buttonParams);
buttonParams.buttonCallback = buttonCallback;
buttonParams.buttonEventMask = button_ev_pressed;
button_open (CONFIG_GPIO_SW4_INPUT、&buttonParams);
semHandle = SemaphoreP_structBinary (&semStruct、0);
SemaphoreP_PEND (semHandle、SemaphoreP_WAIT_FOREVER);
GPIO_WRITE (CONFIG_GPIO_GREEN、0);

GPIO_setConfig (CONFIG_GPIO_SW4_INPUT、GPIO_CFG_IN_pu | GPIO_CFG_SHUTDOWN_WAKE_LOW);
POWER_SHUTDOWN (0、0);
// while (1){}
}

if (button_right=3)

if (connect_flag==0)

button_right = 0;
GPIO_WRITE (CONFIG_GPIO_GREEN、1);
GPIO_WRITE (CONFIG_GPIO_GREEN、0);
GPIO_WRITE (CONFIG_GPIO_RED、1);
BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) startAdvertisment);
vTaskDelay (pdms_to_ticks (5000));
GPIO_WRITE (CONFIG_GPIO_RED、0);
}
}

}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amrendra 您好!

    不建议  在每个 IO 引脚上混用按钮和 GPIO TI 驱动程序。  有关概念验证、请遵循 gpioshutdown 示例。  这意味着不 对  CONFIG_GPIO_SW4_INPUT 使用 BUTTON_OPEN、只对 GPIO_setConfig 使用。  button_open 可能会进行额外的寄存器更改、从而影响您退出 SHUTDOWN 模式的能力。  此外、 在进入 SHUTDOWN 模式时、请确保 CONFIG_GPIO_SW4_INPUT 引脚未处于活动状态、这意味着 CONFIG_GPIO_SW4_INPUT 状态应正常处于高电平、直到它主动强制为低电平从 SHUTDOWN 模式唤醒。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它不会被唤醒

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    定制电路板或 TI LP? 请使用示波器观察引脚、以确保引脚电平正确变化。

    此致、

    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的支持、现在它可以工作了。

    但我又有一个疑问、那就是是否可以在计时器的基础上实现它?
    如果是这样,那么请我建议如何实现它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    来自 TRM

    6.4.2关闭 可通过软件刻意进入的最低功耗状态。 在该状态下、没有振荡器运行、所有稳压器被禁用、但 I/O 保持状态。 基于电平的唤醒可针对每个 I/O 引脚单独配置。 退出 SHUTDOWN 模式时、器件会进行完全引导、但 I/O 保持锁存、软件能够辨别复位原因是 I/O 从 SHUTDOWN 模式唤醒。 在关断模式下上电复位(POR)有效、但没有其他电压监控使能。

    以及 数据表中的一个表格

    基本上、关断模式下只能进行引脚唤醒、但待机模式下将有更多选项(包括计时器唤醒)。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哦、这意味着我们需要使用 STANDBY 而不是 SHUTDOWN 模式来唤醒计时器。