| 建议描述问题时候,带上使用的环境和各参数 |
angmall 发表于 2021-2-28 20:27 谢谢, 问题完美解决! 抱歉过了这么久才来回复你..... |
| 好问题,读后有帮助。 |
|
该个是因果关系 因为你需要为每个INA219器件使用不同的地址,因此你需要将A0和A1引脚连接到不同的值。 |
angmall 发表于 2021-2-28 11:11 我不明白的是, 比如当slave address为1000000时, A1和A0都对应到GND上(或者是VSS, SDA, SCL或其他管脚上)对A0和A1的值有什么影响吗? 也就是说, 表格中不同的slave address的值, 是否对A0和A1的值有影响? |
Kituro 发表于 2021-2-28 10:32 I2C 总线是一双线串行总线, 它提供一小型网络系统,为总线上的电路共享公共的总线。 总线上的器件, 每个器件都有自己的地址 该INA219器件共有16个地址, 那你最多可以控制16个器件 |
angmall 发表于 2021-2-27 23:06 好的好的 那这个A0和A1到底是做什么的, 文档说是指定从设备地址, 那这个表格是什么意思? |
Kituro 发表于 2021-2-27 21:52 8.5.6写入和读取INA219 通过将适当的值写入寄存器指针来访问INA219上的特定寄存器。有关寄存器和相应地址的完整列表,请参见表2。如图18所示,寄存器指针的值是R / W位为LOW的从设备地址字节后的第一个字节。 对INA219的每次写操作都需要为寄存器指针指定一个值。 写入寄存器始于主机发送的第一个字节。该字节是从机地址,R / W位为低电平。 然后,INA219确认收到有效地址。主机发送的下一个字节是将要写入数据的寄存器的地址。 该寄存器地址值将寄存器指针更新为所需的寄存器。接下来的两个字节被写入寄存器指针所指向的寄存器。 INA219确认收到每个数据字节。主机可以通过产生START或STOP条件来终止数据传输。 从INA219读取时,通过写操作存储在寄存器指针中的最后一个值确定在读操作期间读取哪个寄存器。要更改读取操作的寄存器指针,必须将新值写入寄存器指针。 该写操作通过发出一个R / W位为LOW的从机地址字节,然后是寄存器指针字节来完成。 不需要其他数据。然后,主机产生一个START条件,并发送具有R / W位为高的从机地址字节,以启动读取命令。 下一个字节由从机发送,是寄存器指针指示的寄存器的最高有效字节。该字节之后是来自主机的应答。 然后从机发送最低有效字节。主机确认收到数据字节。主机可以通过生成一个 接收到任何数据字节或生成START或STOP条件后,不应答。如果需要从同一寄存器重复读取,则不必连续发送寄存器指针字节;否则,无需执行任何操作。 INA219保留寄存器指针值,直到下一次写操作对其进行更改为止。 图15和图16分别显示了写和读操作时序图。请注意,寄存器字节先发送最高有效字节,然后再发送最低有效字节。
第一次发送 0x80 寄存器 0x02 读取电压 发送 0x81 读取 INA219 发送 0x5D 0xAA ---> 0x5DAA = 23978/2 =11989mV |
angmall 发表于 2021-2-22 11:11 感谢你的建议! 问一下, 这个
是什么东西, 在文档里没看到0x80这个数字出现, 根据手册第一次发送的应该是slave address, 来指定A0和A1采样的管脚 为什么要发送这个 INA219_RD_Operation 呢? 有什么意义吗? |
Kituro 发表于 2021-2-26 20:33 做PCB板就比较简单了。只要懂得使用Protel软件或 AltiumDesigner软件就没问题了。但要想做的板子布局美观、布线合理还得费一番功夫了。 娴熟的单片机C语言编程、会使用Protel软件或 AltiumDesigner软件设计PCB板和具备一定的英文阅读能力,你就是一个遇强则强的单片机高手了。 请看这个类似参考 http://www.51hei.com/bbs/mcu-pcb-1.html 可以手动布线和自动布线相结 和先排大件,再放小件,坚持画几块板,就不会感觉难了 前期布局最重要,刚学没必要纠结怎么走线 多画一些板子,自然就找到感觉了 最好是买本书来看,结合书本理论实际动手,多画几块板子 多看看高手的排线,自己多练练就有自己的思路了 好像有一些布线规则,找找看 |
angmall 发表于 2021-2-22 14:23 非常感谢! 我现在是在自学电子设计, 对于布线和PCB设计之类的知识又一窍不通, 而这些又是必要的 能不能请问一下在哪里能学习这些知识呢? |
Kituro 发表于 2021-2-20 17:50 我已经测试过了 是Proteus仿真软件的问题, 这个INA219仿真I2C设备, 电压电流监测模块 , 只能工作的地址是 0x80, 0x82 其他地址将无法正常工作 |
你的地址写错了
线路接错了
我给你来个程序试试
|
glinfei 发表于 2021-2-20 08:54 好像确实应该这样... 不过我把A1,A0和SDA连起来之后这个IC还是无响应nack的状态... |
| 你写的地址是100101,A0,A1应该接在SDA上啊,怎么图上是悬空呢? |
| 这个注释...我tab按太多了...大家将就看 |