楼主: longdelu

[已解决] LPC 824 I2C问题

[复制链接]

该用户从未签到

2

主题

39

帖子

0

注册会员

Rank: 2

积分
103
最后登录
2021-1-27
 楼主| 发表于 2016-10-24 23:24:32 | 显示全部楼层
本帖最后由 longdelu 于 2016-10-24 23:26 编辑
小恩GG 发表于 2016-10-24 16:53
楼主,把你1.7V那个波形图片放出来,我们这边分析下。

这是波形,我觉得可能是上位电阻太大,还有我用的测试例程,位于\LPC824_Example_Code_Bundle_Keil_r1.0\Keil_Projects\Example_I2C_MasterSlave下,源码应该是对的,要不然一次都不能通信成功,不过也许我还有其它细节没有注意到,导致程序不够健壮,若程序有bug欢迎各位大牛指正。

完整波形

完整波形
(注:测试例程所用源码是从官网上改过来的,我发现官网上的例程把I2C1的时钟控制使能位给搞错了,i2c1时钟控制使能位应为SYSAHBCLKCTRL寄存器的第21位,而源码里面却是第20位)

缺失波形

缺失波形

LPC824_Example_i2c_Keil_r1.0.zip

1.24 MB, 下载次数: 23, 下载积分: 威望 1

测试例程

逻辑分析仪时序图.zip

2.93 MB, 下载次数: 2, 下载积分: 威望 1

逻辑分析仪抓到的时序图

回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

39

帖子

0

注册会员

Rank: 2

积分
103
最后登录
2021-1-27
 楼主| 发表于 2016-10-26 14:38:41 | 显示全部楼层
小恩GG 发表于 2016-10-24 16:53
楼主,把你1.7V那个波形图片放出来,我们这边分析下。

现在是什么情况下,根据波形,各位大神能说说是什么原因么?
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24882
最后登录
2025-7-20
发表于 2016-10-26 15:48:37 | 显示全部楼层
本帖最后由 小恩GG 于 2016-10-26 15:52 编辑
longdelu 发表于 2016-10-26 14:38
现在是什么情况下,根据波形,各位大神能说说是什么原因么?

楼主你好!
因为我现在手上的问题比较多,所以还没来得及仔细分析你的问题。
你的问题,我需要好好分析下,并且和我们AE部门讨论下,等我们这边得到比较确切的结果,我再回复你。
现在还请你耐心等待下, 我手上几个问题处理掉,就会来分析你的问题。
另外,楼主,还请你再贴几组使用I2C引脚出来的波形,看你现在使用一般IO口的I2C波形,感觉相互有影响,并且波形有失真了。
另外,你硬件上面,两个引脚有没有靠得很近?锡膏多不多?如果有酒精,可以把I2C两根线相关的地方洗洗,看看两个波形之间是否还会相互干扰?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-6-12 12:56
  • 签到天数: 215 天

    连续签到: 1 天

    [LV.7]常住居民III

    3

    主题

    444

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1154
    最后登录
    2021-4-29
    发表于 2016-10-26 17:00:46 | 显示全部楼层
    longdelu 发表于 2016-10-24 23:24
    这是波形,我觉得可能是上位电阻太大,还有我用的测试例程,位于\LPC824_Example_Code_Bundle_Keil_r1.0\K ...

    帮你看了一下FM24C02的数据表,首先它是有两款,一款是400k的,一款只能到100k, 这得先确认一下。然后就是上拉电阻的问题,400k的时候你要满足信号上升时间在0.3us以下,所以你上拉电阻得调小点。另外你可以比较一下两组引脚情况下的信号波形质量上的区别,如果保证了信号波形一样,那对于slave来说两组引脚也就没有区别。真是这样的话,就可能是master芯片硬件上的bug了,一般不大可能。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    103
    最后登录
    2021-1-27
     楼主| 发表于 2016-10-27 23:25:49 | 显示全部楼层
    小恩GG 发表于 2016-10-26 15:48
    楼主你好!
    因为我现在手上的问题比较多,所以还没来得及仔细分析你的问题。
    你的问题,我需要好好分析下 ...

    你好,我的板子是以前买的,焊工看起来比较好,至于I2C的两个引脚,是用标准的2.54mm的双排针挨着一起的,另外如果需要示波器的波形,我测量出来整理好再上传,至于逻辑分仪的图片我有比较多
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    103
    最后登录
    2021-1-27
     楼主| 发表于 2016-10-27 23:31:54 | 显示全部楼层
    本帖最后由 longdelu 于 2016-10-27 23:39 编辑
    wuqt 发表于 2016-10-26 17:00
    帮你看了一下FM24C02的数据表,首先它是有两款,一款是400k的,一款只能到100k, 这得先确认一下。然后就 ...

    你好,两组引脚的波形几乎是一样的,上图是没有缺失的波形,引脚为PIO10、PIO11; 缺失波形的是下图,引脚为PIO12、PIO13。至于你说的那个上升沿时间,上拉电阻的确较大了,我抽些时间找个上拉电阻小的从机再试试,就算是上拉电阻太大,不过为什么换两个引脚就有不同的现像,我觉得这很奇怪
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    103
    最后登录
    2021-1-27
     楼主| 发表于 2016-11-9 22:13:10 | 显示全部楼层
    本帖最后由 longdelu 于 2016-11-9 22:15 编辑
    小恩GG 发表于 2016-10-26 15:48
    楼主你好!
    因为我现在手上的问题比较多,所以还没来得及仔细分析你的问题。
    你的问题,我需要好好分析下 ...

    你好,这几天我把上拉电阻换成4.7K,还是有那个问题,这十分令人沮丧。同时我还发现,在keil里面进入调试全速运行时,更频繁复现这个问题。我在NXP社区发现有人曾经报告过与我类似的问题,不过其中的信息并没有不能解决这个问题。http://community.nxp.com/thread/421791
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24882
    最后登录
    2025-7-20
    发表于 2016-11-10 14:35:39 | 显示全部楼层
    longdelu 发表于 2016-10-27 23:31
    你好,两组引脚的波形几乎是一样的,上图是没有缺失的波形,引脚为PIO10、PIO11; 缺失波形的是下图,引脚 ...

    楼主你好!
    你说的上图,是22楼第一张示波器图吗?
    这个图的clk只有17个,好像也是少了一个CLK的。
    所以是不是PIO0_10, PIO0_11在你那边也有问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    39

    帖子

    0

    注册会员

    Rank: 2

    积分
    103
    最后登录
    2021-1-27
     楼主| 发表于 2016-11-10 14:55:17 | 显示全部楼层
    小恩GG 发表于 2016-11-10 14:35
    楼主你好!
    你说的上图,是22楼第一张示波器图吗?
    这个图的clk只有17个,好像也是少了一个CLK的。

    你好,第一张图是读数据,最后一个CLK是用于ACK,由于是读从机应答,根据逻辑分析仪的图片,它那个时钟的低电平略长,在示波器上面由于画面关系没有显示全吧。我这边经过多次频繁测试,I2C0的那两个引脚没有测到这个类似的问题,想说是不是软件有问题?或者在你们那边I2C0的那两个引脚也复现了这个问题?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    103

    主题

    868

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4336
    最后登录
    2025-6-13
    发表于 2016-11-10 15:04:08 | 显示全部楼层
    longdelu 发表于 2016-11-10 14:55
    你好,第一张图是读数据,最后一个CLK是用于ACK,由于是读从机应答,根据逻辑分析仪的图片,它那个时钟的 ...

    LPC800那两个默认I2C管脚是开漏的,其余管脚是僞开漏,如果你换IO口注意你的设置要设置成僞开漏。上拉电阻的阻值也要算好,不知道你拉到多少V了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 22:53 , Processed in 0.160339 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表