新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 16位高速A/D转换器在高速DSP处理器中的应用

16位高速A/D转换器在高速DSP处理器中的应用

——
作者:武汉高压研究所华电公司 武汉材料保护研究所 张蓬鹤 米德伟 时间:2007-01-26 来源:《END 电子设计技术》 收藏

由于dsp有先进的并行结构使其特别适合于信号处理,故已经越来越多的应用于工业控制领域和各类仪器仪表的开发设计。而在用数字信号微处理器构成的智能仪器仪表中,外部的各种模拟信号必须通过a/d转换器变换为数字信号后才能送入微处理器芯片。而bb公司的高精度转换器ads7805具有较高的性能价格比,最高的转换频率可达100khz,在仪器仪表中得到广泛的应用。
ads7805芯片有28脚双排直插式或贴片式封装,只需单端5v电源供电即可正常工作;芯片内部含有采样保持、电压基准和时钟等电路,极大简化用户的电路设计,同时提高了系统的稳定性。ads7805采用cmos工艺制造,功耗低(最大功耗为100mw),单通道输入,模拟输入电压的范围为±10v,采用逐次逼近式工作原理,转换结果由16位数据线并行输出,启动转换和读取上次转换的结果可以同时进行。

本文引用地址:https://www.eepw.com.cn/article/20998.htm

1、引脚及功能

ads7805共有28个引脚,图1为其引脚图。这些引脚大体可以划分为3类。

i. 电源类

数字电源vdig(28脚)和模拟电源vana(27脚)通常一起接到5v电源上;数字地dgnd(14脚)和模拟地agnd1(2脚)、agnd2(5脚)通常共地;参考电压端ref(3脚)对地接2.2μf钽电容,则芯片内部就会产生2.5v基准电压;参考电容端cap(4脚)对地接2.2μf钽电容。

ii.信号类


模拟信号输入端vin(1脚);d15~d8(6脚到13脚)与d7~d0(15脚到22脚)为数字信号并行输出口。

iii.控制信号类


片选信号输入端/cs(25脚);读取结果/模数转换控制信号输入端r/c(24脚);转换结果指示输出端/busy(26脚);控制从总线读出的数据是转换结果的高字节还是低字节信号输入端byte(23脚)。

2、 启动a/d转换和读取转换结果


美国bb公司生产的ads78xx系列a/d转换器的启动转换和读取转换结果的时序都比较特别,且大致相同,ads7805的转换时序图如图2所示。


首先要在r/c引脚输入一个低电平信号,此低电平信号的持续时间要求在40~7000ns之间;这时busy引脚电平被拉低表示正在进行转换,在经过了大约8μs(即为/busy信号保持低电平的时间)以后,转换完成,busy引脚电平相应变高;再把r/c脚电平拉高,此时ads7805就会将转换结果输出到数据总线上。虽然转换结果为16位,但对于具有16位数据总线的dsp微处理器而言,不必分两次读入,故可将byte脚从始至终同一信号电平,当byte脚为高电平时,pin6~13输出低字节,pin15~22输出高字节;反之当byte脚为低电平时,pin6~13输出高字节,pin6~13输出低字节。如果用/cs引脚来控制ads7805的转换,其时序同r/c引脚相似,故这里就不详细说明。ads7805转换得到的数字结果是以补码形式给出的,现给出其理想的数据转换表,表1所列即为ads7805的模拟电压与其补码形式的数字输出关系, -10v~9.99512v为量程

3、 与dsp的接口


ti公司的16-bit定点dsp tms320f206,是一种低功耗器件,采用了改进的哈佛结构,有1条程序总线和3条数据总线,流水线操作,有高度并行32-bit算术逻辑单元、16*16-bit并行硬件乘法器、片内存储器、片内外设和高度专业化的指令集。当tms320f206外接16mhz的晶振,工作时钟控制模式选为×1时,可以将ads7805的/cs脚接到dsp的/rd信号引脚,但为了减少控制线,可以将/cs引脚直接接成低电平,r/c引脚接到dsp的扩展输出口,而/busy信号只需连接到普通的端入端口即可,如dsp的io口、扩展芯片74ls244的输入口等。图3是一个ads7805与tms320f206的典型接口电路。

4、 c语言程序设计

tms320f206的用户可以用汇编语言或c语言进行源程序的编写,而c语言开发出的系统易于维护,可靠性高,可移植性好,故下面介绍用c语言编写的ads7805的开发程序。

源程序如下:

#include
#include
ioport unsigned int port90ac;
ioport unsigned int porte0f7;
#define ic273n port90ac
#define ads7805 porte0f7
#define wait asm(" nop ");
int i, ia[8]; double bv_coil,ia;
reg_aspcr=0x0e00; reg_iosr=0x0000;
asm( " clrc intm ");
ic273n=0x0008; wait;
for(i=0;i<=7;i++)
{ ic273n=0x0000;
while ((reg_iosr&0x0004)==0x0004)
{ if (adt> 2; return();)
ic273n=0x0008; wait;
ia[i]=(int)(ads7805&0xffff); }
ia=0; for (i=0;i<=7;i++)
{ if ia[i]<32767 pr[i]=((double)(ia[i]))*0.000305185;/*10/32767=0.000305185*/ else
pr[i]=((double)(ia[i]-65535))*0.000305185;
ia=ia+pr[i]*pr[i]; }
bv_coil = sqrt(ia/8);

5、 结束语

ads7805为16位的a/d转换器,它不仅分辨率高、转换速度快,而且接口简单方便、应用灵活,因而具有广泛的应用前景。笔者在gkndc-h型高压开关特性精密测量仪中就使用了ads7805,并取得了很好的测量效果。




关键词:

评论


相关推荐

技术专区

关闭