找回密码
 立即注册
楼主: Outerm***

STC32G12K128的板子,看门狗(WDT)复位后,IIC(I2C)模块错误

[复制链接]

该用户从未签到

1

主题

7

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2023-3-15 10:54:00 | 显示全部楼层
神农鼎 发表于 2023-3-15 10:39
我不干技术十多年了,是否你外围 I2C 器件异常了,
如对方有受外部控制的复位管脚,你定期控制他复位
如没 ...

外围的I2C是一个单独的PCB板,和STC的PCB板不是一个板子,外围的I2C是外部电源供电,SCL/SDA/GND这三根线和STC的板子连接。而且STC板电源开发复位I2C工作是正常的,判断外围的I2C没有问题。仅仅是看门狗方式复位I2C功能才会出现异常。

该用户从未签到

550

主题

9204

回帖

1万

积分

管理员

积分
13916
发表于 2023-3-15 11:07:07 | 显示全部楼层
将你实际的MCU原理图,和外围 I2C 模块的原理图的PDF发上来,大家分析后帮你

该用户从未签到

45

主题

2902

回帖

6522

积分

超级版主

积分
6522
发表于 2023-3-15 11:11:17 | 显示全部楼层
板间连接,要串联300~510R电阻,限流保护。
程序设计思想有问题,I2C不要有死等的地方,有等待的要设置超时退出,即使不接外部器件,MCU的SDA、SCL悬空,也一定要保证程序能正常运行,I2C通讯不正常不能影响别的程序运行。

该用户从未签到

1

主题

7

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2023-3-15 11:47:01 | 显示全部楼层
本帖最后由 Outerman2000 于 2023-3-15 17:01 编辑
梁工 发表于 2023-3-15 11:11
板间连接,要串联300~510R电阻,限流保护。
程序设计思想有问题,I2C不要有死等的地方,有等待的要设置超时 ...

没有串联300~510R的电阻,只是SDA/SCL接了2.2K的上拉。用的STC的I2C模块的硬件中断方式。看门狗复位后串口有输出,说明串口是正常的。I2C不能正常工作。
刚刚试了,MCU的SDA/SCL不连从I2C,程序也是正常运行的,当然I2C的操作结果都是错误的。
下面是我的简单的连接图,说明两个情况:
1.从I2C的VDD从MCU的PCB板接入时,I2C的读写比较正常,比如读写测试1,2天都不出现错误。MCU的PCB上提供了VDD的PIN角,从I2C的VDD可以从MCU单板上接入。
2.在从I2C的VDD接外部电源时,I2C的读写大概率会出现错误,这个也是想验证I2C错误后看门狗复位能否让I2C的功能恢复正常,现在就是想验证这个问题。
STC32G-3.jpg

该用户从未签到

1

主题

7

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2023-3-15 17:18:57 | 显示全部楼层
梁工 发表于 2023-3-15 11:11
板间连接,要串联300~510R电阻,限流保护。
程序设计思想有问题,I2C不要有死等的地方,有等待的要设置超时 ...

STC32的WDG的RSTCR0,RSTCR1,RSTCR2, RSTCR3,RSTCR4 这几个是外围设备复位控制的,是不是这几个要怎么配置下才能保证WDT复位时外设正常工作?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-4-25 18:16 , Processed in 0.058004 second(s), 45 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表