我正在使用 S32K312 通过 SPI 与 FS23 通信,以控制 FS23 进入 LPOFF 模式。我通过SPI发送了LPOFF命令如下:
首先,我读取了 SBC_FS23_M_SYS_CFG_ADDR 寄存器的值:
Sbc_fs23_ReadRegister(1,SBC_FS23_M_SYS_CFG_ADDR,&M_Sys_Cfg_RxData);
其次,我写入了 SBC_FS23_M_SYS_CFG_ADDR 寄存器的读取值,并将 SBC_FS23_M_GO2LPOFF_MASK 设置为 0x0040(1<<6),以用于 LPOFF 睡眠模式:
Sbc_fs23_WriteRegister(1,SBC_FS23_M_SYS_CFG_ADDR,M_Sys_Cfg_RxData | SBC_FS23_M_GO2LPOFF_MASK,&pu16RxData_LDT);
然而,FS23没有进入LPOFF模式,当我再次读取寄存器值时,它并没有改变。我可以确认 SPI 通信工作正常。没有连接外部唤醒源
您能指导我我的配置是否存在问题或者是否还有其他寄存器需要配置吗?
M_IOWU_FLG寄存器
这么多天我以为你解决了这个问题,再试试你先把所有的唤醒源的标志位都清0 然后再发唤醒的指令。
你写 M_SYS_CFG register as ‘xxxx x000 0100 0011’ 试试‘x’代表任意值
1.M_SYS_CFG寄存器的值为21507(0101010000000011)。
2.写入的值为21571(0101010001000011)。
3.为了验证写入是否成功,我重新读取的值也是21507(0101010000000011)。
这个问题已经困扰我好几天了。您能给我一些指导吗?
我确定它处于正常模式,并且我想通过写入寄存器SBC_FS23_M_SYS_CFG_ADDR(0x05)来进入LPOFF模式。我的步骤如下:
步骤1:通过SPI读取寄存器SBC_FS23_M_SYS_CFG_ADDR(0x05)的值。
步骤2:将该值与SBC_FS23_M_GO2LPOFF_LPOFF(0x0001U << SBC_FS23_M_GO2LPOFF_SHIFT)进行按位或运算,然后将结果写回SBC_FS23_M_SYS_CFG_ADDR(0x05),使fs23进入睡眠模式。
你能确定是normal模式,以后你发了什么command想 进入LPOFF模式的?
对于M_STATES寄存器的值为12295(二进制表示为:0011000000000111),其中bit13为1,表示正常模式。
M_SYS_CFG寄存器的值为21507(0101010000000011),但未成功修改。
微信图片_20241202194324.png
步骤1:通过SPI读取寄存器SBC_FS23_M_SYS_CFG_ADDR(0x05)的值。
[gw]读出来的值是多少这个寄存器?
步骤2:将该值与SBC_FS23_M_GO2LPOFF_LPOFF(0x0001U << SBC_FS23_M_GO2LPOFF_SHIFT)进行按位或运算,然后将结果写回SBC_FS23_M_SYS_CFG_ADDR(0x05),使fs23进入睡眠模式。
[gw]写进去 M_SYS_CFG register 的值是多少?写过以后有没有再读一下验证写成功有否?