8257|16

9

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

msp430f5438硬件i2c问题 [复制链接]

请教一个问题,官网的资料上都是利用中断的,但是我不想使用中断,只想使用专断标志位帮助我判断状态,但是我发现很奇怪,首先发送完slave地址以后没有ack的clk出现使得ubxctrl1的开始条件位不能自动复位,另外在发送数据时都需要延时,不然不会有任何数据出现。请问大家有没有碰上过类似的情况

最新回复

您好,我在调试G2Lauchpad的硬件IIC中遇到困惑,2天了都没调通,请问您能指导我下吗?   如有帮助,将非常感激  我的联系方式:企鹅 1518794253  详情 回复 发表于 2014-5-5 18:24
 
点赞 关注

回复
举报

307

帖子

1

TA的资源

一粒金砂(高级)

推荐
 
UCB1I2CSA =WRITEADDR;               
      while (UCB1CTL1 & UCTXSTP);         
      UCB1CTL1 |=  UCTXSTT+UCTR ;   

// while(UCB1CTL1 & UCTXSTT) ;    uctxstt放在这里会死循环。

       while(! (UC1IFG & UCB1TXIFG) )  ;      
      UCB1TXBUF = addr;         
                  
     while(UCB1CTL1 & UCTXSTT) ;  放在这里就通过了
      while( !(UC1IFG & UCB1TXIFG) )  ;
      UCB1TXBUF =  data;
      while( !(UC1IFG & UCB1TXIFG) )  ;
      UCB1CTL1 |= UCTXSTP;               
      UC1IFG &= ~UCB1TXIFG;               
      delay_ms(1);


感觉像楼主说的,UCB1CTL1 |=  UCTXSTT+UCTR ;   
并没真的开始有应答,当有数据写入的时候,UCB1TXBUF = addr;  才会有ack,这个时候uctxstt才会清楚。
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
我描述的不够清楚吗?大家有没有碰到过i2c这样的问题
 
 
 

回复

424

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
你的丛机接的是什么啊?
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

4
 
从机接的是气压传感器,在发地址的时候这个问题就存在了,主机少发了一个clk,没有给从机应答的机会
 
 
 

回复

424

帖子

0

TA的资源

纯净的硅(高级)

5
 
我不是太清楚为什么不使用中断方式呢?
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

6
 
见图,这是发出start后的波形,地址是0xee,写数据。可以看到没有ack的clk

NewFile0.JPG (20.52 KB, 下载次数: 1)

NewFile0.JPG
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

7
 
而且按照我的意思理解当UCTXIFG置位的时候并不是buf中的数据已经发送,只是buf中的数据刚刚进入移位寄存器,如果这时候马上写入下一个数据我发现并不会发送任何东西,只有延时后才会有东西显示
 
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

8
 
UCTXIFG置位是buf中数据被移出,而不是数据发送完毕,这个时候一般还在发送中
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

9
 
那有没有什么标志位标志着发送或者接收已经ok,发送能不能用busy位来判断,我觉得接收的话只判断接收的中断标志位应该就可以了,但是事实好像不是这样
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

10
 
而且为什么没有发出ack的时钟,所以无法使用判断uctxstt位是否复位来判断从机是否响应地址
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

11
 
现在可以下一个结论了,现在已经调通了,地址发出后没有ack的时钟是正确的,在操作的时候一定要按照手册上介绍的顺序来,在发送start后等UCTXIFG置位后一定要写入寄存器地址,这时候第九个clk才能出来,同时也是这个时候开始判断uctxstt位是否已经复位。顺便说明在不开中断的时候UCTXIFG需要软件复位,但是接收中断不需要软件复位。
 
 
 

回复

131

帖子

0

TA的资源

一粒金砂(中级)

12
 
楼主也在玩MSP—EXP4305438的板子吗 你有资料或好的推荐学习的资料吗,我是新手,望指教呀
 
 
 

回复

307

帖子

1

TA的资源

一粒金砂(高级)

14
 
pdf上面说的,第一个sla/w写进去,应该就会使uctstt这个清楚,其实好像是再addr写入UCB1TXBUF 之后,才会被清楚的
 
 
 

回复

307

帖子

1

TA的资源

一粒金砂(高级)

15
 
个人理解的。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

16
 
不用中断,确实不好调硬件iic。
 
 
 

回复

19

帖子

1

TA的资源

一粒金砂(中级)

17
 
您好,我在调试G2Lauchpad的硬件IIC中遇到困惑,2天了都没调通,请问您能指导我下吗?   如有帮助,将非常感激  我的联系方式:企鹅 1518794253
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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