APP下载

TMS320F28335的I2C总线与ADS1115的通信设计※

2016-02-26姬占涛毛惠丰

单片机与嵌入式系统应用 2016年1期
关键词:低电平高电平字节

姬占涛,毛惠丰

(西安工程大学 电子信息学院,西安710048)



TMS320F28335的I2C总线与ADS1115的通信设计※

姬占涛,毛惠丰

(西安工程大学 电子信息学院,西安710048)

摘要:简单介绍了TMS320F28335的外设I2C总线的通信协议,详细描述了ADS1115芯片的工作原理及TMS320F28335外设I2C总线与ADS1115通信的驱动程序,并利用芯片ADS1115实现了循环采集4路模拟量,且最终获得的实验结果在允许的范围内,验证了数据传输的格式跟I2C的协议是一致的。

关键词:TMS320F28335;ADS1115;I2C总线

引言

在A/D转换的应用中,一般利用两种方式:一种是MCU与被采样信号之间存在隔离;另一种是MCU与被采集信号之间不存在隔离。在应用中,为了防止干扰,引入隔离电路。而隔离电路又分为两种:一种是模拟信号先被隔离以后,然后再进行A/D转换;另一种为模拟信号先进行A/D转换,然后再把数字信号进行隔离。为了节约成本,此文用的是数字隔离,引用了芯片ADUM1250来实现隔离。

考虑到DSP集成的I2C总线模块与要被隔离的采样信号,本文以TMS320F28335的外设I2C总线与ADS1115通信为例,详细分析了I2C总线的通信协议,并利用实验验证了I2C通信协议,同时利用ADS1115实现了A/D转换。

1TMS320F28335浮点控制器

TI公司的TMS320F28335是一款浮点控制器,本文以TMS320F28335为例,利用开发软件CCS3.3来编写ADS1115的驱动程序。ADS1115与TMS320F28335的连接如图1所示。

图1 ADS1115与TMS320F28335的连接

2I2C总线

I2C模块是进行通信的串行接口,可以驱动EEPROM和A/D转换器。

2.1I2C总线总体特征

SDA和SCL是I2C总线的数据线和时钟线,I2C总线在驱动ADS1115的过程中,SCL时钟线是由主机控制的,而SDA数据的高低电平可以由主机控制,也可以由从机控制。

2.2I2C时钟

I2C时钟线的高低电平持续时间是由模块时钟、I2CCLKH高电平分频寄存器和I2CCLKL低电平分频寄存器、分频延时值决定的。而模块时钟是由系统时钟SYSCLKOUT、I2C分频寄存器(I2CPSC)来决定的。模块时钟的工作范围为7~12 MHz,模块时钟的计算公式如下:

SCL的低电平对应的时间和高电平对应的时间如图2所示。ICCH表示SCL的高电平对应时间,ICCL表示SCL的低电平对应时间。

图2 SCL时钟的高低电平时间

其中,I2CCLKH为高电平分频寄存器,I2CPSC为I2C分频寄存器,I2CCLKL为低电平分频寄存器,d为分频延时值,判定如表1所列。

表1 I2C分频延时值判定表

IPSC为预分步寄存器此处配置的模块时钟为10 MHz, SCL的低和高电平维持时间分别为1 μs、1.5 μs。

2.3I2C总线数据格式

一次典型的总线传输依次包含:开始条件、地址、数据流、停止条件,而具体的操作要针对寄存器。

开始条件与停止条件的表示是在SCL的高电平范围内,而何时产生开始条件与停止条件要根据参考手册自己设置。开始条件和停止条件的产生与模式寄存器I2CMOD的配置相关,此处配置成起始条件、从地址、n个数据字节、停止条件的格式。

地址则包括7位的地址格式与10位的地址格式,此处选择7位地址格式,地址的某一位变化是在SCL的低电平范围内进行的;数据传输格式中SDA的数据改变是在SCL的低电平范围内变化的;数据流其中的某一帧配置的是传输8位数据字节,传输完8位数据字节后,会自动产生一个应答位ACK。ACK应答信号是在一个字节传送完毕之后,从机发送一个应答信号,表示从机已经接收了一个字节,主机可以继续发送。

此外,还有一个非应答信号NACK,一个作用是主机作为接收端,接收完一定字节后主机发送一个NACK信号,表示已经接收完毕;另一个作用就是主机作为发送端,利用NACK产生中断。

图3简单地画出了SCL在高低电平范围内SDA数据变化的示意图。数据开始传输的条件对应的是SCL在高电平的范围内SDA由高电平变成低电平,数据结束传输的条件对应的是SCL在高电平的范围内SDA由低电平变成高电平,而地址和数据流某一个位的电平的变化是在SCL的低电平范围内进行的。

图3 I2C总线的数据传输

2.4中断方式

此处用的中断方式为检测到停止条件中断、接收FIFO中断、定时中断。

检测到停止条件中断,意思是指主机每次发完一定字节后,产生一个停止条件中断,这个中断判断规定个数的数据是否发送完,因此用到分段发送的分时数据比较好。

接收FIFO中断,表示接收到规定个数的数据时产生一个FIFO中断,这个中断用到判断接收数据是否接收完。

定时中断是指定时时间一到便进行读取转换的数据,因为转换寄存器的数据转换需要转换时间,因此要设定一定的时间读取转换数据。

3ADS1115的工作原理

ADS1115是一种超小型、低功耗、内部参考的16位数字转换器,数据传输是通过I2C总线兼容的串行接口实现;可以被配置成4个I2C从地址,也就是I2C总线可以操作4片ADS1115;其工作电源可以是2.0~5.5 V;芯片的转换操作的最高采样速率是860 sps;可以辨别的最小模拟量为256 mV;可以实现两路差分输入和4路单端输入,可以工作在连续方式或单触发方式。ADS1115外围接口如图4所示。

图4 ADS1115外围接口

通过配置寄存器来使AIN0~AIN3实现两路差分输入与4路单端输入,通过ADDR PIN来选择芯片,可以配置芯片的地址来控制4片ADS1115。其中,ADDR PIN引脚接地,表示此时ADS1115的从地址为0x48。

通过寄存器的地址可以选中被访问的寄存器,然后根据需要对寄存器进行读写。

3ADUM1250

为了更好地消除干扰,用ADUM1250芯片来实现数字信号隔离。

图5的上拉电阻的大小与传输速率有关,电阻阻值在一定范围内,传输速率越大,上拉电阻越小,传输速率越低,上拉电阻越大。为了能比较清楚地表示SCL与SDA的高低电平,选择上拉电阻为1.1 kΩ。

图5 ADUM1250外围电路

4DSP主程序设计

要发送的数据1为0x01(指向配置寄存器);控制字0x40、0xe3表示单端输入、转换模式为连续模式;要发送的数据2为0x00(指向转换寄存器);检测到停止条件指的是每次通过DSP对ADS1115写完发送的数据之后产生的中断条件;发送完标志的设定状态指的是把规定的要发送的数据发送完后会产生一个设定的状态。这个状态一到,开始往下执行即开始定时。

图6 流程图

图6(a)为读取一路ADS1115的流程图。FOR循环为整个大的循环,写控制字、读转换寄存器的操作都在FOR循环中,并可设置中间变量来实现软硬件结合。

图6(b)为具体写操作,要想实现TMS320F28335的外设I2C总线与ADS1115通信,首先要做的就是发送数据1(根据手册写控制字,即先写ADS1115的地址,地址匹配好以后,写配置寄存器的地址,接着写配置寄存器的高低字节,此处要根据手册看想要达到的目的,来提炼要写的控制字);然后发送数据2(写ADS1115的地址,接着写转换寄存器的地址);在定时到以后,写转换寄存器的地址,读转换寄存器的结果。

在完成读第1路的模拟电压的前提下,循环读取4路模拟电压,这4路模拟电压的读取要顺序执行,读取完一路后再读下一路,不能一起读4路。

I2C初始化程序如下:

void I2CA_Init(void){

I2caRegs.I2CSAR = 0x0048;//ADS1115地址

I2caRegs.I2CPSC.all = 14;//模块时钟设置为150M/15=10M

I2caRegs.I2CCLKL = 10;// I2CCLKL低电平分频寄存器

I2caRegs.I2CCLKH = 5;// I2CCLKH高电平分频寄存器

I2caRegs.I2CIER.all = 0x28;

//使能停止条件中断和接收数据准备好中断

I2caRegs.I2CMDR.all = 0x0020;

//8位数据字节,7位地址,计数器决定发送接收字节数;

//I2C为主,开始条件和停止条件的输出方式

I2caRegs.I2CFFTX.all = 0x6000;

//使能I2C FIFO,使能发送FIFO

I2caRegs.I2CFFRX.all = 0x2260;

//使能I2C FIFO,使能接收FIFO,接收FIFO包含2个字节,

//接收完2个字节后产生接收FIFO中断

}

Uint16 I2CA_WriteData(struct I2CMSG *msg){

Uint16 i;

I2caRegs.I2CSAR = 0x0048;//从地址

I2caRegs.I2CCNT = msg->NumOfBytes;

//发送字节的数量

for (i=0; iNumOfBytes; i++){

I2caRegs.I2CDXR = *(msg->MsgBuffer+i);

//要发送的字节

}

I2caRegs.I2CMDR.all = 0x6E20;

//I2C为主设备,I2C发数据,7位地址格式,8位数据字节,

//规定数量的字节数发送完产生停止条件

}

Uint16 I2CA_ReadData(struct I2CMSG *msg){

I2caRegs.I2CSAR =0x0048;//从地址

I2caRegs.I2CCNT = msg->NumOfBytes;

//接收字节的数量

I2caRegs.I2CMDR.all = 0x2C20;

// I2C为主设备,I2C接收数据,7位地址格式,8位数据字节,

//规定数量的字节数接收完产生停止条件

}

5实验结果

图7为要发送的数据1。第1个字节代表0x48的地址(前7位表示地址,第8位表示读写位,低电平表示写操作),后边为配置寄存器的地址0x01,配置寄存器的控制字为0x40、0xe3(表示单端输入,转换模式为连续模式)。

图7 数据1写控制字

图8为发送的数据2。第1个字节代表0x48的地址(前7位表示地址,第8位表示读写位,低电平表示写操作),后面为转换寄存器的地址0x00。

图8 数据2写控制字

从图7、图8中可以看出,SLC在高电平的时候,SDA发生了一个电平变化,即高电平变换成低电平,此为开始条件。同时,SLC在高电平的时候,SDA从低电平变换成高电平,此为停止条件。在开始条件和停止条件数据传输的过程中,SDA在SCL的低电平范围内变化。同时,可以发现,主机在传输完1个字节后,从机会发出一个应答信号ACK,将SDA信号拉低,变成低电平,其实这表示从机做了应答,可以继续发送数据。最后可以看到传输完规定的字节后,会产生一个停止条件。 转换寄存器的数字量略——编者注。

结语

本文利用TMS320F28335的外设I2C模块与ADS1115通信实现了单路模拟信号的采集,并延伸到4路模拟信号的循环采集,且最终获得的实验结果在允许的范围内。同时,根据实验结果验证了数据传输的格式与I2C总线的协议是一致的。

参考文献

[1] TI.TMS320F28335,TMS320F28334,TMS320 F28332,TMS320F28235,TMS320F28234,TMS 320F28232数字信号控制器 (DSC) [EB/OL].[2015-08].http://www.ti.com.cn/cn/lit/ds/symlink/tms320f28332.pdf?keyMatch=tms 320f28335 &tisearch=Search-CN-TechDocs.

[2] TI.TMS320x2833x, 2823x Inter-Integrated Circuit(I2C) Module [EB/OL].[2015-08].http://www.ti.com.cn/cn/lit/ug/sprug03b/sprug03b.pdf.

[3] TI.具有内部基准的超小型、低功耗、16位A/D转换器ADS1115 [EB/OL].[2015-08].http://www.ti.com.cn/cn/lit/ds/symlink/ads 1115.pdf?keyMatch=ADS1115&tisearch=Search-CN-TechDocs.

[4] 刘陵顺,高艳丽,张树团,等.TMS320F28335 DSP 原理及开发编程[M] .北京:北京航空航天大学出版社,2011:408-419.

姬占涛(研究生),研究方向为数字PWM控制的DC/DC变换器;毛惠丰(讲师),研究方向为现代电力电子变换与电力传动技术、伺服系统。

ST加快物联网产品创新速度

意法半导体(STMicroelectronics,简称ST)宣布,旗下STM32系列ARM Cortex-M微控制器及市场领先的传感器、通信接口和电源管理产品支持ARM mbed IoT产品平台及最新版ARM mbed操作系统。STM32微控制器的开放式开发环境已十分强大,现在mbed平台又为该环境带来一个标准的操作系统、云端服务及协助创新企业研发新物联网应用的开发工具。

作为有能力提供物联网应用全部关键产品技术的半导体公司,意法半导体的产品技术包括:STM32系列微控制器拥有灵活广泛的运算能力,从超低功耗性能到超高运算性能一应俱全;提供运动、声音、近距离或环境检测等各类传感器;可安全连接其他智能装置,包括Bluetooth Smart、低于1 GHz的低功耗SPIRIT1及其他射频(RF)技术;各类电源管理芯片不但可最大限度延长电池续航时间,还可利用新能源再生技术;缩短模拟电路与数字电路之间的信号处理技术落差。

Communication of I2C Bus and ADS1115 Based on TMS320F28335※

Ji Zhantao,Mao Huifeng

(School of Electronic Information,Xi’an Polytechnic University,Xi’an 710048,China)

Abstract:This paper briefly introduces the communication protocol of TMS320F28335 peripheral I2C bus.The principle of the ADS1115 chip and the TMS320F28335 peripheral I2C bus with ADS1115 communication driver are described in detail.The design uses ADS1115 to achieve a cycle collection of 4 analog quantity.The experiment results show that the data transmission format is consistent with the agreement within the range allowed.

Key words:TMS320F28335;ADS1115;I2C bus

收稿日期:(责任编辑:杨迪娜2015-08-20)

中图分类号:TP29

文献标识码:A

猜你喜欢

低电平高电平字节
数字电路中“逻辑非”的用法辨析
一种基于FPGA的PWM防错输出控制电路
No.8 字节跳动将推出独立出口电商APP
铁道车辆高/低电平信号智能发生器设计
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
No.10 “字节跳动手机”要来了?
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
简谈MC7字节码
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析