大家好、
我使用的是 CapTIvate register_I2C 接口、具有用于通知主机 MCU 的 IRQ 功能。 我使用实用程序函数 I2CSlave_setRequestFlag()执行此操作(似乎是这样做的)。
我的问题是、在主机 MCU 上、我在下降沿触发(线路保持高电平并被拉至低电平、因此下降沿是我可以收到通知的最严重的情况) 但我注意到、在我的请求和响应 i2c 请求之间、我需要添加~ 30ms 的延迟才能获得有效的传感器数据包。
切换到正边沿可以消除延迟。
问题:
1) 1)应在哪个边沿触发?
2) 2)请求/响应之间的预期延迟是多少?
3) 3)我应该等待、还是应该拉动 i2c 响应、直到获得有效的校验和?
4) 4)我是否应该做其他我不做的事情?
将计时代码输入到我看来天生就很脆弱、因此我希望有人能告诉我可以做些什么来使响应尽可能快、同时又很可靠。 我的时钟速度为100kHz、我(目前)正在 i2c 线路上使用内部上拉电阻器。
谢谢!!