I2C总线出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I2C总线出错相关的知识,希望对你有一定的参考价值。

1.我用单片机(MSP430)通过I2C总线向AT24C256里面写数据,在写了一段时间之后数据就不正常了,一开始是比较正常的,请问这是怎么回事啊?
2.有时候00的数据写进去就变成了FF,FF却变成00,把单片机的速度调慢一些,就正常了,请问这是为什么?

1、首先确认你的I2C的速率,软件模拟的话就与MCLK直接相关了,自然单片机的速率下降就会正常;如果是硬件I2C的话需要看时钟来源是不是MCLK并作修改。

2、看你的电路并没有进行上拉也就是SDA和SCL需要接4.7K或者10K的电阻至VCC即可。

3、如果你的I2C是等待延时的话建议修改delay参数或者使用返回ACK查询方式。

4、有问题随时hi我,可以给你传一份调试通过的代码!
参考技术A 1、用示波器检查一下波形,看看是不是受到干扰啦;
2、检查接地,看有没有共地;
3、降低上拉电阻的阻值;
4、检查上拉电阻的位置,尽量靠近master追问

请问我这样接有什么问题吗

参考技术B 你说的单片机的速度是指什么?
你要确定一下I2C clock的频率,是不是超过了AT24C256所能接受的时钟频率了。追问

我说的单片机的速度是指单片机的时钟频率。我把它调慢一些,就没问题了,稍微快一点就会出现数据不准确的错误。

追答

那你可以用示波器先查一下时钟,确定一下I2C SCL的时钟频率,把它的频率降低,而不是把整个单片机的时钟频率降低。

参考技术C 两次写数据之间有没有等待前一次的数据写完?可以等20MS,或者再写判断有没有正确的ACK信号。

飞凌嵌入式OKA40i-C开发板试用体验之交叉编译

 

选择下载交叉编译工具链(我就按照其他教程下载配置的)  

 

在开发板上配置sftp用于文件传输,将编译完成的可执行文件传到开发板上运行
 

 

在Unbuntu20下编写一个helloworld.c文件

 

通过其他教程学习了一下Makefile文件的构成及简单实现,make编译得到可执行文件main

 

 

2.利用上述方式控制LED闪烁

linux系统下一切皆文件

<span font-size:16px;line-height:1.5;"="" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 1.5;">编写gpio_test.c文件,这里参考了文章https://www.jianshu.com/p/e5ecd92c0787

 

 

 

 

以上是关于I2C总线出错的主要内容,如果未能解决你的问题,请参考以下文章

I2C总线协议详解

I2C总线完全版——I2C总线的结构工作时序与模拟编程

I2C总线协议的软件模拟实现方法

I2C总线

[I2C]I2C总线协议图解

I2C 总线原理与架构