需要做的工作小结如下:
1、MCU的I2C采用IO口模拟实现;
2、MCU作为I2C主设备与定时芯片RX-8025SA建立通信;
3、实现定时闹钟、定时唤醒及睡眠的功能;
调试过程:
1、IO口模拟I2C的代码在网上是可以找得到的。但是在具体的项目中,由于时钟的的不同在时序的控制上有区别,需要再调试。
在具体项目中调试I2C时,需要注意一下几点:
1)I 2C设备的地址,有的描述方法是7位,有的描述方法是8位。
注意只要代码和实际的设备地址相一致就好的。关于7位地址的使用方法无非描述的是8位地址的高7位,因为最后一位是固定的。(读的时候是1,写的时候是0)。
2)I2C通信协议本身并没有规定在通信过程中,传输的字节数。但是,有的设备可能只允许传输1个字节,或者两个字节,或者固定位数以内的字节。具体的规则要看从设备的规格书。
3)有的I2C设备只能写,不能读,这点也需要注意。
4)2C从设备的通信速率,即数据传输速度,不同设备之间会有所不同,所以,要考虑兼容性的问题。
5)有的设备可能是10位地址,写地址的时候,需要送两次设备地址。
6)设备的程序编写尽量规范。总线要释放的时候,最好把I/O设置为输入口。有的程序编写的做法是,释放总线即把I/O设置为高,这样不好。
7)时序的控制上,要符合设备的规格书的要求:
手头有示波器的话,这里介绍一个比较适用且效率较高的调试方法。用示波器两路的探头直接接到I2C的数据线SDA和时钟线SCL上,上电后获取两路波形,再根据I2C通信协议读取通信数据,这样就可以看出是哪里的时序出的问题。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !