搜索

116

主题

170

帖子

1926

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1926
发表于 2021-10-5 14:56:07 3580 浏览 0 回复

i2c 调试过程中不能通信问题排查

本帖最后由 星空 于 2021-10-5 15:10 编辑

1 排除一些简单的错误
       1软件是否访问了这条i2c总线
                e.g.: 我设备挂在i2c1,然后软件在i2c2上寻址怎么也不会寻址到
                代码里,log可以查看
                用逻辑分析仪,可以读到是否访问了这个地址
        2地址是否是正确的
                实在不行,地址扫描的方法也可以. 直接吧clinet吧地址改了,用for循环,看哪个地址有反应

        3设备上是否挂有多个地址一样设备
                去掉别的设备,以防干扰
        4物料有问题

2 硬件问题排除
        1硬件的上电是否正确  重点
                有些设备只要上电,比如开发板上的一些sensor

                有些设备是要有上电时序的,比如摄像头
                      这里比如有些引脚是gpio口控制的,一定要吧引脚加到摄像头的上电时序中去,不要让时序混乱
                     上电的电压是否一样,比如摄像头的电压有1.8的,2.8的1.2的1.1的很多这些不能有差错

       2 示波器量波形
                看i2c的时钟线和数据线的高低电平是否正确,电平不对会导致读取的数据不对,                    
                     去掉总线上别的i2c设备   
                             有些设备会干扰i2c时序

                     加上下拉电阻
                             i2c内部有一个4.7k的上拉电阻,可以dws里配置.
                            如果外部加电阻,要吧 内部的电阻上拉去掉,然后选配不同的电阻,但要注意,不能加强了上拉,下拉 能力不行了也不行
                            e.g.: 本来高电平是1v,低电平0v, 加10k电阻之后变成了1.1v和0v   加4.7k电阻之后变成了1.2V和200MV这个时候就要注意了.那我们就不能加4.7k这么大的电阻,他上拉太强了,下拉能力不行了

                     配置i2c上下拉能力
                             这个mtk有faq,我们常用的平台的方法在论坛有

                     降低i2c的频率
                             可以降到100k试下,当然这个要根据设备的规格书来
3 逻辑分析仪分析
           电平如果正确的可以用逻辑分析仪.这里注意,一定是电平正确,因为逻辑分析仪会把电平优化,可能0.8v以上就会算高电平
           逻辑分析仪抓取的波形是可以反应这条总线上的所有数据通信,可以查出是否在访问这个地址的时候,有什么信号拉了电平或者电平的时间不对,等等的问题           




























回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表