保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

AD7715在精密分析仪器中的应用研究


)和模拟供电(AVDD、AGND)分开;VREF是基准电压,系统中使用2.39V精密电压。Signal_IN接多路开关(8选1)的输出,因为不需要转换差分信号,所以AIN-接模拟地。

2.3 调试和软件实现

AD7715的最高更新率可以达到500Hz,即理论上2ms可以完成1次A/D转换,但实际上如果考虑到通道切换的因素后,这个速率是不可能的。因为通道轮流切换后,A/D内部的信号需要重新建立,通道间信号差异越大,两次连续转换间误差也越大。这个问题在其它类型的ADC中也存在。有两种方法可以使AD7715在恒定的时间后获得正确的输出:一是使用设置寄存器中的FSYNC(同步)位,二是使用通信寄存器中的STBY(备用)位,我们采用后面一种方法。

另外一个问题就是串口数据,AD7715输出数据和接收命令都是高位在先,而51系列串口的数据时序是低位在先;所以不论是写8位的命令,还是读取16位的转换结果,数据要经过高低位的颠倒处理。

关于校准方式,一般采用自校准就够了,不是特殊情况一般不用进行系统标准。校准一定在有效的复位后进行,否则不能成功。

   

至于编程和调试,建议使用C语言,这已是潮流所趋。我们这个系统的工作方式类似于两个任务并发执行,每个通道最多一次要转换1800个数据供分析,用汇编来写程序是力不从心的。而对于AD7715的编程,一个好的调试工具是必须的,特别需要能观察时序的手段。图3~图5是逻辑分析仪采取的波形,分别是自校准时序、写命令时序和一次完整转换后读取16位结果的时序。

void initial_7715(){

SCON=0x00; /*串口写*/

initialize_ad(); /*初始化AD7715的通信口*/

writereg(0x10);/*下面写设置寄存器*/(写入时序见图4)

writereg(0x7c);/*自标定,2.4576MHz,500Hz更新率,单极性,非缓冲模式*/

while(!IN_PORT & 0x80)); /*等待自标定结束*/(图3中J3.3所示高电平时间)

while(IN_PORT & 0x80);

}

void writereg(UNCHAR bytepoint){

RUN=0; /*AD7715 CS=0*/

SBUF=exchange(bytepoint); /*字节首尾交换*/

while(!TI);

TI=0;RUN=1;

}

float readdata 16(){

UNCHAR temp1;

UNINT temp2;

writereg(0x04); /*进入stby方式,且下次写通信寄存器*/

writereg(0x38); /*退出standby方式,设置读操作,3/rate时间后出结果*/

while(!(IN_PORT & 0x80));

while(IN_PORT & 0x80); /*等待读时刻到来*/

RUN=

《AD7715在精密分析仪器中的应用研究(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/162408.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。