主题中讨论的其他器件: MSP-EXP430FR2433、 MSPDRIVERLIB、 MSP430FR2433、 MSP430WARE
我一直在使用 MSP430F5329编写 SMBus 从器件、用于支持和不支持 PEC 的读取字、写入字和块读取协议。
我一直在使用 Raspberry Pi 上的 Python SMBus 库来测试代码。 我已经获得了使用 PEC 和不使用 PEC 的读取字。
我无法使读取块正常工作、我知道我要发送的字节是正确的。 文档不存在。 我正在寻找其他东西。
在更仔细地查看读取字和块读取中的 SMBus 协议的过程中、 主器件将从器件发送的最后一个数据字节裸机、然后主器件发送停止。 我以前没有注意到过它。
我的代码让我知道每次生成 I2C 中断并记录中断类型。 我从未见过一个 NAK 中断通过。 现在、我对 Raspberry Pi 代码非常怀疑。
我想我也可以使用另一个 MSP430芯片作为 I2C 主设备、并选择 MSP-EXP430FR2433。 我在查看 MSPDRIVERLIB: 用于 MSP430器件的 DriverLib 中的库函数、但无法找到在接收到最后一个字节后发送 NAK 的方法、这是 SMBus 规范所要求的。
例如、系统管理总线(SMBus)规范版本3.0中的图31
我缺少什么?
如何发送主 NAK 来响应从器件发送数据字节高电平? 它似乎是自动执行的。
基普