QWE4562012 发表于 2020-12-18 15:01 怎么没人回复 |
zjjhtony 发表于 2020-12-15 20:33 先给设备写数据,从机准备好,回复ACK;写的地址是0X0F,写成功,然后从机回复ACK。 然后主机从从机读数据,从机准备好,回复ACK;开始读数据,数据是0X03,读成功,从机回复NAK 是不是这样 |
权威人物 发表于 2020-12-16 11:46 从机是如何判断地址对不对的呢?如果主机写的地址,在从机寄存器找不到,从机判断没有这个地址?这样判断? 那数据长度,和数据高低电平时间,从机是如何知道对不对的呢 |
zjjhtony 发表于 2020-12-15 20:33 因为经常能遇到软件杠精 非要说是硬件的问题 出现问题 所以索性用逻辑分析仪抓到数据 让软件心服口服 |
| 0xA0一般是你器件的地址,是写,把地址写进去,ACK是应答,则器件收到你的写入的东西,给一个ACK应答信号,然后就是读和写差不多的,数据交互,你先熟悉下IIC是怎么通信,然后和你元器件是怎么通信,查元器件的手册,然后有哪些功能对比数据 |
|
这个逻辑分析仪主要是来读取I2C(或其他)的总线上的数据,知道数据传输的地址,数据,协议等等。 供软件编程时使用。 |
lovezjf234 发表于 2020-12-15 09:15 就是看时钟高电平的时候 对过去数据是高还是低,,,是这样看吗 |
lovezjf234 发表于 2020-12-15 09:15 我现在用的就是逻辑分析啊!前面开始三个数据是啥意思?setup write to 00A0 +ACK 然后 0X00 +ACK 然后 setup read to 00A1+ ACK 最后结束有一个 0X7A +NAK 这些数据如何理解? 还有ACK何NAK是开始和结束的意思? |
TTQ001 发表于 2020-12-15 08:48 特殊软件?啥意思。这些数据去比对协议是吗?这么多数据应该不会全部在协议里面体现出来把? |
| 你可以对比数据,然后按照I2C协议,从start开始往后数8位,前7位是地址,后一位是读写位,然后看后面8位数据,如果有9位,最后一位ack位。你把协议搞清楚再看波形,或者用逻辑分析仪直接读取数据,看分析仪上的数据和你要求的数据是否一致 |
| 一般来说,分析捕获数据的最佳方法是使用特殊软件。 偶尔简单分析,可以按照通信协议直接解码捕获的波形。 |