
参考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时钟关闭吗? |
当MCU固件不启动或停止时进入低功耗并在32秒后被看门狗重启,可能与低功耗模式配置以及相关外设的状态保存有关。确保在进入低功耗之前,所有必要的状态和配置都得到适当的处理和保存。另外,在MCU固件中,在进入低功耗模式之前应该关闭所有的外设时钟,并根据需要保存相关状态,以便在唤醒后能够正常恢复。 |
STM32MP157D-DK1与STM32MP157F-DK2重大区别和推荐选择哪块板子,想做智能家居方面的,
我在SY官网查询STM32MP157F-DK2的电路板制造和原理图方面的知识为什么给的都是MB系列的?
STM32MP135D的TIM2使用ETR作为外部时钟时,无法使用PE15作为输入
STM32MP157d linux从5.4.31升级到6.1.82无法启动
repo 拉取创库老是失败,有什么方法直接下载
请问stm32mp157 logo为何无法全屏显示呢,只能显示中间一点点
现在的MP1系列芯片可以支持片上训练神经网络吗
stm32mp157 uboot下如何烧录内核和文件系统
STM32MP157AAC3 1GB DDR 编译运行报错
添加PWM,板卡无设备