您需要执行三个步骤以设置您的设备,使其可以通过 UART 唤醒。首先,必须创建一个睡眠终端设备,而且很明显,必须让其进入睡眠状态。第二,必须设置 UART RX 信号,使其能够唤醒活动。第三,必须确保在主机端在传送第二字符前等待足够的时间。下面是关于这些步骤的详细信息。
要将设备设置为睡眠终端设备,必须选择“睡眠终端设备”作为节点类型,因为通常不允许路由器和非睡眠终端设备在我们的框架内睡眠。使用具有 EmberZNet Pro 4.7.0 及最新版本的 AppBuilder,可以在“堆栈配置”选项卡的“网络配置”子选项卡中选择将设备设置为睡眠终端设备。使用具有旧版 EmberZNet Pro 的 AppBuilder 时,从“ZCL 簇配置”中选择。
要设置硬件以便唤醒睡眠,我们建议执行三件事。您需要编辑配置的电路板头文件(从 AppBuilder 生成时称为 {ConfigurationName}_board.h),这样 gpioCfgPowerDown 和 gpioOutPowerDown 寄存器分别使用 GPIOCFG_IN_PUD 和 GPIOOUT_PULLUP 设置 PB2 位。这些将显示在电路板头文件的末尾,并且如果您使用 AppBuilder 来设置 UART 配置,在默认情况下有可能被正确设置。此外,您还需要将 WAKE_ON_PB2 定义更改为 TRUE。
最后,还有一个计时的问题。芯片启动之后,UART 需要 2-3 毫秒才能准备好接收字符。(可变性是由于在某些情况下为避免出现问题在睡眠定时器机制中可能增加额外的 1 毫秒。) 遗憾的是,EM351/EM357 在引导过程之后才能接收字符。您发送的第一个唤醒 EM351/EM357 的字符将丢失。如果您过快地发送其他字符,它们也会丢失。建议在发送希望 EM351/EM357 解析的第一个字符之前,开始传输一个字符之后,等待至少 2 毫秒。
知识来源于:http://community.silabs.com/chinese
还可参考:http://cn.silabs.com
|