主题中讨论的其他器件: C2000WARE、
大家好、我正在开发 IO 扩展器 PCF8575的驱动程序。 该规范规定写入地址为0x40、读取地址为0x41。 但我扫描了 I2C 器件、得到的从器件地址为0x20。 如果0x20是从器件地址、则应使用哪个地址从该器件读取数据。 感谢您的帮助!
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.
这是对地址1111111的读取。 该地址是保留的、因此没有器件应答。
我猜 μ I²C 主器件未正确初始化或使用。 这个问题可能会在 C2000论坛中得到更好的解答。
您好、Crane、
对于该器件、应将设置为输出高电平的端口视为输入(因为它们具有弱上拉偏置、外部驱动器应能够克服弱偏置)。 任何设置为输出低电平的内容都应显示为输出低电平。 (我同意第1号3和第4号)。
如果引脚设置为输出高电平且未连接、我们应期望引脚读数为高电平(除非存在某种泄漏电流将引脚驱动为低电平)
如果输出为高电平并连接到 GND 或任何会将引脚驱动到低于 Vcc 30%的位置、我们应该会看到其读数为低电平。
如果输出设置为高电平并连接到任何将引脚偏置在70% Vcc 以上的引脚(如外部上拉电阻器)、则在执行读取操作后、引脚应读为高电平。
您是否确认您正在 I2C 线路上正确读取、并且器件是总线上唯一具有该地址的器件?
-Bobby
我确定在地址为0x20的总线上只有这个。 这是我在示波器上看到的、当我应该读取0xFFFF 时、我得到了0x40BF、有时是0x60BF、有时是0x70BF、当我连续读取时。 红色圆圈表示第一个字节中的位不正确。 绿色圆圈表示第二个字节中正确的位。
由于16位中的8位被正确读取、我假设读取正常、问题来自硬件连接。 唯一的问题是、我在读取时看到第三个字节、该字节不应该出现在那里。