简介
微处理器内置了片上ADC模块,使用了新颖了基于序列的采样结构的设计。采用此设计可以将更多的便利让给设计师们,而且非常易于使用。本应用笔记详细描述 了ADC采样架构。本应用笔记详细讲述了使用固件库与直接操作寄存器两种方式来配置ADC模块。本应用笔记需要读者阅读器件手机关于adc相关章节,而对 库函数有一定的了解。
采样序列
大多数8位,16位,32位微处理器都集成了片上ADC,而且ADC模块在转换通道时都需要微处理器重新配置该通道参数。而stellaris微处理器的 序列架构的ADC模块允许程序员通过软件的简单配置就可以开启多达4个单独采样序列(包含全部的模拟输入通道)。
ADC模块一共有4个采样序列,单步触发事件允许1、4、8路模拟输入源(参见附件1图表1)。
每个采样序列均有其各自的配置寄存器集来使其不受其它采样序列的影响。在采样序列的每一个单步均是可以配置的,用户可以通过软件来选择模拟通道(包含片内 的温度采集器),单步采样或是差分采样,也可以配置在采样完成后是否触发中断。工程师们也可以通过配置来设备相应的优先级来解决同一触发源同时触发,或是 多路同时触发的问题。
采样序列的触发源可以多种。例如微处理器,定时器,模拟比较器,PWM单元或者GPIO口。当触发源为同一触发源时或者同时触发时,ADC采样依据所配置 的采样优先级来执行采样。当触发ADC采样,ADC模块将按照编程设计的速率依据采样序列一个一个重复执行采样步骤。采样过程只有在表示序列停止的END 位被置位时才会停止。END位可以在采样序列的任意执行步时被置位,也就是说,采样不需要等待全部执行完后才停止。当采样序列完成,采样值将会存储在采样 序列FIFO里,之后微处理器可以读取其值。
模块配置示例
示例假设采样过程如下图所示:
注意每个模拟通道是如何配置到采样序列的每一步的。由于采样通道只用了3个,因此,本例的采样序列使用4步采样序列模式。而温度采样只有一路且其使用了不 同的触发源,因此,我们使用采样序列3来单独处理。当然,如果温度采样也使用了定时器触发,我们也可以将其放入采样序列1里。
提示:
使用寄存器需要包含相当器件的头文件,而使用库函数需要包含hw_types.h。
ADC模块初始化
在复位之后,出于节能的目的,所有的外围设备的时钟均被禁用,因此,我们首先在使能ADC模块的时钟。开启外围设备的时钟还是非常简单的,只需要写入系统 控制模块的Run-Mode Clock Gating Control (RCGCx)寄存器。开启ADC时钟将RCGC0的16位置1.。
通过固函数来配置;
下篇将会提供TI的ADC采集代码实例。敬请期待。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。