OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3046|回复: 2

F429的硬件IIC的深度疑问

[复制链接]

15

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2014-10-29
在线时间
37 小时
发表于 2018-8-4 11:31:30 | 显示全部楼层 |阅读模式
5金钱
这两天在研究一下STM32系列的硬件IIC的使用,常规问题都分析的差不多了,但是在一个问题上面卡住了,愣是想不明白了,希望懂的朋友帮忙解惑一下!描述:
    (1)硬件平台,STM32F429的硬件IIC
    (2)硬件IIC支持模块的自动动作,我们只需要检测几个点以及读写数据就好,可以使用中断,但是我为了分析问题,就没有使用中断,用的是轮询方法;
    (3)假设,主机寻址从机(实例:AT24C02)成功,并得到从机应答,接下来就该发送有效数据,从机收到数据后就要做出动作了;
    (4)我的轮询检测函数为下面的代码:
            I2C_SendData(I2C1, WriteAddr);   //发送一个字节数据
           I2CTimeout = I2CT_FLAG_TIMEOUT; //设置一个超时判断的数值

           /* Test on EV8 and clear it 接下来就等待从机的ACK了,因为主机发了一帧数据过去*/
            while( !I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED) )  /*发生EV8事件,说明收到了从机应答了,*/
           {
                   if (  (I2CTimeout--) == 0  )      return __LINE__;
           }

疑问:
    (1)协议和手册上都说从机的应答是在SCL的第9个周期给出应答or不应答;
            应答好理解:主机发完8bit后,释放SDA,交给从机控制;在第9个SCL周期的前半周期(即SCL低电平)由从机准备数据,即把SDA置0,在SCL周期的上升沿锁定SDA,以便在第9个SCL周期的后半个周期(即SCL高电平)保持SDA的稳定,让
                               主机读走这个SDA,表示了从机的应答;接下来,主机就接着发第二个数据了。。。
            不应答:如果从机不应答,硬件IIC是咋处理的?不应答即意味着在第9个SCL周期内,SDA=1;那么此时,第9个SCL已经过去了,那接下来硬件IIC是怎样控制SCL引脚的呢,是继续按规定的频率产生SCL时钟来不停地读取从机的应答,还是直接就将SCL给
                         拉低了,即SCL=0;
                         总之:我的疑问是,是不是应答or不应答信号必须在第9个SCL周期内做出裁定,以及在第9个SCL周期内,从机不应答后,SCL引脚的动作是怎样的?
    (2)如果是应答or不应答信号必须在第9个SCL周期做出裁定,那么我们上面的超时判断是不是就不合理了,分析:你的不应答裁定在一个SCL就可以判断,即T=1/400k  S(0.0025ms)就可以做出裁定,那你搞了个I2CTimeout(假设1ms) 时间段才推出,那不是浪费时间了呢?
    (3)我知道STMF429在接收和发送数据时可以将SCL给拉低以延伸总线,关于应答这块,手册上好像说的不多啊,希望知道的朋友帮忙解答一下,谢谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2017-7-27
在线时间
25 小时
发表于 2018-8-4 13:20:06 | 显示全部楼层
回复

使用道具 举报

3

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-8-4
在线时间
2 小时
发表于 2018-8-4 16:46:34 | 显示全部楼层
也在研究   应该从II2C的时序图入手 根据时序图推
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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