您好,
目前在原型系统中运行的是 MMA8652FCR1。我们基本上是在验证通信,然后配置设备。
我们没有从 "世卫组织上午新闻 "中得到预期的回应。我在附件中附上了通讯线路图。I2C 处于正常模式,工作频率为 98kHz。
我们已经看到了一些设备的类似但不正确的响应。有人有这方面的经验吗?
提前感谢!
KMC
谢谢你,托马斯。
我确实用这种方法使用其他 I2C 设备但我没遇到问题...
我将直接实施。
非常感谢、
凯文
嗨,凯文、
查看屏幕截图,第二字节 (0x0D) 和第三字节 (0x3B) 之间存在停止条件。这是不正确的。
您需要修改源代码,使 SDA 在 SCL 变为高电平之前过渡到高电平,以消除这种停止条件。
交易应如下所示:
1.发送启动序列
2.发送 0x3A // MMA8652FC 从站地址(R/W 位为低电平)或 0x1D<< 1
3.发送 0x0D
4.再次发送启动序列(重复启动)
5.发送 0x3B // MMA8652FC 从站地址,R/W 位为高或 (0x1D<< 1) | 0x01
6。从 WHO_AM_I 寄存器读取数据字节
7.发送 NAK 和停止序列
希望对你有所帮助。
顺祝商祺!
托马斯
抱歉,我忘记提及我们开始查看一系列字节,因为我们看到的第一个响应字节始终是 0x00。该图显示了 0x00/0x9D/0xFC/0x89 的 4 字节响应-我们预计会看到 0x4A
再次感谢