第 8 章: 模数转换模块 (ADC)

25
第8第 第第第第第第 (ADC) 8.1 ADC 第第第第 8.2 第第第第第第第第第第 8.3 ADC 第第第第第 8.4 ADC 第第第第第 8.5 ADC 第第第第第 8.6 ADC 第第第第第第

description

第 8 章: 模数转换模块 (ADC). 8.1 ADC 模块概述 8.2 自动排序器的工作原理 8.3 ADC 时钟预定标 8.4 ADC 的工作模式 8.5 ADC 模块寄存器 8.6 ADC 转换时钟周期. 8 .1 ADC 模块概述. ADC 模块的特性 10bitADC 内核,带有内置采样 - 保持电路。 375ns 的转换时间。 16 个模拟输入通道。 对 16 路模拟量进行“自动排序”。 2 个独立的 8 状态排序器( SEQ1 和 SEQ2 )-双排序器,或级联为 16 个状态排序器模式( SEQ )-单排序器。 - PowerPoint PPT Presentation

Transcript of 第 8 章: 模数转换模块 (ADC)

第 8 章: 模数转换模块 (ADC)

8.1 ADC 模块概述 8.2 自动排序器的工作原理 8.3 ADC 时钟预定标 8.4 ADC 的工作模式 8.5 ADC 模块寄存器 8.6 ADC 转换时钟周期

8.1 ADC模块概述ADC 模块的特性 10bitADC 内核,带有内置采样 - 保持电路。 375ns 的转换时间。 16 个模拟输入通道。 对 16 路模拟量进行“自动排序”。 2 个独立的 8 状态排序器( SEQ1和 SEQ2 )-双排序器

,或级联为 16 个状态排序器模式( SEQ )-单排序器。 在给定的排序模式下, 4 个排序控制器( CHSELSEQn )

决定模拟通道的转换顺序。 16 个存放结果的寄存器( RESULT0 RESULT15)∼ 。

8.1 ADC模块概述ADC 模块的特性(续) 有多个启动 ADC 转换的触发源如下:

软件启动 EVA 事件管理器启动(比较匹配、周期匹配、下溢、 CAP3 ) EVB 事件管理器启动(比较匹配、周期匹配、下溢、 CAP6 ) ADC的 SOC 引脚启动(与 XINT2 引脚共用)

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

采样 / 保持时间有单独的预定标控制。 内置校验 / 自测模式。 LF240x/240xADSP的 ADC 模块和 24x的 ADC 模块不兼容

8.2 自动排序器的工作原理2个 8状态排序器 SEQ1和 SEQ2,也可级联成一个 16状态排序器 SEQ。

状态:排序器可以执行的自动转换数目。

ADC模块能对一系列的转换进行排序。转换结束后,结果依次保存在RESULT0、 RESULT1……中。

“ ”用户也可对同一通道进行多次采样,即 过采样 ,得到的采样结果比传统的单采样结果分辨率高。

单排序器模式下 ADC模块原理框图如图 8.1(p167)所示。

双排序器模式下 ADC模块原理框图如图 8.2(p168)所示。

表 8.1 双排序器和单排序器工作比较特征参数 单 8 通道排序器 1(SEQ1) 单 8 通道排序器

2(SEQ2)

16 通道级连排序器 (SEQ)

开始转换触发方式 EVA 、软件和外部引脚 EVB 、软件 EVA、 EVB 、软件和外部引脚

最大自动转换通道数 8 8 16

序列转换完成后自动停止 是 是 是触发优先权 高 低 不适用A/D 转换结果寄存器 0~ 7 8~ 15 0~ 15

排序控制器位分配 (CHSELSEQn) CONV00~ CONV07 CONV08~ CONV15 CONV00~ CONV15

8.2 自动排序器的工作原理为讲解方便,规定排序器的状态如下:

排序器 SEQ1: CONV00-CON07

排序器 SEQ2: CONV08-CON15

排序器 SEQ: CONV00-CON15

转换触发特性:

SEQ1:软件、 EVA、外部引脚,优先级高于 SEQ2

SEQ2:软件、 EVB,优先级低于 SEQ1

SEQ:软件、 EVA、 EVB、外部引脚,无仲裁优先级

由每个排序所选的模拟输入通道由排序控制寄存器( CHSELSEQn)的

CONVnn位域( 4位长)所定义,可指定 16通道中的任何一个。

8.2 自动排序器的工作原理 1 、连续的自动排序的模式此模式, SEQ1/SEQ2在一次排序过程中,可对 8个转换通道进行自动

排序。转换结果被保存到 8个结果寄存器( SEQ1为 RESULT0-

RESULT7, SEQ2为 RESULT8-RESULT15)。

在一个排序中的转换个数受寄存器MAX CONV中的一个 3位域或 4位

域MAX CONVn控制。它的值在自动排序转换开始时被自动装载

到自动排序状态寄存器( AUTO_SEQ_SR)的排序计数器

SEQCNTRn。

MAX CONVn位域的值在 0 7∼ 之间,排序器从状态 CONV00开始转

换, SEQ CNTRn位域从装载值开始向下计数,直到 SEQ CNTRn

为 0。

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

8.2 自动排序器的工作原理 例 8.1 在双排序器模式下利用 SEQ1进行 A/D转换

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

需要进行自动排序转换),则MAX CONV1的值应该设置为 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

8.2 自动排序器的工作原理 连续的自动排序模式流程

一旦转换启动( SOC)触发信号被排序器

收到后,转换立即开始,转换通道数载

入 SEQ CNTRn位域,按照

CHSELSEQn寄存器指定的通道顺序

进行转换。

每个通道转换结束后, SEQ CNTRn自动

减 1。当 SEQ CNTRn达到 0时,将根

据 ADCTRL1寄存器的连续运行位

( CONT RUN)状态,发生以下事情:

初始化ADC寄存器

来启动ADC信号SOC

MAXCONV的值装入AUTO_SEQ_SR寄存器中

启动ADC,每转换完一次AUTO_SEQ_SR寄存器中的值自动减1

当前转换完成转换结果存放到相应的RESULTn寄存器

全部通道转换完成?即AUTO_SEQ_SR=0?

设置ADC中断标志位INT FLAG SEQn=1

A/D转换结束

No

Yes

8.2 自动排序器的工作原理 (1)如果 CONT RUN位= 1,转换排序自动再次启动(即 SEQ CNTRn

重载MAX CONV1中的初始值,且 SEQ1状态被置于 CONV00)。

在这种情况下,必须确保在下一次转换排序之前读取结果寄存器。

在 ADC模块向结果寄存器写入数据而用户却想从结果寄存器读取数据

时, ADC的仲裁逻辑确保结果寄存器不会崩溃。

(2)如果 CONT RUN位= 0,则排序会停留在过去的状态(例如

CONV06),并且 SEQ CNTRn继续保持 0值。

因为每次 SEQ CNTRn达到 0时,中断标志会被置 1。

如果需要,用户可使用 ADCTRL2寄存器的 RST SEQn位,在中断服务程

序中复位排序器,以便下一次转换启动时, SEQ CNTRn可以重载

MAX CONV1的初始值,且 SEQ1状态被设置为 CONV00。这一特性

在排序器的启动 /停止操作中很有用。

8.2 自动排序器的工作原理 2、排序器的启动 /停止模式

除不中断的自动排序模式外,任何一个排序器都可工作在启

动 /停止模式。

在此模式,可实现多个启动转换触发在时间上同步。这种模

式和上例基本相同,但是排序器完成一个转换序列之

后,可以在没有复位到初始状态 CONV00情况下,被重

新触发。因此当一个转换排序结束后,排序器停留在当

前的转换状态。

在这种方式下, ADCTRL1寄存器的连续运行位必须设置

为禁止(写 0 )。

8.2 自动排序器的工作原理 例 8.2 排序器的启动 / 停止操作使用触发信号 1 (定时器下溢)启动 3 个自动转换(例如 I1、 I2、 I3) ,触发信

号 2 (定时器周期)启动 3 个自动转换(例如 V1、 V2、 V3) 。两个触发信号在时间上是分开的,时间间隔为 25 微秒,并且由事件管理器 A 提供,如图 8.4 所示。本实例只用了 SEQ1 。

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

8.2 自动排序器的工作原理在这种情况下,MAX CONV1的值被设置为 2,输入通道选择排序控制寄

存器 (CHSELSEQn)的设置如下。

复位和初始化之后, SEQ1等待触发信号。第一个触发信号到来之后,执

行 CONV00(I1)、 CONV01(I2)和 CONV02(I3)这 3个转换,然

后, SEQ1在当前状态等待另一个触发信号。当第二个触发信号到来

时, ADC模块开始另外 3个转换,分别为

CONV03(V1)、 CONV04(V2)和 CONV05(V3)。

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

70A3h V1 I1 I2 I1 CHSELSEQ1

70A4h x x V3 V2 CHSELSEQ2

70A5h x x x x CHSELSEQ3

70A6h x x x x CHSELSEQ4

8.2 自动排序器的工作原理在这两种触发情况下,MAX CONV1的值被自动装入到 SEQCNTVn中。

如果第二个触发信号到来时,要求转换的数目和第一个触发时不一

样,则用户必须在第二个触发信号到来之前通过软件改变MAX

CONV1的值,否则 ADC将重新使用原来的MAX CONV1的值。

在两个自动转换完成后, ADC的结果寄存器的值如下表所示。缓冲寄存器 ADC 结果缓冲区

结果寄存器 0(RESULT0) I1

结果寄存器 1(RESULT1) I2

结果寄存器 2(RESULT2) I3

结果寄存器 3(RESULT3) V1

结果寄存器 4(RESULT4) V2

结果寄存器 5(RESULT5) V3

结果寄存器 6~15(RESULT6~15) x

8.2 自动排序器的工作原理 3 、输入触发源每一个排序器都有一组能被使能或禁止的触发

源。 SEQ1、 SEQ2和 SEQ 的有效输入触发源见表 8.5

8.2 自动排序器的工作原理 4、排序转换期间的中断操作

排序器在转换期间有两种中断方式,由 ADCTRL2 寄存器中的中断模式控制位决定。 第一种中断方式是在每次 EOS(转换结束)到来时产生中断请

求。

第二种中断方式是每隔一个 EOS(转换结束)信号产生中断请

求。

8.3 ADC时钟预定标 模数转换过程分

为两个时段:采

样 /保持时段,转

换时段,如图 8.6

所示。 LF240xA

DSP中 ADC的采

样 /保持( S/H)

时间可以调节,

以适应输入信号

阻抗的变化,如

图 8.7所示。

图 8.6 ADC 转换时段

图 8-7 ADC 模块的时钟预定标

8.4 ADC工作模式 1、校准模式

LF240x DSP 具有校准模式, CALIBRATION寄存器可用,而 LF240xA DSP没有标定和自测试特性, CALIBRATION寄存器不可用。

校准模式下可以计算 ADC模块的零、中值和最大值的偏置误差。该偏置误差的二进制补码被载入 CALBRATION寄存器后, ADC 硬件自动

将偏置误差加到转换值上。 CALBRATION寄存器存放该模式下的最后结果。

2 、自测试模式自测试模式用来检测 ADC 引脚的短路 / 开路。该模式下,采样周期为正

常模式的两倍。采样周期的前半部分,除了用户提供的模拟输入信号外, VREFHI 或者 VREFLO 被接到 ADC 转换器的输入;采样周期的后半部分,只有用户提供的信号被接到 ADC 转换器的输入。

自测试模式只能用来检测短路或开路,在正常工作模式下不能使用。

8.5 ADC模块的寄存器 ADC 控制寄存器 1(ADCTRL1)——70A0h

位 15 保留 位 14 复位位。该位引起一个对整个 ADC 模块的主动复位,所有寄存

器和排序器指针都复位到初始状态。• 0 :无影响• 1 :复位整个 ADC 模块

位 13-12 SOFT 位和 FREE 位。决定仿真悬挂时 ADC 模块的工作情况。• 00 :一旦仿真悬挂, ADC 模块立即停止• 10 :仿真悬挂时, ADC 模块完成当前转换后停止• x1 :自由运行,继续运行而不管仿真悬挂

位 11-8 采样时间选择位 ACQPS3-ACQPS0 。决定 ADC 时钟的预定标系 数,详见表 8.7(p178)

位 7 CPS ,转换时钟预定标位。决定 ADC 转换逻辑时钟的预定标。• 0: FLCK=CLK/1• 1 : FLCK=CLK/2

8.5 ADC模块的寄存器 位 6 连续转换位 CONT RUN 。决定排序器工作在连续转换模式或启动 / 停止模式

• 0 :启动 / 停止模式; 1 :连续转换模式 位 5 ADC 中断请求优先级位 INT PRI 。

• 0 :高优先级; 1 :低优先级。 位 4 S 级连排序器工作方式位 SEQ ACSC 。

• 0 :双排序器工作模式。 SEQ1和 SEQ2 最多可选择 8 个转换通道的排序器。• 1 :级连模式。 SEQ1和 SEQ2 级连起来作为一个最多可选择 8 个转换通道的排序器 SEQ

。 位 3 偏差校准使能位 CAL ENA 。

• 0 :禁止校准模式; 1 :使能校准模式。 位 2 CPS 桥使能位 BRG ENA 。见表 8.8

• 0 :满的参考电压被接到 ADC 输入• 1 :参考的中点电压被接到 ADC 输入

位 1 VREFHI和 VREFLO 选择位 HI/LO 。见表 8.8• 0 : 用 VREFHI 作为 ADC 输入• 1 :用 VREFLO 作为 ADC 输入

位 0 V 自测试使能位 STEST ENA 。• 0 : 禁止自测试模式; 1 :使能自测试模式;

8.5 ADC模块的寄存器 ADC 控制寄存器 2(ADCTRL2)——70A1h

位 15 EVB SOC SEQ。 EVB的 SOC 信号为级连排序器使能位。• 0 :不起作用• 1 :允许级连的排序器 SEQ 被事件管理器 B 的信号启动

位 14 RST SEQ1/STRT CAL 。复位排序器 1/ 启动校准转换方式位。在校准转换方式被禁止的情况下:• 0 :不起作用; 1 :立即复位排序器使排序器指针指到

CONV00在校准转换方式被禁止的情况下:• 0 :不起作用; 1 :启动校准转换方式

位 13 SOC SEQ1 。启动 SERQ1 转换位。• 0 :清除一个悬挂的 SOC 请求• 1 :软件触发启动 SOC 请求

位 12 SEQ1 BSY.SEQ1 忙状态位。• 0: SEQ1 处于空闲状态• 1: SEQ1 处于忙状态,一个转换序列正在进行

8.5 ADC模块的寄存器 位 11-10 对 SEQ1 的中断方式使能控制位。

位 9 ADC 中断请求优先级位 INT PRI。 INT FLAG SEQ1 位。 ADC 模块 SEQ1 的中断标志位。• 0 :无中断事件发生; 1 :发生过中断事件。

位 8 EVA SOC SEQ1 位。事件管理器 A对 SEQ1 产生 SOC 信号的屏蔽位。• 0 : SEQ1 不能被 EVA 的触发源启动;• 1 :允许 SEQ1/SEQ被 EVA 的触发源启动。

位 7 EXT SOC SEQ1 位。外部信号对 SEQ1 的启动转换位。• 0 : 不起作用;• 1 :允许一个来自 ADCSOC 引脚上信号启动 ADC 自动转换序列。

位 11 位 10 中断方式说明0 0 中断不使能0 1 中断模式 1 :在中断标志位 (INT FLAG SEQ1)置 1 时立即申请中断1 0 中断模式 2 :仅当 INT FLAG SEQ1已经设置时,产生中断请求。如果清除

了, INT FLAG SEQ1 被置 1 ,中断请求被屏蔽。允许其他排序结束产生中断请求

1 1 保留

8.5 ADC模块的寄存器 位 6 RST SEQ2 。复位排序器 2 。

• 0 : 不起作用; 1 :立即复位排序器使排序器指针指到 CONV00 。 位 5 SOC SEQ2 。启动 SEQ2 转换位 ( 仅适用于双排序器模式 ) 。

• 0 :清除一个悬挂的 SOC 请求; 1 :软件触发启动 SEQ2 。 位 4 SEQ2 BSY。 SEQ2 忙状态位。

• 0 : SEQ2 处于空闲状态; 1 : SEQ2 处于忙状态,一个转换序列正在进行。 位 3-2 对 SEQ2 的中断方式使能控制位。

位 1 INT FLAG SEQ2 位。 ADC 模块 SEQ2 的中断标志位。• 0 :无中断事件发生; 1 :发生过中断事件。

位 0 EVA SOC SEQ2 位。事件管理器 A对 SEQ2 产生 SOC 信号的屏蔽位。• 0 : SEQ2 不能被 EVB 的触发源启动; 1 :允许 SEQ2被 EVB 的触发源启动。

位 3 位 2 中断方式说明0 0 中断不使能0 1 中断模式 1 :在中断标志位 (INT FLAG SEQ2)置 1 时立即申请中断1 0 中断模式 2 :仅当 INT FLAG SEQ2已经设置时,产生中断请求。如果清除

了, INT FLAG SEQ2 被置 1 ,中断请求被屏蔽。允许其他排序结束产生中断请求

1 1 保留

8.5 ADC模块的寄存器 最大转换通道寄存器 (MAXCONV)——70A2h

位 15-7 保留 位 6-0 MAX CONVn 位域。决定一次自动转换最多转换的通道个数。该

位域及其操作随排序器工作模式的变化而变化。

自动排序状态寄存器 (AUTO_SEQ_SR)——70A7h 位 15-12 保留 位 11-8 SEQ CNTR3~ SEQ CNTR0 。排序计数器状态位。 位 7 保留 位 6-4 SEQ2-State2~ SEQ2-State0 。反映 SEQ2 排序器指针的状态。用

户可根据这几位的值,在结束转换信号 EOS 到来之前读取中间结果。 位 3-0 SEQ1-State3~ SEQ1-State0 。反映 SEQ1 排序器指针的状态。用

户可根据这几位的值,在结束转换信号 EOS 到来之前读取中间结果。

8.5 ADC模块的寄存器 ADC 输入通道选择排序控制寄存器 (CHSELSEQn)——

70A3h~ 70A6h

ADC 转换结果缓冲寄存器 (RESULTn)——70A8h~

70B7h

8.6 ADC转换时钟周期 ADC 转换周期可以分为 5 个阶段:① 排序启动的同步时间( SOS 同步), SOS 同步时间仅在

转换序列的第一个转换中有。② 采样时间( ACQ )。③ 转换时间( CONV )。④ 转换结束时间( EOC )。 ACQ 、 CONV 和 EOC 时间

在一个序列的每个转换中都有。⑤ 序列转换结束标志设置时间( EOS ), EOS 仅用于一

个序列的最后一个转换。ADC各转换阶段所需 CLKOUT 周期个数见表 8.14(p185) 。