你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

我参考STM32MP157-DK2做的stm32mp157FAD1核心板停止M4核固件后不能进入低功耗。

[复制链接]
xiao@xiao 提问时间:2024-1-26 17:23 / 未解决

参考STM32MP157-DK2做的核心板,但是将I2C4修改成连接PD12,PD13,使用GPIOD没有使用GPIOZ。 在MPC端通过 echo mem > /sys/power/state进入低功耗,MCU的固件运行时没有问题,MCU的固件不启动或停止时进入低功耗会在32秒后被看门狗重启。 我追踪发现是suspend时以下位置I2C配置出问题了: driver_suspend() stpmic1_lp_copy_reg() stpmic1_register_read() stm32_i2c_read_write_membyte() hi2c->i2c_state = write ? I2C_STATE_BUSY_TX : I2C_STATE_BUSY_RX; hi2c->i2c_err = I2C_ERROR_NONE; i2c_transfer_config(hi2c, dev_addr, I2C_MEMADD_SIZE_8BIT, write ? I2C_RELOAD_MODE : I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); timeout_ref = timeout_init_us(I2C_TIMEOUT_BUSY_US); if (i2c_wait_txis(hi2c, timeout_ref)) goto bail; 我的MCU的固件代码中有__HAL_RCC_GPIOD_CLK_ENABLE();这个GPIOD时钟使能的处理,当我不做GPIOD时钟使能时,MCU的固件运行时进入低功耗也会出这个问题。

从现状看像是GPIOD时钟没使能导致的问题。 但是我取了寄存器RCC_MP_AHB4ENSETR的值查看,发现GPIODEN位是1,难道MPC端使能GPIOD时钟还有什么其他操作吗? 而且通过echo -n stop > /sys/class/remoteproc/remoteproc0/state停止MCU的固件之后会出问题,难道这样还会把使能的GPIOD时钟关闭吗?

收藏 评论1 发布时间:2024-1-26 17:23

举报

1个回答
STMCU-管管 回答时间:2024-3-12 16:25:36
当MCU固件不启动或停止时进入低功耗并在32秒后被看门狗重启,可能与低功耗模式配置以及相关外设的状态保存有关。确保在进入低功耗之前,所有必要的状态和配置都得到适当的处理和保存。另外,在MCU固件中,在进入低功耗模式之前应该关闭所有的外设时钟,并根据需要保存相关状态,以便在唤醒后能够正常恢复。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版