设计指南 4194

利用MAXQ2000设计电压表


摘要 : 本应用笔记演示了如何配置MAXQ2000微控制器实现简单的电压表设计。该应用采用MAXQ2000评估板,其中包括4½位段式LCD显示器和MAX1407数据采集系统(DAS)以及一对外部电阻。MAXQ2000电压表能够测量、显示0至10V之间的任意电压。

引言

本应用笔记说明了如何设置MAXQ2000评估板来设计简单的电压表。

评估板包含MAXQ2000-RAX微控制器,MAXQ2000不具有片内ADC,所以评估板安装了MAX1407数据采集系统(DAS),用于执行模拟到数字的转换。评估板已安装4½、段式LCD显示器。增加+5V电源和一条连接至PC的RS-232电缆,评估板即可提供完备的电压表功能,能够测量0至10V直流电压。

图1

简单的电压表设计

电压表应用固件包含在main.c file,可在文件an4194_sw.zip中找到,该文件可供下载。固件采用MAXQ2000的硬件SPI™接口与MAX1407 DAS通信。MAXQ2000将使用其硬件LCD控制器在评估板LCD上显示电压。

复位之后,MAXQ2000通过调用lcd_init()函数初始化板上LCD。然后拉低MAX1407 RESET数据线复位ADC,接着通过调用max1407_init()函数进行初始化。ADC完成初始化后,通过SPI接口发指令配置内部多路复用器,以便读取IN0引脚上的电压并进行校准。校准之后,发指令使MAX1407执行IN0数据线上的ADC转换,转换速率为每秒30次。

MAX1407的DRDY (数据就绪)数据线连接至MAXQ2000的P6.1输入。在MAX1407执行其ADC转换时,数据线为高电平。当转换数据就绪可供微控制器读取时,该数据线拉低。该转换数据是30次采样结果的平均值(在固件中),以使LCD显示值不会快速变化。

经过滤波的结果,即由MAX1407 DAS读到的分辨率为0.01V的电压,送至函数display_voltage()。例如,如果ADC读到的是7.89V,传递给display_voltage()函数的值将会是“789”。该函数在LCD上显示适当的整数,即显示小数点到右边100位的数字。如果该整数等于或大于MAX_DC_VOLTS,将显示错误信息“-E-”。

修改MAXQ2000评估板硬件

原始输入电压在连接至MAX1407 DAS的IN0输入之前必须进行调理,除以4。通过简单的电阻分压器(在电表的输入电压和IN0引脚之间接3.00kΩ 1%电阻、在IN0和地之间接1.00kΩ 1%电阻)进行调理。另外,也可利用运算放大器(例如TL084)缓冲,此时电阻分压器不会增大信号源负载。

如果IN0引脚电压可能超出+3.3V或低于地电位,应在IN0引脚和+3.3V电源与地之间分别连接肖特基二极管。

MAXQ2000-RAX评估板需要+5V ±5%供电,这种电源很容易获得。Radio Shack(s)库中型号为273-1696 (还需要一个273-1717适配器插头,以匹配评估板上的插座)。

用于MAXQ的IAR嵌入式平台(IAR Embedded Workbench®)

用于开发该应用程序IAR嵌入式平台可从Maxim网站下载。在PC机安装完毕后,选择File,然后选择Open Workspace ...,可以看到下列对话框:

图2

利用该对话框,可以找到存储该项目的硬盘位置。选择voltmeter.eww文件,点击Open按钮。注意:您可能会收到提示信息:“The project 'voltmeter' contains the unknown tool 'MAXQEMU'. A backup copy of the original file will be made before the project is loaded.” (‘电压表’项目含未知工具“MAXQEMU”。加载该项目之前,将对原始文件进行备份”) 。本应用笔记可以安全地忽略该项提示。

在IAR Embedded Workbench中,选择Project,然后选择Rebuild All,以创建电压表应用程序所需的源代码。编译时应该不出现错误和报警信息。

按照MAXQ2000评估板说明,使用带状线接头电缆将LCD显示模块连接到主评估板和MAXQJTAG模块。至此,3块评估电路板连接就绪,电源及RS-232电缆连接到PC机,选择Project,然后选择Debug。该操作将使目标代码装载到MAXQ2000,并准备运行。选择Debug,然后选择Go,开始运行电压表应用程序!如果没有任何显示结果,检查DIP开关SW3,确保所有开关处于“on”位置。

结论

本文提供了MAXQ2000微控制器及其评估板的一个简单应用,即电压表设计。该应用仅需要评估板、电阻分压器和外部电源即可实现。此电压表可以测量0至10V直流电压。