我不干技术十多年了,是否你外围 I2C 器件异常了,
如对方有受外部控制的复位管脚,你定期控制他复位
如没 ...
外围的I2C是一个单独的PCB板,和STC的PCB板不是一个板子,外围的I2C是外部电源供电,SCL/SDA/GND这三根线和STC的板子连接。而且STC板电源开发复位I2C工作是正常的,判断外围的I2C没有问题。仅仅是看门狗方式复位I2C功能才会出现异常。 将你实际的MCU原理图,和外围 I2C 模块的原理图的PDF发上来,大家分析后帮你 板间连接,要串联300~510R电阻,限流保护。
程序设计思想有问题,I2C不要有死等的地方,有等待的要设置超时退出,即使不接外部器件,MCU的SDA、SCL悬空,也一定要保证程序能正常运行,I2C通讯不正常不能影响别的程序运行。 本帖最后由 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的功能恢复正常,现在就是想验证这个问题。
梁工 发表于 2023-3-15 11:11
板间连接,要串联300~510R电阻,限流保护。
程序设计思想有问题,I2C不要有死等的地方,有等待的要设置超时 ...
STC32的WDG的RSTCR0,RSTCR1,RSTCR2, RSTCR3,RSTCR4 这几个是外围设备复位控制的,是不是这几个要怎么配置下才能保证WDT复位时外设正常工作?
页:
1
[2]