DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 119|回复: 0
打印 上一主题 下一主题

串行A/D转换器ADS1110及其在AT89C51单片机中的应用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:18:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1 引言
AT89C51单片机系统经常使用A/D转换器。虽然并行A/D转换器速度高、转换通道多,但其价格高,占用单片机接口资源比串行A/D转换器多。工业检测控制及智能化仪器仪表中经常采用串行A/D转换器。ADS1110是一种精密、可连续自校准的串行A/D转换器,带有差分输入和高达16位的分辨率,其串行接口为I2C总线。AT89C51单片机通过软件模拟I2C总线实现与ADS1110的连接。
2 ADS1110的特点与内部结构
2.1 ADS1110的特点
完整的数据采集系统和小型SOT23-6封装;片内基准电压:精度2.048 V+0.05%;片内可编程增益放大器PGA;片内振荡器;16位分辨率;可编程的转换速率15次/秒~240次/秒;I2C总线接口(8个有效地址);电源电压2.7 V~5.5 V;低电流消耗240 μA。
2.2 ADS1110的引脚功能
ADS1110串行A/D转换器采用6引脚贴片封装,其引脚排列如图1所示。VDD:电源端,通常接+5V;GND:模拟地和数字地;VIN+、VIN-:采样模拟信号输入端,其范围为2.048 V~2.048 V;SCL:I2C总线时钟线;SDA:I2C总线数据线。






2.3 ADS1110的内部结构
ADS1110是由带有可调增益的△-∑型转换器内核、2.048 V的电压基准、时钟振荡器和I2C总线接口组成。其内部结构如图2所示。





ADS1110的A/D转换器内核是由差分开关电容△-∑调节器和数字滤波器组成。调节器测量正模拟输入和负模拟输入的压差,并将其与基准电压相比较。数字滤波器接收高速数据流并输出代码,该代码是一个与输入电压成比例的数字,即A/D转换后的数据。
ADS1110片内电压基准是2.048 V。ADS1110只能采用内部电压基准该基准,不能测量,也不用于外部电路。ADS1110片内集成时钟振荡器用于驱动△-∑调节器和数字滤波器。ADS1110的信号输入端设有可编程增益放大器PGA,其输入阻抗在差分输入时的典型值为2.8 MΩ。
3 ADS1110的使用
3.1 I2C总线接口
ADS1110通过I2C总线(内部集成电路)接口通信,AT89C51单片机的2个I/O接口最多可挂接8个ADS1110,单片机对ADS1110的识别通过I2C地址实现。ADS1110只能作为从机。
ADS1110的I2C地址是1001aaa,其中aaa是出厂时默认设置。ADS1110有8种不同类型,每种类型都有不同的I2C地址。封装上,ADS1110的每种类型都以EDx为标识,其中x表示地址变量。
3.2寄存器
ADS1110含有输出寄存器和配置寄存器,可通过I2C端口进行访问。输出寄存器存储A/D转换结果,而配置寄存器用于设置ADS1110的工作方式,数据速率和可编程增益放大器,也可用于查询器件状态。
3.3 ADS1110的读写
3.3.1读操作
若从ADS1110中读取输出寄存器和配置寄存器的内容,需对ADS1110寻址。从ADS1110中读取3个字节,前2个字节是输出寄存器的内容,第3个字节是配置寄存器的内容。读操作时,只读前2个字节而不读第3个字节。ADS1110的读操作时序如图3所示。





3.3.2写操作
为了对配置寄存器写操作,要对ADS1110寻址,并向配置寄存器写入1个字节,但不能向输出寄存器写人字节。其写操作时序如图4所示。





4 ADS1110在AT89C51系统应用
4.1硬件设计
由于AT89C51单片机没有I2C总线接口,可通过软件模拟实现与I2C总线器件的连接。具体方法是将单片机的I/O接口连接至I2C的数据线SDA和时钟线SCL。通过软件控制时钟和数据传输,系统灵活性强。
图5所示是数据采集显示系统,采集工业现场的4路模拟信号并轮询显示。采用4个ADS1110作为A/D转换器,地址为ED0~ED3。具有I2C总线接口的EEPROM AT24C16作为存储器。本系统有4位LED数码显示管和4个参数设定按键。采集数据经数字滤波、16进制→工程值转换后,送至数码管轮询显示。ADS1110和AT24C16的I2C接口连ADSl110数据线SDA至单片机的P1.0,时钟线SCL连接单片机的P1.1,上拉电阻阻值选10 kΩ。





4.2软件设计
按照硬件电路,编写A/D转换子程序为ADS0,其中嵌套调用了START,为起始命令子程序,FSDZ1为向ADS1110发送单个字节命令的子程序,ADREAD是读取输出寄存器和配置寄存器的子程序,STOP是停止命令子程序。ADS0只对地址为ED0的ADS1110读数,如果要读取其他ADS1110,只需更改地址即可。系统中ADS1110的工作方式选用默认设置,即配置寄存器内容为#8CH,所以程序未向配置寄存器写入数据。程序代码如下:












5 结束语
ADS1110是一款高性价比具有I2C总线接口的串行A/D转换器。ADS1110已在单片机系统中应用,并用于现场。实践证明,ADS1110和单片机组成的数据采集系统,占用I/O端口少、功耗低,适用无电源场合。但需注意的是,因I2C总线为串行扩展总线,数据采集时不能用于实时速度要求较高的场合。

                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-12-24 20:49 , 耗时 0.092820 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表