主题中讨论的其他器件: INA226、 INA238
您好,我 试过 两种类型的 INA237。它们是 INA237AIDGSR 和 INA237AQDGSRQ1,并且 我用 STM32连接了它、 下面是原理图
我 发现 寄存器值 与 下面的数据表,不匹配 是 我 读取的寄存器值。真的很奇怪
但是、我 还尝试 使用 INA226来替换 INA237(引脚-引脚),、并 使代码和原理图保持不变,然后我可以读取正确的值。
我不知道。。。。的原因
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,我 试过 两种类型的 INA237。它们是 INA237AIDGSR 和 INA237AQDGSRQ1,并且 我用 STM32连接了它、 下面是原理图
我 发现 寄存器值 与 下面的数据表,不匹配 是 我 读取的寄存器值。真的很奇怪
但是、我 还尝试 使用 INA226来替换 INA237(引脚-引脚),、并 使代码和原理图保持不变,然后我可以读取正确的值。
我不知道。。。。的原因
您好!
我看不到电路有问题。 以上讨论中我唯一的问题是您没有与 INA 通信。 由于您将 A0和 A1作为 GND、因此 INA237地址应为1000000。
让我们还确保您正在正确启动读取。 首先、必须设置一个寄存器指针来指向要读取的寄存器、然后才能读取寄存器。
下面是数据表的一些屏幕截图、其中说明了如何执行这些操作。
图1.
图2.
如您所见、要设置寄存器指针、您必须首先通过在 SCL 为高电平时将 SDA 拉为低电平来发送起始值、然后发送 INA237的地址(1000000)、再进行写操作、以便主器件通信的第一个字节应为10000000、 那么 INA 应该会进行 ACK。 第二个字节必须是要读取的寄存器地址、如果是配置寄存器、则为0x00或00000000。 然后通过让 SDA 和 SCL 进入来发送一个停止条件。
下一部分是我们从该寄存器获取数据的部分。 首先发送起始地址、然后发送读取地址(10000001)。 然后 INA 将进行 ACK 并读回数据的第一个字节(MSB)、主器件应进行 ACK。 然后、INA 将发送第二个字节(LSB)、并且主器件可以发送 ACK、也可以不发送 ACK。 这将是读取一个寄存器的通信结束。
您还需要注意 INA237数据表的第6.6和6.7节、以确保满足所有 I2C 通信时序要求。
我将等待示波器快照。
此致、
Castrense
大家好、 INA237的示波器截图就是这样的
,黄线是 SDA,红色是 SCL,测试点在 ADUM1250。的引脚2和引脚3上
我们已经尝试了3 种不同的芯片:INA226,INA237,INA238,、示波器快照几乎与上面的。相同
下面是 测试结果 和我们自己的分析:
首先、我们发现当 MCU 尝试发送低电平时、 在)。()ADUM1250,后,低电平不是很低,但是0.8V 至1V 级(如图所示,当从器件,INA237。ACK 时,低电平可被下拉至接近0 μ A,与 INA237和 INA226的两个数据表相比, ,,两个芯片的 VIL 是不同的,226),数据表中的 VIL 是0.3*vs(page.6在我们的设计中是0.3*5=1.5V;但对于237,,VIL 是0.4V。所以,在当时 。我们猜是低电平太高导致 INA237工作异常
,、 ,我们将 R60和 R71从10kΩ Ω 替换为20k Ω,测试 。波形更改了小,Ω、寄存器读取值与预期的 Ω 错误
,、 ,,。使用具有相似电气特性的 INA238(替换了 INA237),保持20kΩ Ω 上拉电阻器我们发现电阻器读取值完全正确 Ω、如下所示
, , 。几乎相同,0.8V 至1V 低电平级仍然存在并且也超过了 INA238 μ A 的 VIL 阈值
然后,我们再次用4.7kΩ,Ω TEST 替换了上拉电阻器,波形保持不变、但寄存器读取值错误
,然后,,再次使用10kΩ,Ω 测试替换了上拉电阻器。寄存器读取值错误。再次将上拉电阻器重新替换为20kΩ,Ω 测试,寄存器读取值正确
,这是我们的测试结果表:
芯片 | 4.7kΩ Ω 上拉电阻 | 10kΩ Ω 上拉电阻 | 20kΩ Ω 上拉电阻 | |
INA226 | 寄存器读取值正确 | 寄存器读取值 正确 | 寄存器读取值 正确 | |
INA237 | 寄存器读取值错误 | 寄存器读取值 错误 | 寄存器读取值 错误 | |
INA238 | 寄存器读取值 错误 | 寄存器读取值 错误 | 寄存器读取值 正确 |
这是一个非常有趣的现象:我从 ADUM1250,的引脚2和引脚3制作了两根跳线 ,因此我们的探头夹可以很方便地测试信号。当我们测试 INA238,时,如果我们不将探头连接到跳线,读取值是正确的但如果我触摸 用我的手,寄存器读取值错误。
,我完全不明白:
1:不同上拉电阻器为什么会导致不同的读取结果?
2、INA237和 INA238 ,。VIL,相同的电气特性为什么238可与20kΩ Ω 上拉电阻器配合使用 Ω、但237不能与 Ω 电阻器配合使用
3.如何解释 当我触摸跳线,读取值改变。
此致!
您好!
该问题似乎是由 ADUM 可以执行的低逻辑电平电压引起的(如您所述)。 INA 237必须具有最大值为0.4V 的低逻辑电平电压、因此 ADUM 的1侧的低电平为900mV 过高。
对于不同的上拉电阻器导致不同行为的原因、ADUM 上的负载将导致不同的拉电流特性。
2、这可能是由于器件变化所致。
3、轻触所加载 I2C 线路的导线。
如果您有任何其他问题、请回复
此致、
Castrense