微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 采用CPLD的MAX1032采样控制的实现方法

采用CPLD的MAX1032采样控制的实现方法

时间:11-20 来源:互联网 点击:

图4所示是MAX1032的应用电路图。由于MAX1032只允许输入阻抗小于17 kΩ,而有的采样信号不一定能满足这一要求,故需要对采样信
号进行一定处理,以降低信号的输出阻抗。由于射极跟随器的输出阻抗趋于零,故将待采样信号连到射极跟随器上可以有效降低其输出阻抗。本文选用的运放为OP07,该运放具有很低的输入失调电压和漂移,而且精度相当高,适合作为模拟信号前置运放。如将OP07接成负反馈模式,使输出等于1+R1/R2,并将滑动变阻器R1调至0Ω,那么它就可以当做电压跟随器使用。

图4中,MAX1032的外部参考电压由LTC6652提供。LTC6652是高精度电位参考芯片,本文使用4.096 V作为MAX1032外部参考电压。REFCAP在此模式下可接到5 V电源。由于MAX1032是由CPLD控制,故将DVDDO连到3.3 V。

4 CPLD逻辑设计
CPLD和MAX1032的连接图如图5所示。其中,CPLD可以选用Ahera公司的MAXII系列器件EPM240或EPM570。

CPID的程序设计主要由两部分组成,第一部分是产生MAX1032的控制信号,第二部分是对MAX1032的输出结果进行处理。
clk_1MHZ为CPLD时钟,选1 MHz。通过CPLD可在内部对时钟进行分频,输出SCLK可作为MAX1032的输入时钟。DI由系统给CPLD输入,作用是选择MAX1032的控制字,同时也是CPLD的复位控制。DIN_out是给MAX1032加载的串行控制字,其加载时序可利用计数器控制。本例采用外部时钟模式,模拟输入配置字为10000110。第七位1是字开始标志;六到四位为0表示选择CH0通道输入,第三位为0表示采样信号单端输入;二到零位为110,表示量程选择0~12 V。模式控制字为10001000,第七位1是字开始标志,六到四位为0表示使用外部时钟模式。三到零位为100 0是芯片强制输入。加载完模拟输入配置字和模式控制字之后,就可以启动采样,以加载转换启动字开始采样。转换启动字为10000000时,第七位1是字开始标志,六到四位为0表示选择CH0通道输入,三到零位为0000是芯片强制输入。MAX1032控制协议和SPI类似,在SCLK的上跳沿输入,下跳沿输出。片选信号CSn时序利用计数器控制,每个控制字之间的CSn必须有一个高脉冲,脉宽至少40 ns(tCSPW),每个控制字输入完后,CSn可以立即拉高(tCSH)。以下是可综合的MAX1032控制程序的主要代码:



图6所示是Modelsim的仿真波形。SCLK上跳沿DIN_out的数据被MAX1032读取。

程序的第二部分的作用是将MAX1032输出的串行采样结果存入CPLD内部的一个14位寄存器。采样结果DOUT_in_S是14位的串行序列。CPLD在SCLK的上跳沿读取数据后,可将其存到一个内部寄存器,再由DOUT选择输出寄存器的高或低八位数据读出。最后的采样结果是并行输出的。总共2个字节,末两位数据无效。对于外部时钟模式,可从加载转换启动字开始计算,在第16个SCLK下跳沿,芯片将输入采样结果。得到结果即可按照公式(采样电压=12x(转换成十进制的输出结果)/16384)进行计算。以下是这部分功能的可综合代码:



图7所示是Moddsim仿真的CPLD读取MAX1032的采样结果并将其存入寄存器DOUT_P_buf的仿真图。由图可见,在启动采样后的第16个SCLK的下跳沿,MAX1032输出14位串行采样结果,CPLD将其存入内部寄存器中以待系统读取。一般在下一次采样之前,需要将CPLD复位来清除上一次采样的数据。由于外部时钟模式下的SSTRB始终为低,故本例没有对该信号进行处理。

5 结束语
本文介绍了利用CPLD控制MAX1032进行采样的实现方法,包括CPLD的内部逻辑设计和对采样信号的处理等。实验证明,该方法能够适用
需要使用CPLD控制外围电路的场合。

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

网站地图

Top