kxsi 发表于 2021-6-7 13:45

STM32F103ZET6到AT32F403A工程移植时待机无法唤醒的问题的排查...

AT32F403A这款芯片据说和STM32是一毛一样的,最近在将项目代码直接移植到这款芯片是出现了两个问题,一个是字库芯片不能使用,另一个是PA0唤醒按键无法正常唤醒,这里记录下一自己的问题排查过程和思路,也是整理和归类,为自己以后遇到相同问题提供解决思路

首先解决的是字库芯片问题,表现出来的现象是无法显示和字库芯片相关的文字,所以怀疑是和字库芯片通信有问题,通信有问题一共有三种情况,①字库芯片已经损坏(只更换了主控芯片STM32->AT32F403A,字库芯片之前可以使用,排除),②字库芯片供电有问题(这个实际没有查,因为后面的选项解决了),③AT32和字库芯片通信有问题.因为更换了芯片,所有首先怀疑是通信,也就是和字库芯片通信的相关引脚可以虚焊了,将主板拿到放大镜下观察,有一个引脚翘起来了,查看原理图是与字库芯片通信的引脚,重新焊接,然后测试字库芯片正常.


kxsi 发表于 2021-6-7 13:54

然后是第二个问题,PA0唤醒按键无法唤醒进入待机模式的AT32F403A主控芯片,现象是设备用按键关机后无法开机,需要等待一段时间后才能用按键开机.经过调试发现,在进入待机模式后,只有在看门狗复位后PA0的唤醒才会起作用,先将复位代码放到开机后立刻执行,发现可以正常唤醒,然后不停的注释和释放代码,锁定出现问题的地方,在请教高手时,高手说会不会是GPIOA的时钟的问题,所有尝试在进入待机模式前,关闭GPIOA的时钟,发现可以正常唤醒,也就是说问题是关于PA0在进入待机模式前管脚配置导致的无法唤醒,然后挨个注释配置管脚,发现单独配置GPIOA部分,可以正常唤醒,但是连续配置四个部分就无法工作了,所以怀疑这款芯片无法连续配置四个GPIO(只是猜想怀疑,没有深入验证).


hoop 发表于 2021-6-7 17:29

但是连续配置四个部分就无法工作了,所以怀疑这款芯片无法连续配置四个GPIO(只是猜想怀疑,没有深入验证).
实际上AT不存在此限制的。建议重点排查一下在复现问题时,代码是否有正常进了Standby,比较怀疑此时代码卡在某个中断里了。可以通过在复现问题的基础上debug看Jlink是否会断线(DBG_STANDBY这些位要写0),或者通过测试耗电情况来看。

guijial511 发表于 2021-6-7 20:35

感谢分享出坑经验

呐咯密密 发表于 2021-6-10 15:26

这个分享真不错,解决了我的难题,之前也做过ST移植到雅特丽的项目,虽然没遇到这个问题,但是追个坑,以后遇到就方便了

别看我照片 发表于 2021-6-10 18:15

肯定不能直接拿来用的

勇者无惧你和我 发表于 2021-6-11 08:31

两者存在着联系,同时也存在着差异的。
页: [1]
查看完整版本: STM32F103ZET6到AT32F403A工程移植时待机无法唤醒的问题的排查...