微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 多通道模/数转换器AD7890与DSP的接口设计

多通道模/数转换器AD7890与DSP的接口设计

时间:01-16 来源:EDN 点击:
由于AD7890-10数据电平为5 V,而TMS320F2812的I/O所能承受的电压最高为3.3 V,因此必须对A/D转换结果进行电平转换,将其转换为I/0口可承受的电压。把5 V电平转为3.3 V电平有多种方法。常用的有两种。一是选用专门的电平转换器件,如TI公司的SN74I.VTHl6245;二是把A/D转换结果通过系统中CPLD的I/O口再输出到DSP,前提是所选CPLD可承受输入电压为5 V,而输出为3.3 V。本文采用后一种方法,选用的是Altera公司的EPM7128ST1100-10,给CPLD的I/O口供3.3 V电源即可满足要求。将A/D数据通过一个CPLD的一个I/O口转接,经软件进行逻辑处理后输出至DSP即可。需要注意的是,为避免噪声干扰,AD7890的所有未用引脚不能悬空,必须接可承受范围内的固定电平。实验表明,特别是CLKIN引脚不能悬空,否则可能导致A/D转换不能成功。对于AD7890-10,当未使用的输入通道电压值低于-12 V时会对所选其他通道的转换造成严重干扰。文中采取的方法是将外部时钟输入引脚SCLK与内部时钟输入引脚CLKIN相连,可以有效去除干扰。

4 软件读写实现

对于SPI接口而言,数据与串行时钟脉冲是同时产生的,即只有数据线上有数据传送时才产生时钟脉冲。所以发送控制数据结束后,DSP收到的数据并不是真实的A/D转换结果,但需要读取接收缓冲寄存器数据使SPI复位。多次实验表明,对于单次A/D转换,在转换结束后需要再向AD7890发送2次空控制数据0x0000,之后DSP的SPI接收缓冲寄存器中的数据才是正确的A/D转换结果,即每次A/D采样循环需要进行三次数据交换才能得到有效A/D转换数据。采用查询方式判断数据是否发送结束,即SPI状态寄存器SPIINT FLAG位为1时表示已完成数据发送。软件实现A/D转换的流程框图如图4所示。

对于AD7890-10,A/D转换结果数据为二进制补码格式,且包含通道数据,因此读取结果后应根据需要对数据进行适当处理,包括屏蔽通道选择数据和进行码制转换等,以便换算成系统所需要的数字量。为便于处理,将-10~+10 V电压对应的码值转换为0~4 096。文中处理方法为:将转换结果高四位通道数据屏蔽后,若A/D输入为正电压,则获取低12位结果与0x0800相加得到处理后的数据;若A/D输入为负电压,则将补码转换成原码后与0xF800作差获取处理结果。

经多次测试,得到A/D转换子程序运行时间(即一次A/D转换总耗时)与波特率对应关系如表1所示。

从表1中可以看出,为提高转换效率,应在可承受范围内选择尽可能高的波特率,但不应超过AD7890-10的上限值10 Mb/s。对文中SPI接口的实际应用表明,A/D转换性能非常稳定,效率较高,转换精度高,误差仅为±1码,约4.88 mV。

5 结 语

用DSP的串行外设接口SPI与串行多通道A/D转换器AD7890组成数字伺服系统A/D转换功能实现模块,能完成8个通道模拟量到数字量的转换,效率较高,接口简单,性能稳定。通过选择较高的波特率可以缩短数据传输时间,提高A/D转换效率。当DSP提供的外部时钟SCLK为AD7890所能承受的最高值10 MHz时,单个通道彻底完成一次A/D转换仅需12.4μs。本文所做的接口设计为多轴数字控制系统的A/D转换模块提供了一种实用的选择与参考。

编辑:博子

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top