FS2400 唤醒后的电流消耗 专家您好: 我的芯片是S32K312,单板计算机是FS2400。 现在我需要唤醒芯片,唤醒源是GPIO下降沿。 在将S32K312置于待机状态之前,我将FS2400设置为LPON模式。 /* 寄存器 M_WU1_EN:字段 CAN_WUEN 设置为唤醒和中断(03) */ Sbc_FS24_Ip_WriteRegister (0, SBC_FS24_IP_M_WU1_EN_ADDR, SBC_FS24_IP_M_CAN_WUEN_MASK ); /* 寄存器 M_IOWU_EN:将 WAKE2、WAKE3 和 HVIO1 设置为不唤醒和中断(00) */ Sbc_FS24_Ip_WriteRegister(0, SBC_FS24_IP_M_IOWU_EN_ADDR, 0x00); /* 注册 M_CAN:将 CAN MODE 字段设置为收发器仅接收模式 */ Sbc_FS24_Ip_WriteRegister(0, SBC_FS24_IP_M_CAN_ADDR, SBC_FS24_IP_M_CAN_MODE_RX_ONLY); /* 进入LPON模式 */ Sbc_FS24_Ip_WriteRegister(0, SBC_FS24_IP_M_SYS_CFG_ADDR, SBC_FS24_IP_M_GO2LPON_MASK) 醒来后,我将 SBC 设置为正常模式。 Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_SBC_Instance_0); Sbc_FS24_Ip_InitDriver(&Sbc_FS24_Ip_Config); Sbc_FS24_Ip_InitDevice(SBC_FS24_DEVICE_ID); eReturnValue = Sbc_FS24_Ip_CanTrcvSetState(SBC_FS24_DEVICE_ID, SBC_FS24_CANTRCV_STATE_ACTIVE ); Sbc_FS24_Ip_WriteRegister(0, SBC_FS24_IP_M_SYS_CFG_ADDR, SBC_FS24_IP_M_GO2NORMAL_MASK); 我发现当前电流消耗为 54mA,但上电保护电流消耗为 72mA。 如果我在单板计算机进入待机状态之前不做任何操作,唤醒后,电流消耗与上电 (POR) 时相同。 所以我认为SBC状态有问题,你能告诉我为什么吗? Re: FS2400 current consumption after wakeup 你好,PINKMAN
再会!
根据您描述的情况,我认为 FS2400 不一定“卡住”,但很可能是 SBC 从 LPON 唤醒后,其配置/状态与 POR 后的状态并不完全相同。
数据手册指出,从 LPON 唤醒后,设备会通过唤醒序列直接返回正常模式。LPON唤醒后,设备不会自动重新进入INIT状态
此外,如果设备在初始化状态下进入 LPON、LPOFF 或故障保护模式,则设备将保持初始化状态,这可能导致设备配置错误。建议在进入 LPON 或 LPOFF 模式之前读取 M_STATUS 寄存器中的 INIT_S 状态位,并且仅当设备不再处于初始化状态时才进入这些模式。
我会捕获并比较两种情况下(POR 路径和 LPON 唤醒路径)的以下寄存器:
M_STATUS
M_SYS_CFG
M_CAN
M_SYS1_CFG
M_REG_CTRL
M_IOWU_EN
M_WU1_EN
希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。
祝你今天过得愉快,一切顺利。 Re: FS2400 current consumption after wakeup 嗨: RafaR 根据您的建议,我比较了 POR 和唤醒期间的 FS2400 寄存器。我发现,在 POR 期间,寄存器 M_REG_CTRL 的值为 0x04,而唤醒后,寄存器 M_REG_CTRL 的值为 0x1304。根据这一发现,我追溯到函数 Sbc_FS24_Ip_InitDevice → Sbc_FS24_Ip_OptionalInitSequence → Sbc_FS24_Ip_InitMain,其中对 M_REG_CTRL 进行了操作。但是,此功能的前提条件是 SBC_FS24_NORMAL == ePowState。因此,在 POR 期间可以执行此函数,但在唤醒期间,GOTONORMAL 在 Sbc_FS24_Ip_InitDevice 之后执行,因此无法执行此函数,从而导致功耗差异。 所以我有两个问题: 1.Sbc_FS24_Ip_InitDevice 是必需的吗?因为我发现,即使我在初始化期间不调用它,CAN 消息的发送/接收和电源供应仍然工作正常。 2.这种功耗差异主要来自哪里?
記事全体を表示