Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
样机使用了一颗外置RTC,采用ASYNCMODE模式,人为增加5ms超时等待。正常读没问题。
短接SDA,SCL以模拟I2C故障,代码能判断出异常;但硬件短路取消后,I2C通讯不能恢复。
IAR仿真环境下执行软件复位,I2C恢复正常,说明并不是RTC挂死问题,本身这颗RTC芯片就有0.5s免挂死机制。
想请教一下,代码层面发现I2C异常后,如何自动恢复通讯?
补充一下: 1-SDA允许短地,断开后通讯恢复; 2-SCL不允许短地,断开后通讯不能恢复; 3-取消短地后,SDA和SCL均为高电平,应该不是挂死的问题
补充二点: 咨询了RTC厂家,对方做了类似测试,SCL,SDA多次短地后,其通讯能正常恢复。所以应该还是MCU侧,SCL短地后,通讯无法恢复,除非MCU复位
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...