基于DSP 280025C的IIC通讯

目录

1、引言

2、IIC介绍

3、IIC原理及功能介绍

3.1IIC工作原理

3.2 IIC模块启动和停止条件

3.3时钟与仲裁

4、例程与总结


1、引言

最近做了一个温湿度传感器,选用温湿度传感器与原来传统用的电阻采样不同,厂家对采样进行了集成(真的只有三分之一小拇指指甲盖大小),并且以I2C的形式将温湿度信号传出。并且公司为了统一平台,选用了TI公司的280025C的芯片,以便所有产品统一化管理,没有办法,自己搞吧,先自己搭建了个简易测试板(芯片太小焊接的时候费死劲了,如果再选我肯定推荐大家不使这种太小的),现在就把整个学习IIC的经验跟各位博友做一个简单分析,希望能帮助大家。

2、IIC介绍

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。只需要两根线就能实现正常的收发数据,一根是数据线SDA,另一根是时钟线SCL。但是不适合长距离数据传输。

IIC总线模块的主要特征如下:

1)与飞利浦半导体的I2C母线标准兼容

2)支持8位格式数据传输

3)7位和10位可设地址模式

4)通用的播叫功能

5)START字节模式

6)支持多个主发送器和从接收器(此处还有人跟我抬杠,多发送器是一个竞争仲裁模式,换句话说就是看谁跑的快谁就可以当主)

7)支持多个从发送器和主接收器

8)具有主发送/接收和接收/发送模式

9)数据传输速率从10kbps到400kbps(根据所需时钟自行配置)

10)一个16位接收FIFO和一个16位传输FIFO

11)一个专用的IIC中断,中断源如下:发送数据准备好,接收数据准备好,寄存器访问准备好,没有响应接收,仲裁丢失,检测到停止条件,作为从设备寻址

12)当工作在FIFO模式,CPU可以使用另一个附件中断

13)可以使能/禁止I2C模块

14)自由数据格式模式

3、IIC原理及功能介绍

3.1IIC工作原理

SDA和SCL引脚都可以双向传出信号,在使用时都必须通过一个上拉电阻给其加正电压。当总线空闲时,两引脚均为高电平,且都采用漏极开路(经常说的“开漏”,但是TI官方给的例程配置为上拉输出模式,一直想不明白)配置以实现线与操作。在时钟信号为高电平的过程中,SDA数据必须保持稳定。只有在SCL的时钟信号为低电平时才能改变SDA数据信号的高/低电平状态,即只有时钟SCL高电平时, 数据SDA读取才有效。这样实现了SDA数据在什么时候是0什么时候是1,什么时候有效什么时候无效。

3.2 IIC模块启动和停止条件

如下所示,当模块配置为I2C总线的主模块时,由I2C模块产生启动(START)与停止(STOP)信号。START条件定义为当SCL为高电平时,SDA信号由高电平换为低电平的过程。主模块输出START条件表示数据传输开始。STOP条件定义为当SCL为高电平时,SDA信号由低电平转换为高电平的过程。主模块输出STOP条件表示数据传输结束。

如下图所示为IIC总线的7位地址数据传输格式,数据线SDA上每一位与SCL上的一个脉冲对应,且发送过程总是先发送最高有效位。传输或接收数据个数没有限制。

 7位数据格式中,START信号之后的第一个字节包含7位从地址和1位R/W位,R/W位=0,主模块写数据到从地址模块。R/W位=1主模块由从模块读取数据。 第一个字节后为一个ACK位(响应信号),如果主模块发送完第一个字节后从模块发送一个响应信号,则根据R/W位状态,决定是主模块写数据到从模块还是从模块发送数据到主模块。数据位数可自由设置,发送完成再有一个接收器ACK位。

3.3时钟与仲裁

在通常情况下,只有一个主设备产生时钟信号SCL,而仲裁时可以有2个或多个主设备。为了使输出数据具有比较性,时钟必须保持同步。SCL的线与功能决定着一旦有一个设备在SCL产生低电平信号,则总线就被强制为低电平(我理解这也是为什么用开漏输出的原因)。在这个由高电平到低电平的过程中,其他设备包括总线产生的时钟强制被拉成低电平,并且只要有设备的时钟信号位低则SCL一直保持低电平。只有总线的SCL低电平状态结束,其他设备时钟的低电平状态才能结束。

 如果两个或多个主发送器要同时向同一个总线发送数据,就需要启动仲裁程序。进而决定如何选取串行数据总线上的数据。如下图所示,一个主发送器将SDA置高电平,被另一个将SDA置低电平的主发送器控制。也就是说,传输得二进制数据流值小,该设备就具有优先权,如果两个或多个设备发送的数据首字节相等,则仲裁结果根据后面的数据字节决定。

4、例程与总结

程序就不再上传了,官网例程可自行研究,至于想用GPIO模拟IIC的,想借鉴IIC温度传感器采样及SCI串口通信的,可留言或私信,一并发给各位。

自学CCS及TI的TMS28系列芯片有意思也有苦恼,过程比较坎坷,最好自己搭建一个最小系统板,然后再增加外设一点点搞起,多看书,多动手,多思考,多做笔记。相信明天会更好

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值