2124|12

405

帖子

0

资源

一粒金砂(高级)

硬件I2C的调试问题求助

 
本帖最后由 火火山 于 2017-1-9 11:46 编辑

实现:读取某个寄存器的值                                                                                                                                                       问题:全速运行时,RXBUF得到的是0XFF ,当单步调试时,RXBUF得到的是0X48,得到的值是正确的
请问为什么会出现这样的结果?各位大神们可以提供一下思路吗?

代码如下,使用的是TI的driverlib库写的
初始化如下:
i2c1.PNG
读单个字节代码如下:
i2c2.PNG





回复

745

帖子

2

资源

纯净的硅(中级)

硬件IIC速率限制呗,你得看器件IIC的最高速率是多少,太快的话是不支持的

点评

已经用示波器去抓波形的了,得到的结果就是上面说的那样子,速率不高的,现在的频率是100k,器件IC是可以100k-400k的  详情 回复 发表于 2017-1-9 13:44
个人签名亚里士缺德

回复

1293

帖子

3

资源

一粒金砂(高级)

0xff是不是因为iic上拉,默认读出的结果?

点评

不会的,我用示波器抓波形,发送从机地址的时候SDA都能拉低,数值正确,当读数据的时候,就全部高了,所以不懂。。。  详情 回复 发表于 2017-1-9 13:45
个人签名

RTEMS


回复

660

帖子

2

资源

纯净的硅(初级)

本帖最后由 long521 于 2017-1-9 13:35 编辑

速率高了,拉不下来,或者说是上拉太强了
代表super captain回一贴,

点评

你这个是代表玉老板说的。。  详情 回复 发表于 2017-1-9 13:53
不会的,我用示波器抓波形,发送从机地址的时候SDA都能拉低,数值正确,当读数据的时候,就全部高了,所以不懂。。。 你成了大队长的助理了不?  详情 回复 发表于 2017-1-9 13:46
个人签名我是一头搞电子的猪,猪是一种好色的动物,猪八戒就是代表.       

回复

786

帖子

2

资源

纯净的硅(初级)

可以全速跑,然后示波器量一下 是不是一直是高电平

点评

一直在用示波器在测量,示波器得到的结果跟上面说的是一样的。全速跑才能抓到波形,单步调试的话,抓不到波形  详情 回复 发表于 2017-1-9 13:47
个人签名物致DIY 欢迎你的加入~
QQ群:646461928 公众号:智物知心致成
小店

回复

405

帖子

0

资源

一粒金砂(高级)

汤权 发表于 2017-1-9 13:12
硬件IIC速率限制呗,你得看器件IIC的最高速率是多少,太快的话是不支持的

已经用示波器去抓波形的了,得到的结果就是上面说的那样子,速率不高的,现在的频率是100k,器件IC是可以100k-400k的

回复

405

帖子

0

资源

一粒金砂(高级)

54chenjq 发表于 2017-1-9 13:25
0xff是不是因为iic上拉,默认读出的结果?

不会的,我用示波器抓波形,发送从机地址的时候SDA都能拉低,数值正确,当读数据的时候,就全部高了,所以不懂。。。

回复

405

帖子

0

资源

一粒金砂(高级)

long521 发表于 2017-1-9 13:34
速率高了,拉不下来,或者说是上拉太强了
代表super captain回一贴, ...

不会的,我用示波器抓波形,发送从机地址的时候SDA都能拉低,数值正确,当读数据的时候,就全部高了,所以不懂。。。

你成了大队长的助理了不?

回复

405

帖子

0

资源

一粒金砂(高级)

皈依 发表于 2017-1-9 13:39
可以全速跑,然后示波器量一下 是不是一直是高电平

一直在用示波器在测量,示波器得到的结果跟上面说的是一样的。全速跑才能抓到波形,单步调试的话,抓不到波形

回复

5863

帖子

209

资源

版主

long521 发表于 2017-1-9 13:34
速率高了,拉不下来,或者说是上拉太强了
代表super captain回一贴, ...

你这个是代表玉老板说的。。
个人签名

EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,上班摸鱼场,释放压力好地方!商家勿入!加群暗号:喵


回复

2820

帖子

0

资源

五彩晶圆(初级)

如果肯定硬件没问题,分析一下外设的读写时序,关注一下数据有效建立的时间。

点评

硬件是没有问题的,因为同样的硬件,我师父调通了的,我现在自己调试 这个建立时间是什么意思?看了规格书,只看见有一个SCL的频率范围,就没有跟I2C有时间相关的数据了  详情 回复 发表于 2017-1-9 14:35
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵

回复

405

帖子

0

资源

一粒金砂(高级)

elvike 发表于 2017-1-9 14:09
如果肯定硬件没问题,分析一下外设的读写时序,关注一下数据有效建立的时间。

硬件是没有问题的,因为同样的硬件,我师父调通了的,我现在自己调试
这个建立时间是什么意思?看了规格书,只看见有一个SCL的频率范围,就没有跟I2C有时间相关的数据了

回复

405

帖子

0

资源

一粒金砂(高级)

感谢楼上热情的各位!
解决问题了
方法:在每次置了Start的UCTXSTT位后,需要等待UCTXSTT这个位的置起,就通信正常了,代码如下
  1.     //Send start
  2.     HWREG16(EUSCI_B0_BASE + OFS_UCBxCTLW0) |= UCTXSTT;
  3.     while(HWREG16(EUSCI_B0_BASE + OFS_UCBxCTLW0) & UCTXSTT);
复制代码

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

关闭
站长推荐上一条 1/4 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表