文件名称:超低功耗唤醒-利用pytorch实现对cifar-10数据集的分类
文件大小:4.81MB
文件格式:PDF
更新时间:2024-07-10 01:45:26
datasheet
4.7 超低功耗唤醒 RA0 引脚上的超低功耗唤醒(ULPWU)功能允许缓慢 下降的电压能够产生中断,同时不消耗很大的电流。 要使用该功能: 1. 通过将 RA0 引脚配置为输出并将其设置为 1,对 RA0 上的电容充电。 2. 通过将 RA0 配置为输入来停止对电容充电。 3. 将WDTCON寄存器中的ULPEN和ULPSINK位 置 1,使电容放电。 4. 配置休眠模式。 5. 进入休眠模式。 当 RA0 上的电压降到低于 VIL 时,将唤醒器件并执行下 一条指令。 该功能提供了一种定期将器件从休眠模式唤醒的低功耗 技术。 超时时间取决于 RA0 上 RC 电路的放电时间。 当 ULPWU 模块将器件从休眠模式唤醒时,ULPLVL 位 (WDTCON<5>)会置 1。软件可以在唤醒时检查该位, 以确定唤醒源。 关于初始化 ULPWU 模块的信息,请参见例 4-1。 例 4-1: 超低功耗唤醒的初始化 RA0 和外部电容之间的串联电阻为 RA0/CVREF/AN0/ ULPWU 引脚提供过流保护,同时允许使用软件校准超 时时间 (见图 4-9)。 图 4-9: 超低功耗唤醒的初始化 可以使用一个定时器来测量电容的充放电时间。然后调 节充电时间,以提供休眠模式下所需的延时。该技术将 对温度、电压和元件精度的影响进行补偿。外设还可以 配置为简单的可编程低压检测(Low-Voltage Detect, LVD)或温度传感器。 //*************************** //Charge the capacitor on RA0 //*************************** TRISAbits.TRISA0 = 0; PORTAbits.RA0 = 1; for(i = 0; i < 10000; i++) Nop(); //***************************** //Stop Charging the capacitor //on RA0 //***************************** TRISAbits.TRISA0 = 1; //***************************** //Enable the Ultra Low Power //Wakeup module and allow //capacitor discharge //***************************** WDTCONbits.ULPEN = 1; WDTCONbits.ULPSINK = 1; //For Sleep OSCCONbits.IDLEN = 0; //Enter Sleep Mode // Sleep(); //for sleep, execution will //resume here 注: 更多信息,请参见 AN879, “Using the Microchip Ultra Low-Power Wake-up Module” (DS00879)。 RA0/CVREF/AN0/ULPWU 2011 Microchip Technology Inc. 初稿 DS39977C_CN 第 79 页