Silabs efm8bb3在smbus / i2c主传输上非常慢

问题描述 投票:0回答:1

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

为什么传输速度如此之慢,有什么办法可以解决它?

performance delay i2c 8051 smbus
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.