用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

单片机与串行AD转换器TLC0834的接口设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:50:45
【本文由PB创新网为您整理】
摘要:TLC0834是TI公司生产的八位逐次逼近模数转换器,具有输入可配置的多通道多路器和串行输入方式。文中以AT89C51 CPU为核心,采用LTC0834八位串行A/D转换器设计了一个可将模拟信号转换为数字信号的电路。

    关键词:单片机 A/D转换器 TLC0834

单片机控制系统通常要用到A/D转换。根据输出的信号格式,比较常用的A/D转换方式可分为并行A/D和串行A/D。并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,在PCB板上占用的空间也小,但需要软件处理才能得到所需要的数据。

图1 TLC0834的工作时序图

1 TLC0834简介

1.1 TLC0834的主要特点

TLC0834是TI公司生产的8位逐次逼近模数转换器具有输入可配置的多通道多路器和串形输入输出方式。其多路器可由软件配置为单端或差分输入,也可以配置为伪差分输入。另外,其输入基准电压大小可以调整。在全8位分辨率下,它允许任意小的模拟电压编码间隔。由于TLC0834采用的是串行输入结构,因此封装体积小,可节省51系列单片机I/O资源,价格也较适中。其主要特点如下:

● 8位分辨率;javascript:window.open(this.src);" style="cursor:pointer;"/>

● 易于和微处理器接口或独立使用;

● 可满量程工作;

● 可用地址逻辑多路器选通4输入通道;

● 单5V供电,输入范围为0~5V;

● 输入和输出与TTL、CMOS电平兼容;

● 时钟频率为250kHz时,其转换时间为32μs;

● 可以和美国国家半导体公司的ADC0834和ADC0838进行替换,但它内部不带齐纳稳压器网络;

● 总调整误差为±1LSB。

1.2 工作特点

TLC0834可通过和控制处理器相连的串行数据链路来传送控制命令,因而可用软件对通道进行选择和输入端进行配置,其控制逻辑表如表1所列。

表1 TLC0834多路器的控制逻辑表

多路器地址通  道  号
SGL/DIFODD/EVENSELECT BIT1

CH0 CH1 CH2 CH3

L
L
H
H
L
H
L
H
L
H
L
H
    +    -
             +   -
    +    -
             -   +
H
H
H
H
L
L
H
H
L
H
L
H
    +
             +
         +
                 +

输入配置可在多路器寻址时序中进行。多路器地址可通过DI端移入转换器。多路器地址选择模拟输入通道可决定输入是单端输入还是差分输入。当输入是差分时,应分配输入通道的极性,并应将差分输入分配到相邻的输入通道对中。例如通道0和通道1可被选为一对差分输入。另外,在选择差分输入方式时,极性也可以选择。一对输入通道的两个输入端的任何一个都可以作为正极或负极。

通常TLC0834在输出以最高位(MSB)开头的数据流后,会以最低位(LSB)开头重输出一遍(前面的数据流)。其工作时序如图1所示。

1.3 引脚功能

TLC0834的引脚排列如图2所示,其中CH0~CH3为模拟输入端; CS 为片选端;DI为串行数据输入,该端仅在多路器寻址时(MUX Settling Time)才被检测;DO为A/D转换结果的三态串行输出端;CLK为时钟;SARS为转换状态输出端,该端为高电平时,表示转换正在进行,为低电平则表示转换完成;REF为参考电压输入端;VCC为电源;DGTL GND为数字地,ANGL GND为模拟地。 

2 与单片机的接口电路设计

TLC0834与89C51单片机的硬件接口电路的电路原理如图3所示。图中,单片机的P1.7接TLC0834的片选信号, P1.6用于产生A/D转换的时钟, P1.5为一个双向I/O口位,可用于对模拟输入进行配置及输出转换所得的数据。在这里,模拟信号以单端方式输入,参考电压为5V,即A/D模拟量的输入范围为0~5V。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 单片机的软件设计

该系统在工作时,单片机将通过编程产生串行时钟,并按时序发送与接收数据位,以完成通道方式/通道数据的写入和转换结果的读出。篇幅有限,现以通道0单端输入模拟信号为例,给出A/D转换的程序:

CLR P1.6 ;清时钟

CLR P1.5

SETB P1.7 ;置片选为高

CLR P1.7 ;置片选为低

SETB P1.5 1 Start Bit

SETB P1.6

CLR P1.6

SETB P1.5 1

SETB P1.6

CLR P1.6

CLR P1.5 0

SETB P1.6

CLR P1.6

CLR P1.5 0 CH0

SETB P1.6

CLR P1.6 通道0,单端输入

SETB P1.6

CLR P1.6

SETB P1.5 P1.5由输出状态改

为输入状态

LCALL ADCONV

···

···

···

ADCONV: MOV R0#08H

ADLOP0: MOV CP1.5 ;读转换结果

RLC A ;累加器A左移,将结果

逐位移入A中

STEB P1.6

CLR P1.6

DJNZ R0ADLOP0

MOV R0#07H

ADLOP1: SETB P1.6

CLR P1.6

DJNZ R0ADLOP1

SETB P1.6

CLR P1.6

SETB P1.6

CLR P1.6

SETB P1.7 ;置片选信号为高,

结束一次转换

RET

转换结果经换算后可转换为十进制数显示出来。如在精度要求较高的场合,可以选用位数更多的串行A/D并取高位数据。限于篇幅,该部分程序本文不作介绍。

 4 结论

本文给出的硬件和软件均经实践检验,并已在某公司的产品上应用,其性价比较高,可大大降低生产成本。



Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:7,828.12500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号