打印
[资料干货]

I2C读取数据问题

[复制链接]
1158|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
三邑1|  楼主 | 2019-10-21 19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
三邑1|  楼主 | 2019-10-25 21:14 | 只看该作者
沉底了吗

使用特权

评论回复
板凳
tyw| | 2019-10-25 21:39 | 只看该作者
周立功IIC.rar (3.3 KB)
2.4 I2C总线及其驱动程序.pdf (1.26 MB)
I2C总线.rar (19.72 MB)
逻辑分析仪分析红外、I2C、UART、SPI.pdf (3.02 MB)

使用特权

评论回复
地板
叶春勇| | 2019-10-26 08:37 | 只看该作者

你这个好像是写吧从机地址=0b10100000  最后一位0,代表写,红色线表示的。

使用特权

评论回复
5
叶春勇| | 2019-10-26 08:49 | 只看该作者

1、从时序来看你是用软件i2c。
2、从机地址7+1,你这个明显是写从机。
2、时序好像全部是错的,应答都是高电平,你没有检测应答。我看了下,应答都是高电平。
3、你最后读出的0xff是个假的。

454845db3972c6b080.png (1.17 MB )

454845db3972c6b080.png

使用特权

评论回复
6
tianxj01| | 2019-10-26 08:52 | 只看该作者
叶春勇 发表于 2019-10-26 08:37
你这个好像是写吧从机地址=0b10100000  最后一位0,代表写,红色线表示的。

它下面有IIC解码,确实操作是50地址写,如果是读,这里为51。
而且是连续2次写,第一个应该是器件地址,第2个应该是内部寄存器地址。
这时候去讨论读数据貌似没意义吧?

使用特权

评论回复
7
叶春勇| | 2019-10-26 15:12 | 只看该作者
tianxj01 发表于 2019-10-26 08:52
它下面有IIC解码,确实操作是50地址写,如果是读,这里为51。
而且是连续2次写,第一个应该是器件地址, ...

以前折腾过i2c的传感器,没有这个高级的解码器,是用示波器的,痛苦。不过还好把i2c搞熟悉了。
后来买了30元的逻辑分析仪,就舒坦了。

使用特权

评论回复
评论
tyw 2019-10-26 18:17 回复TA
@叶春勇 :谢谢 
叶春勇 2019-10-26 16:12 回复TA
T叔,我翻到你用saelogic的逻辑分析仪帖子了。这个逻辑分析仪有个开源界面叫sigrok,功能更强大。你可以试试。 
tyw 2019-10-26 15:58 回复TA
淘只逻辑分析仪,开了天眼,哈哈 
8
tianxj01| | 2019-10-26 17:52 | 只看该作者
叶春勇 发表于 2019-10-26 15:12
以前折腾过i2c的传感器,没有这个高级的解码器,是用示波器的,痛苦。不过还好把i2c搞熟悉了。
后来买了3 ...

做工程的,还是示波器管用,当然最好是带逻辑解码的,用起来爽。
手头上DS1054,全解码,带深度存储,带逻辑解码,3千不到的机器,几乎打遍天下,和MOS管厂家近10W的货比抓波形吧,居然不差多少。
示波器不借助逻辑解码,能直接调试IIC,则就真的是搞熟悉了。
记得当初第一次弄IIC,就只是为了驱动ST公司的DDX芯片,初始化和音量控制等等,线路完全正常,无误,可芯片怎么都不给我发出一个哪怕咔哒声音,IIC上面只有主机的发送信号,芯片死活都是没有任何动静。为了测试到底是我IIC驱动问题,还是程序问题,专门把一个好久不用的单片机学习平台上面的IIC EEPEOM拆下来,装到DDX芯片的位置,按照芯片地址改了程序后,直接进行存储读取测试,我擦,完全正常。
没办法,在连换了几个芯片后,最后怀疑官方说明书上的芯片IIC地址有问题,反正把官方关于芯片地址的数据直接扔了,按照可能的10-16 或者16-10错误的范围,一个一个测试,最后确定真的是官方芯片说明书地址错误,就这么一个事情折腾了2天。问题解决了后,真想上ST公司去扔个砸蛋,太坑爹了。
那个时候,用的可不是现在的这一台示波器,没有逻辑分析仪只有最基本的数字存储,来回折腾IIC,板子都焊坏了一片。

使用特权

评论回复
评论
叶春勇 2019-10-26 20:14 回复TA
你这个问题,arduino有i2c的库,其中可以扫i2c地址,有ack就撤退。然后把地址扫出来。快的很。 
9
guitianxia| | 2019-10-26 19:33 | 只看该作者
这是那颗IC

使用特权

评论回复
10
三邑1|  楼主 | 2019-11-3 07:02 | 只看该作者

使用特权

评论回复
11
三邑1|  楼主 | 2019-11-3 07:03 | 只看该作者
谢谢各位,我找到无ACK应答的原因了,由于电源电压不足,应是5V,我用的是3.3V。

使用特权

评论回复
12
三邑1|  楼主 | 2019-11-3 07:08 | 只看该作者
但是还有着一个问题,用5V供电和我MCU的电平存在不匹配的问题,我MCU的IO口输出是3.3V的,那除了加电平转换电路,还有其他的解决办法吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

粉丝