Topic

FAQ
Login Register
B91 SDK(TLSR9518)中可以使用的PM模块特殊的不掉电 analog regsiter有哪些



drivers/9518/pm.h 文件中的 DEEP_ANA_REG,如下 code 所示:
#define DEEP_ANA_REG0 0x39 //initial value =0x00
#define DEEP_ANA_REG1 0x3a //initial value =0x00
#define DEEP_ANA_REG2 0x3b //initial value =0x00
#define DEEP_ANA_REG3 0x3c //initial value =0x00
#define DEEP_ANA_REG4 0x3d //initial value =0x00
#define DEEP_ANA_REG5 0x3e //initial value =0x00



#define DEEP_ANA_REG6 0x3f //initial value =0x0f
以上寄存器只有在掉电时才会恢复初始值,需要注意的是,客户不允许使用ana_39,该模拟寄存器的留给底层
stack使用,如果应用层代码有用到该寄存器,需要修改为ana_3a~ana_3f。因为不掉电模拟寄存器数量比较
少,建议客户使用其每一个bit指示不同的状态位信息。



#define DEEP_ANA_REG7 0x38 //initial value =0xff


以上 0x38 寄存器, 在硬件/软件 reset、 掉电和 watchdog 三种情况下会被初始化, 需要注意的是 bit0 位已经被
stack 使用,使用者在使用时需要避免该 bit 位。
使用者可以在 sys_init(power_mode_e power_mode)后使用 API pm_get_mcu_status(void)的返回值来判断 cpu 是
从哪种状态返回,返回值如下:
enum {
    MCU_STATUS_POWER_ON = BIT(0),
    MCU_STATUS_REBOOT_BACK = BIT(2),
    MCU_STATUS_DEEPRET_BACK = BIT(3),
    MCU_STATUS_DEEP_BACK = BIT(4),
};