主题中讨论的其他器件: ADS1115、 TCA9406、 PCF8575
工具与软件:
所以我的 PCB 有一些问题。
我在同一个 I2C 总线上并行运行13x INA228以及1个 ADS1115。 我只想读取来自 INA 的电流。
对于 INA228、一个读取(addr + reg pointer)+(addr、3个数据字节)的通信时间大约为60个时钟周期。
对于 ADS1115、我将读取2个通道、这是4个字节(地址、指针、2个数据字节)、因此每个通道大约需要40个时钟周期。
我以100kHz 的频率运行 I2C、因此使用13个 INA228和1个 ADS1115、我每秒应该能够运行100个以上的样本。 ((60*13)+(40*2))/100k
以每秒1个样本运行是可以接受的、但是将其增加到每秒2-3个样本、因此会出现问题。
我的示波器功能不是很好、因此无法从中获取任何快照、但可以在一定程度上看到 I2C 线上的曲线。 上升时间稍慢、但我的示波器却无法显示上升速度有多慢。 无论我运行400kHz 或100kHz I2C、以及使用1k 上拉或10k 上拉、我都可以看到完全相同的反应。 因此、我认为上升时间不是问题、因为我在400kHz 时遇到的问题比在100kHz 时遇到的问题更多。
我看到的问题如下:
如图所示、当分流电阻器上的电压较大时、电流中存在一些显著的尖峰、幅度会更频繁且更大。
此外、一些 INA 被随机卡住、我在恢复正常之前、读取同一电流一段时间。
INA 会给我带来不良读取以及卡住的读取结果、这在一定程度上是随机的。 因此、没有任何一种特定行为方式的模式。 还想指出的是、我有2个具有相同行为的 PCB。
在图中、您可以看到 INA 的输出。 这是我以每秒10个样本的速率运行的时候。
采样率增加(从每秒1次)也会在 ADS1115中引入误差、在这里、似乎发现基准电平为1.2V、即6400个原始电平。
这是在 INA 上进行一次读取操作时逻辑分析仪的屏幕截图。
以及一次读取 ADS1115获得的一张照片。
从这个图形可以很清楚地看出 I2C 总线已空闲了很长时间。
其中一个 INA 的读数卡住了。
有什么想法会导致我的问题、以及如何进一步解决此问题?