用I/O口模拟IIC总线协议遇到的一些问题

发布者:等风来88888最新更新时间:2016-09-28 来源: eefocus关键字:I  O口  模拟IIC  总线协议 手机看文章 扫描二维码
随时随地手机看文章
最近做的一个项目,是基于IIC总线通信的传感器系统。由于另外一个传感器使用的是类IIC协议,而不是标准IIC,所以MCU不能与其通信,最后没有办法,只有通过I/O口模拟的方式实现IIC的总线通信。具体的程序在我博客里在先前的早些时候已经贴出来了,如果有兴趣的可以查看我的博客。

主要终结一下我在这个过程中遇见的问题

1、在写完数据(指令或者地址)后 没有应答信号

一般开始的时序根据手册里面的时序图很容易可以写出,第一个没有应答,就有可能向从器件写完数据以后。一般这个时候主要检查的是,上升沿和下降沿,看手册里面说的是上升沿读写还是下降沿读写。我的项目中是上升沿读写数据,换一句话说,在上升沿的时候读写SDA线上的电平指示;下降沿的时候改变数据,其中有一点需要注意,就是先拉低SCL线产生下降沿,在程序中拉低之后要有一定的延时,因为I/O口稳定电平需要一定的时间。不然的话在SDA高的情况下,误拉低了SCL就会产生一个启动条件,自然写入的操作也就失败了。
2、在读取数据的时候数据不对
这样的情况是有数据但是不是有效的数据,一般这个时候就要看模拟的时序是否对了,要明确的在上升沿的时刻读取数据,而后注意的就是数据移位,每读取一位数据之后就要移位一个数据位,下面就是一段读取8位数据的代码。

for(i=0;i<8;i++)
{
IIC_SCL_HIGH();        //转换完成,SLAVE器件将数据线拉低,时钟线产生上升沿读取高8位数据
REC1=(REC1<<1)+IIC_SDA;
delay_us(5);
IIC_SCL_LOW();                //将时钟线拉低,等待下一个上升沿的到来
delay_us(5);
}


3、在用I/O操作的过程中,高低电平如何书写
输入输出的I/O口都是有方向的,要注意方向的书写,推荐的一种写法就是高电平的写的时候将I/O配置为输入,这样上拉的作用就会向总线输出高电平,这样的好处就是可以在写完之后可以等待从器件对总线的操作,不会产生一定的冲突。下面就是一段高地电平的写法

#define IIC_SCL_HIGH() IIC_SCL_DIR = PORT_INPUT           //时钟线拉高
#define IIC_SCL_LOW()  IIC_SCL_DIR = PORT_OUTPUT;IIC_SCL=0//时钟线拉低
#define IIC_SDA_HIGH() IIC_SDA_DIR = PORT_INPUT           //数据线拉高
#define IIC_SDA_LOW()  IIC_SDA_DIR = PORT_OUTPUT;IIC_SDA=0//数据线拉低

关键字:I  O口  模拟IIC  总线协议 引用地址:用I/O口模拟IIC总线协议遇到的一些问题

上一篇:单片机开发经验总结
下一篇:用I/O口模拟总线时序

推荐阅读最新更新时间:2024-03-16 15:12

STM32’s I2C 硬件BUG引发的血案
下面的函数中有一个BUG, 也就是SR2不能用WHILE来轮询,而应直接读出.如下面代码段, 因此,在这里说的这是STM32的BUG其实是我的代码的错误: I2C2- DR = inerAddress ; while( (I2C2- SR1&Q_I2C_SR1_BIT_BTF)==0 ); I2C2- SR2; // 正解 2010-4-1 1:44,一直都不相信STM32 的I2C接口会存在问题,因为工作经验无数次告诉我,嵌入式系统设计中的99.999%的问题不会是由于MCU本身的设计问题所引起,绝大部分都是硬件工程师或软件工程师的某个设计缺陷所造成的. 这次的设计经历也不例外. 由于终于可以抽多点时间用于设计ST
[单片机]
STM32’s <font color='red'>I</font>2C 硬件BUG引发的血案
MSP430与I2C总线接口技术的研究
引言 MSP430单片机自从2000年问世以来,就以其功能完善、超低功耗、开发简便的特点得到了许多设计人员的青睐。MSP430与传统的51单片机在结构上有很大的区别。其中之一就是:在MSP430的外围接口电路中,没有提供像51那样控制外设读、写、地址锁存信号的硬件电路。与这种接口电路相适应,MSP430更倾向使用I2C总线以及ISP等基于串行接口的外围器件。另一方面,随着I2C技术的发展和成熟,其硬件结构简单、高速传输、器件丰富等特点使该类器件的应用越来越广泛。因此研究新型单片机MSP430与I2C总线接口技术有着重要的意义。本文针对这一问题进行研究,分析研究了MSP430与I2C总线接口的原理和方法,提出了高效的接口方法,介
[单片机]
MSP430与<font color='red'>I</font>2C总线接口技术的研究
【技术大咖测试系列】之六:曲线追踪仪与I-V曲线追踪仪
【技术大咖测试笔记系列】之六:曲线追踪仪与I-V曲线追踪仪软件 两台仪器放在一起,就是时代的见证。追溯历史,泰克在1955年推出业内第一台曲线追踪仪,显示真空管的特征曲线。此后,泰克发布了更加复杂、更加完善的曲线追踪仪,用来测试晶体管、二极管和其他固态器件。 曲线追踪仪是一种基础电子测试设备,通过分析半导体器件(如二极管、晶体管、晶闸管等)的特点,用来执行I-V曲线追踪。它们通常用于器件可靠性应用中,如故障分析和参数表征。 泰克Type 576曲线追踪仪于1969年问世,获得业界广泛认可。vintageTEK泰克古董博物馆使用它在修复室里作维修。 对经典曲线追踪仪的需求 不管是过去还是现在,这些早期型
[测试测量]
【技术大咖测试系列】之六:曲线追踪仪与<font color='red'>I</font>-V曲线追踪仪
上海小i机器人起诉侵权要索赔100亿元:苹果回应给真相
日前,上海小i机器人怒告苹果侵权,并索要100亿元的赔偿,如果不这样希望法院能够禁售iPhone,不过对于这样的诉讼,苹果显然有话说。 据新浪科技报道称,针对上海智臻智能网络科技股份有限公司(简称“上海智臻”)起诉苹果公司Siri产品侵权并索赔100亿一事,苹果公司今日发来声明称,Siri不包含其专利包括的特征,该专利与游戏和即时消息有关。案件已经进行了8年,苹果公司对小i机器人提起再一个诉讼感到失望。 声明称,“Apple 高度重视创新,我们的团队孜孜不倦地致力于创造新技术和产品功能,以使客户满意。此案已经进行了8年。 Siri不包含其专利包括的特征,该专利与游戏和即时消息有关。我们对小i机器人提起再一个诉讼感到失望。经最高人民
[机器人]
电源技术中I2C及PM Bus总线
随着IT技术对工业 电源 技术的渗透,数字工业 电源 技术应运而生,由于数字工业电源的 控制 灵活、结构变化灵活、调节、维护方便和造价低的一系列优点,代表了工业电源技术的发展方向。而在数字工业电源中, 总线 技术发挥了很重要的作用,本文结合数字工业电源中常用的 总线 技术加以介绍。 2 I2C总线 I2C总线是英文“Inter Integrated CIRCUIT Bus”的缩写,常译为“集成 电路 间总线”或“内部集成 电路 总线”。I2C总线以它强大的控制能力和精巧的电路结构,得到各生产厂家的认可。目前,I2C总线在许多 电子 产品中得到了广泛应用。 I2C总线 接口 的有关技术指标最早在1982年确定。PHILI
[电源管理]
I2C总线与串口
I2C总线与串口 I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL.在 I2C总线上传送的一个数据字节由八位组成.总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位.数据传送首先传送最高位(MSB).首先由主机发出启动信号“S”(SDA在SCL高电平期间由高电平跳变为低电平),然后由主机发送一个字节的数据.启动信号后的第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读).被寻址到的从机设备按传送方向位设置为对应工作方式.标准I2C总线的设备都有一个七位地址,所有连接在I2C总线上的设备都接收启动信号后的第一个字节
[单片机]
C51编程6-双向I/O与准双向I/O
通过前面的输入输出的内容(LED控制与按键的使用),我们对控制I/O口有了一个基本的了解。如果需要输出高低电平,可以对该引脚进行写 1 或者 0 ;如果需要读取I/O的电平,直接判断该引脚是高电平或者低电平既可。 在程序上对P0~P3的输入输出控制是一样的,但实际上它们内部结构是不一样的,下面是P0~P3的内部结构图。 双向I/O与准双向I/O 从P0~P3的内部结构图可以看出,P0口内部没有上拉电阻。当用作I/O口时,CONTROL输出为0,ADDRDATA部分不起作用,P0口为开漏(Open Drain)如下图红色部分不需要考虑。 而P1~P3口均有输出引脚均有上拉( internal pull-up),以P
[单片机]
C51编程6-双向<font color='red'>I</font>/<font color='red'>O</font><font color='red'>口</font>与准双向<font color='red'>I</font>/<font color='red'>O</font><font color='red'>口</font>
TLC5620I与TMS320F2812接口设计与应用
   1 引言   近年来,数字信号处理器的应用越来越广泛,数字信号处理器并非只局限于音视频层面,它广泛的应用于通信与信息系统、信号与信息处理、自动控制、雷达、军事、航空航天、医疗、家用电器等许多领域。以往是采用通用的微处理器来完成大量数字信号处理运算,速度较慢,难以满足实际需要;而同时使用位片式微处理器和快速并联乘法器,曾经是实现数字信号处理的有效途径,但此方法器件较多,逻辑设计和程序设计复杂,耗电较大,价格昂贵。数字信号处理器DSP的出现,很好的解决了上述问题。DSP可以快速的实现对信号的采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。    2 TMS320F2812的SPI工作原理
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved