软件中另一个需考虑的问题是ADC中各种不同模块的建立时间。调制器、sinc3滤波器和基准带隙缓冲器都存在建立时间。通过在程序的开始阶段启动ADC,并允许其连续运行,可以使这些建立时间只出现一次。软件实例中包含一个大约1s的软件循环延时(基于8MHz时钟),可以减慢程序循环以及随后的显示刷新操作。ADC启动之后也加入了这一延时,从而给各模块提供了建立时间。当然这一延时比所需要的建立时间长的多(具体规格参见MAXQ3120数据资料),采用这种代码延时只是为了实现更加简单。
MAXQ3120包含一个可以在一个时钟内实现16位 x 16位字MAC功能的硬件模块。该性能可与许多数字信号处理器相媲美,使得MAXQ3120能够快速执行数学计算。本应用不需要快速数学计算功能,但MAC帮助计算ADC输出的平均值,以平滑输出结果并使显示的数值变化更缓慢一些。为了得到这个平均值,一个乘数取为1,将16个16位转换结果传送给MAC。这16个数据字的总和存放在累加器中。在完成求和运算后,该结果除以16 (移位和相加)来计算平均值。这个平均值送到LCD上进行显示。有关MAC性能的详细说明参见MAXQ微控制器用户指南。
实例代码
和本应用笔记配套的软件包含在ADC_Polled.zip文件中,可以进行下载。该文件包括:源代码文件ADC_Polled.asm,My3120kit_lcd.asm,maxq_math.asm;包含文件maxq3120x.inc;以及MAX-IDE工程文件ADC_Polled.prj。将这些文件解压到一个公用目录下,对该软件进行汇编并在MAXQ3120评估板上执行。
给MAXQ3120的ADC输入施加一个变化的电压,然后观察LCD上的显示结果,该应用非常有用并能提供更多的信息。用一个定值电阻和一个电位器可产生范围合适的可变电压。该电路的元件连接原理图见图2。MAXQ3120评估板在DB-9串行连接器附近提供了一小块原型区域。原型区域边沿还具有连接AVCC和AGND走线的过孔。加入这一简单电路后,可在模拟通道0输入端(AN0+)施加0至0.823V电压(最大值接近1V)。如原理图所示,AN0-输入接AGND,以提供一个参考电平。
图2. 产生ADC输入的分压器电路原理图
结束语
MAXQ3120微控制器包括一个双通道、16位Σ-Δ ADC,可用于所有需要高精度模数转换的系统中。该应用笔记讲述了工作在轮询模式下时需要考虑的一些ADC特性。实例代码演示了如何在轮询模式下使用ADC。实例代码还演示了包括MAC硬件和直接LCD驱动性能在内的其他MAXQ3120特性。MAXQ3120评估板作为该软件的平台。通过加入由两个常见元件组成的电路,用户可将一个可变电压加到ADC输入端,并观察评估板上LCD的显示结果。