0

在使用 Simplicity Studio 和 Silabs EFM8BB3(基于 8051 的 SoC)时,我观察到传输速率非常慢,每个字节传输之间存在巨大的暂停(长达 60 毫秒),以及(长达 160 毫秒)在 smbus 主接口上的 i2c 协议上的完整消息之间。

为什么传输速度这么慢,有什么办法可以解决吗?

4

1 回答 1

1

通过激活另一个仅负责 SCL 延迟/超时识别的计时器来解决问题(请注意,数据表中的解释不太清楚)。在Silabs EFM8BB3芯片组上,定时器 T2的作用是提供 i2c 数据流传输调制。定时器 T3的作用是提供i2c SCL超时处理。为了能够减少字节之间的暂停,必须启用 T3。T3 必须配置为two timers, 8-bit auto reload启用低字节中断的模式。在400KHz50000 (reload value is 215)的情况下,T3 低字节溢出频率必须设置为i2c 传输速率。必须实现简化的中断处理程序(只是为了删除中断标志)。T3 高字节溢出频率可以设置为可用的最低值8000 (reload value is 1)。SMBUS 接口实体需要Enable SMBus SCL Timeout Detection激活。

于 2017-12-18T14:43:22.700 回答