首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

哈工大DSP精品讲义!!!(连载)


第7章 模数转换(ADC)模块

7.1 模数转换(ADC)模块的特性

1.ADC模块的特性

(1)带有内部采样-保持电路10bit ADC模块

(2)375ns的转换时间。

(3)16个模拟输入通道,每8个通过一个8选1的模拟

多路转换开关。

(4)对16路模拟量进行“ 自动排序”。

(5)两个独立的8状态排序器 (SEQ1和SEQ2),可以独立工作在双排序器模式,或级联为16个状态排序 器模式(SEQ一级联模式)

(6)在给定的排序模式下,4个排序控制器决定通道


的转换顺序。

(7)16个存放结果的寄存器(RESULT0~RESULT15)

(8)有多个启动ADC转换的触发源如下:

软件立即启动

EVA事件管理器启动

EVB事件管理器启动 ADC 的SOC引脚启动

(9)EVA和EVB可分别独立地触发SEQ1和SEQ2(仅用于双排序器模式)

(10)有单独的预定标的采样/保持时间


2.ADC模块的寄存器

表7-1 (ADC)模块的寄存器

地址 寄存器 名称

70A0h ADCCTRL1 ADC控制寄存器1

70A1h ADCCTRL2 ADC控制寄存器2

70A2h MAXCONV 最大转换通道寄存器

70A3h CHSELSEQ1 通道选择排序控制寄存器1

70A4h CHSELSEQ2 通道选择排序控制寄存器2

70A5h CHSELSEQ3 通道选择排序控制寄存器3

70A6h CHSELSEQ4 通道选择排序控制寄存器4 70A7h AUTO_SEQ_SR 自动排序状态寄存器

地址                         寄存器                             名称   70A8h~70B7h       RESULT0~RESULT15  转换结果寄存                                                            器0~15   70B8h     CALIBRATION       校准寄存器
7.2   ADC转换模块概述   7.2.1   自动排序器的操作原理   2个8状态排序器SEQ1和SEQ2,也可级联成一个16状态         排序器SEQ。   状态:排序器可以执行的自动转换数目。   ADC模块能对一序列转换自动排序。转换结束后,结         果依次保存在RESULT0、RESULT1……中。   用户也可对同一通道进行多次采样,即“过采样”,得         到的采样结果比传统的单采样结果分辨率高。
为讲解方便,规定排序器的状态如下:  排序器SEQ1:CONV00-CON07  排序器SEQ2:CONV08-CON15  排序器SEQ: CONV00-CON15  转换触发特性:  SEQ1:软件、EVA、外部引脚,仲裁优先级高于SEQ2  SEQ2:软件、EVB,仲裁优先级低于SEQ1  SEQ: 软件、EVA、EVB、外部引脚,无仲裁优先级  为每个排序所选的模拟输入通道排序控制寄存器    (CHSELSEQn)的CONVnn位所定义。     CONVnn位为4位长,可指定16通道中的任何一个。

一次自动排序中完成的转换数为MAXCONVn+1。

例 使用SEQ1的双排序模式中的A/D转换。

假设SEQ1要完成7个通道的转换(通道2、3、2、3、6

、7和12经过自动排序后转换),则MAXCONV1的值应

该设置为6,且CHSELSEQn寄存器的设置如下: 位15-12 位11-8 位7-4 位3-0

70A3h 3 2 3 2 CHSELSEQ1

70A4h x 12 7 6 CHSELSEQ2

70A5h x x x x CHSELSEQ3

70A6h x x x x CHSELSEQ4

不中断的自动排序流程图如下:

一旦转换启动(SOC)触发器被排序器收到后,转换立即开始。SOC触发器载入在SEQCNTRn位。CHSELSEQn寄存器指定的通道已预先决定的顺序进行转换。每个转换结束后,SEQCNTRn位自动减少1。当SEQCNTRn达到0时,将根据ADCTRL1寄存器的连续运行(CONT RUN)位 状态,发生以下事情:

(1)如果CONT RUN位置1,转换排序自动再次启动(SEQCNTRn重载MAXCONV1中的初始值,且SEQ1状态被置于CONV00)。

在这种情况下,必须确保在下一次转换排序之前读取

结果寄存器。

在ADC模块向结果寄存器写入数据而用户却想从结果寄存器读取数据时,ADC的仲裁逻辑确保结果寄存器不会崩溃。

(2)如果CONT RUN位没有被置位,则排序会停留在过去的状态(例如CONV06),并且SEQCNTRn继续保持0值。

因为每次SEQCNTRn位达到0时,中断标志会被置1。如果需要,用户可使用ADCTRL2寄存器的RSTSEQn位,在中断服务程序(ISR)中手动复位排序器,以便下一


次转换启动时,SEQCNTRn位可以重载MAXCONV1的初始值,且SEQ1状态被设置为CONV00。

这一特性在排序器的启动/停止操作中很有用,本例也可用于SEQ2的级联的16状态排序器SEQ。

7.2.3 排序器的启动/停止模式

除不中断的自动排序模式外,任何一个排序器都可工作在启动/停止模式,在此模式,可实现和多个转换/启动触发器时间上同步。这种模式和上例基本相同,但是排序器完成一个转换序列之后,可以在没有复位到初始状态CONV00情况下,被重触发。因此当一个转换排序结束后,排序器停留在当前的转换状


态。

ADCTRL1寄存器的连续运行位必须设置为0(禁止)。

例 排序器的启动/停止操作

使用触发器1(下溢)启动3个自动转换(V1,V2,V3) 。

触发器1和触发器2时间间隔为25微妙,且由事件管理器A提供,如下图所示。本例只用了SEQ1。

注意:触发器1和2可以是事件管理器A(EVA)的转换启动(SOC)信号、外部引脚或软件。相同的触发器信号源要产生两次,以满足本实例双触发器的要求。

在这种情况下,MAX CONV1的值被设置为2,并且ADC模块的输入通道选择排序控制寄存器(CHSELSEQn)应置1。如表7-4所示。

表7-4

位15-12 位11-8 位7-4 位3-0

70A3h V3 I3 I2 I1 CHSELSEQ1

70A4h x x V2 V1 CHSELSEQ2

70A5h x x x x CHSELSEQ3

70A6h x x x x CHSELSEQ4

复位和初始化之后,SEQ1等待一个触发源信号。第一个触发源到来之后,执行通道选择值为CONV00(I1 )、CONV01(I2 )和CONV02(I3 )的3个转换,然后,SEQ1在当前状态等待另一个触发源信号。当第二个触发


源到来后25为微秒,ADC模块开始另外3个转换,通道选择值为CONV03(V1)、CONV04(V2)和CONV05(V3)。

在两种触发源的情况下,MAX CONV1的值被自动装入到SEQ CNTV1中。如果第二个触发源信号到来时,要求转换的数目和第一个触发源时不一样,则用户必须(在第二个触发源到来之前)通过软件改变MAX CONV1的值,否则重新使用当前的MAX CONV1的值(初始载入的),改变MAX CONV1的值可以在适当的时候由中 断服务程序(ISR)来完成。

在第2个自动转换完成店,ADC的结果寄存器的值如表7- 5所示。


表7-5 ADC的结果寄存器的值

缓冲寄存器 ADC的结果

RESULT0 I1

RESULT1 I2

RESULT2 I3

RESULT3 V1

RESULT4 V2

RESULT5 V3

RESULT6-RESULT15 X

完成第二个触发源转换后,SEQ1在当前状态等待另一个触发源到来。用户可以通过软件复位SEQ1到CONV00,并重复同样的触发源1、2转换操作。

7.2.4 输入触发器描述

每一排序器都有一组能被使能或禁止的触发源。

7.2.5 排序转换期间的中断操作

排序器可以在两种工作方式下产生中断。

7.3 ADC时钟预定标

适应输入信号的阻抗的变化

7.4 ADC校准

校准模式可以计算ADC模块的零、中值和最大值的偏置误差。该偏置误差的二进制补码被载入CALBRATIO

返回列表