9299.net
大學生考試網 讓學習變簡單
當前位置:首頁 >> >>

第7章 ADC(_圖文

第7章 ADC(_圖文

DSP 原理及應用 DSP原理及應用
第七章 模數轉換器(ADC)

DSPLAB

ADC模塊

模數轉換器
傳 感 器
Analog→Digital 非電量 電壓 電流 模擬信號 采樣序列

模擬 信號 調理

ADC

數字 系統 數字量

模擬量
序號 1 2 3 4 5 …
合肥工業大學電氣與自動化工程學院DSP實驗室

數字信號 000001001101b 000001010000b 000011010100b 000100101111b 001001101001b ……
2015-05-

ADC模塊

模數轉換器
? 轉換位數? ? 模擬通道數?能否同步采樣? ? 最高采樣速率? ? 并口?串口?

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC模塊

ADC結構框圖

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC模塊

ADC模塊的特點
? ? ?

單個ADC核,12位分辨率,內置雙S/H電路 最快采樣速率為12.5MSPS(工作在25MHz時鐘) 16個模擬輸入通道(0-3V),多路選通輸入 --->(8個通道+多路復用器+1個S/H電路)×2組

? ?

兩種采樣模式:同步、順序 通道的轉換順序可由自動排序器決定,一次可執行16個通 道的自動轉換,每次轉換亦可編程選擇任何通道 兩個獨立的8通道排序器:雙排序模式、級聯單模式

?

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC模塊

ADC模塊的特點
? ?

16個獨立的轉換結果寄存器,可單獨訪問 多個SOC(start-of-conversion)觸發源:軟件直接啟動、 EVA/B事件觸發、外部引腳觸發 中斷觸發模式:每次EOS(排序轉換結束)、每兩次EOS 轉換模式:啟動/停止模式、連續轉換模式 S/H事件窗可獨立控制

? ? ?

Input Analog Voltage - ADCLO Digital=4095 ? 3
(ADCLO  模擬輸入信號地)
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

Analog-to-Digital Converter Registers
Register ADCTRL1 ADCTRL2 Address Description 0x007100 ADC Control Register 1 0x007101 ADC Control Register 2

ADCMAXCONV 0x007102 ADC Maximum Conversion Channels Register ADCCHSELSEQ1 0x007103 ADC Channel Select Sequencing Control Register 1 ADCCHSELSEQ2 0x007104 ADC Channel Select Sequencing Control Register 2 ADCCHSELSEQ3 0x007105 ADC Channel Select Sequencing Control Register 3 ADCCHSELSEQ4 0x007106 ADC Channel Select Sequencing Control Register 4 ADCASEQSR ADCRESULT0 ADCRESULT1 ADCRESULT2 0x007107 ADC Auto sequence Status Register 0x007108 ADC Conversion Result Buffer Register 0 0x007109 ADC Conversion Result Buffer Register 1 0x00710A ADC Conversion Result Buffer Register 2

: :

: :

:

:

:

:

:

ADCRESULT14 ADCRESULT15 ADCTRL3 ADCST

0x007116 ADC Conversion Result Buffer Register 14 0x007117 ADC Conversion Result Buffer Register 15 0x007118 ADC Control Register 3 0x007119 ADC Status and Flag Register
6-7

ADC Control Register 1 - Upper Byte
ADCTRL1 @ 0x007100

ADC復位
ADC Module Reset
0 = no effect 1 = reset (set back to 0 by ADC logic)

采樣時間窗寬度。 這幾位控制SOC脈沖的寬度。
Acquisition Time Prescale (S/H)
Value = (binary+1) * Time dependent on the “Conversion Clock Prescale” bit (Bit 7 “CPS”)
12 11 10 9 8

15 reserved

14 RESET

13

SUSMOD1 SUSMOD0 ACQ_PS3 ACQ_PS2 ACQ_PS1 ACQ_PS0

Emulation Suspend Mode
00 = [Mode 0] free run (do not stop) 01 = [Mode 1] stop after current sequence 10 = [Mode 2] stop after current conversion 11 = [Mode 3] stop immediately

仿真懸掛模式
6-8

ADC Control Register 1 - Lower Byte
連續運行位, 決定排序器工作在連續轉換模式還是啟動-停止模式 Continuous Run Sequencer Mode
0 = stops after reaching end of sequence 1 = continuous (starts all over again from “initial state”) 0 = dual mode 1 = cascaded mode

ADCTRL1 @ 0x007100

排序器模式

7 CPS

6 CONT_RUN

5

4

3

2

1

0

SEQ1_OVRD SEQ_CASC reserved reserved reserved reserved

Conversion Prescale
0 = CLK / 1 1 = CLK / 2

Sequencer Override (continuous run mode)

排序器覆蓋

0 = sequencer pointer resets to “initial state” at end of MAX_CONVn ADC內核時鐘預定標器。 1 = sequencer pointer resets to “initial state” 對外設高速時鐘的分頻 after “end state”
6-9

ADCTRL2 @ 0x007101 級聯排序器模式下EVA啟動轉換使能位 事件管理器A對排序器1的啟動轉換使能位 EVB SOC EVA SOC (cascaded mode only) SEQ1 Mask Bit
0 = no action 1 = start by EVB 排序器1的啟動轉換觸發 Start Conversion (SEQ1) signal 0 = clear pending SOC trigger 1 = software trigger-start SEQ1
15 14 13 12

ADC Control Register 2 - Upper Byte

0 = cannot be started by EVA trigger 1 = can be started by EVA trigger

11

10

9 reserved

8 EVA_SOC_ SEQ1

EVB_SOC RST_SEQ1 SOC_SEQ1 reserved _SEQ

INT_ENA_ INT_MOD SEQ1 _SEQ1

Reset SEQ1
0 = no action 1 = immediate reset SEQ1 to “initial state”

Interrupt Enable (SEQ1)
0 = interrupt disable 1 = interrupt enable

Interrupt Mode (SEQ1)
0 = interrupt every EOS 1 = interrupt every other EOS

復位排序器1

排序器1的中斷使能位

排序器1的中斷模式位

6 - 10

ADCTRL2 @ 0x0071012 排序器1的外部信號啟動轉換位 事件管理器B對排序器2的啟動轉換使能位 External SOC (SEQ1) EVB SOC 0 = no action SEQ2 Mask bit
1 = start by signal from ADCSOC pin

ADC Control Register 2 - Lower Byte

排序器2的啟動轉換觸發 Start Conversion (SEQ2)
(dual-sequencer mode only)

0 = clear pending SOC trigger 1 = software trigger-start SEQ2
7 6 5 4 3 2 INT_ENA_ INT_MOD SEQ2 _SEQ2

0 = cannot be started by EVB trigger 1 = can be started by EVB trigger

1 reserved

0 EVB_SOC_ SEQ2

EXT_SOC RST_SEQ2 SOC_SEQ2 reserved _SEQ1

Reset SEQ2
0 = no action 1 = immediate reset SEQ2 to “initial state”

Interrupt Enable (SEQ2)
0 = interrupt disable 1 = interrupt enable

排序器2中斷模式位

Interrupt Mode (SEQ2)
0 = interrupt every EOS 1 = interrupt every other EOS
6 - 11

排序器2中斷使能位

復位排序器

ADC Control Register 3
ADCTRL3 @ 0x007118 ADC Bandgap Power Down ADC Reference Power Down
0 = powered down 1 = powered up

ADC Power Down (except Bandgap & Ref.)

0 = powered down 0 = powered down 1 = powered up 1 = powered up

15 - 8 reserved 4 3

7 ADCRFDN 2

6 ADCBGND 1

5 ADCPWDN 0

ADCCLKPS3 ADCCLKPS2 ADCCLKPS1 ADCCLKPS0 SMODE_SEL

ADC內核時鐘分配器 ADC Clock Prescale

Sampling Mode Select
0 = sequential sampling mode 1 = simultaneous sampling mode
6 - 12

采樣模式選擇 順序采樣,同步采樣

Maximum Conversion Channels Register
ADCMAXCONV @ 0x007102

最大轉換通道寄存器
? Bit fields define the maximum number of auto conversions (binary+1) 決定本次采樣排序所要進行采樣的通道總數 Cascaded Mode

reserved

MAX_ MAX_ MAX_ MAX_ MAX_ MAX_ MAX_ CONV 2_2 CONV 2_1 CONV 2_0 CONV 1_3 CONV 1_2 CONV 1_1 CONV 1_0

SEQ2

Dual Mode

SEQ1

? Auto conversion session always starts with the “initial state” and continues sequentially until the “end state”, if allowed Initial state End state SEQ1 CONV00 CONV07 SEQ2 CONV08 CONV15 Cascaded CONV00 CONV15
6 - 13

ADC Input Channel Select Sequencing Control Register
ADC輸入通道選擇排序控制寄存器
Bits 15-12
0x007103 0x007104 0x007105 0x007106

Bits 11-8

Bits 7-4

Bits 3-0

CONV03 CONV07 CONV11 CONV15

CONV02 CONV06 CONV10 CONV14

CONV01 CONV05 CONV09 CONV13

CONV00 CONV04 CONV08 CONV12

ADCCHSELSEQ1 ADCCHSELSEQ2 ADCCHSELSEQ3 ADCCHSELSEQ4

通過編程選擇在某一時刻 是哪個通道被選通進行采樣

6 - 14

ADC模塊

ADC轉換模式
? 排序方式
? 獨立雙排序——兩個8通道排序器SEQ1、SEQ2獨立工作; ? 級聯單排序——SEQ1與SEQ2級聯為單個16通道排序器SEQ。

? 采樣模式
? 順序采樣——按排序器順序對模擬輸入通道進行順序采樣; ? 同步采樣——按排序器順序對模擬輸入信號對進行同步采樣。

? 轉換方式
? 啟動/停止——轉換完當前排序通道后停止; ? 連續轉換——轉換完當前排序后重新從頭轉換。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC模塊

A/D轉換模式

?

排序方式

? 獨立雙排序——兩個8通道排序器SEQ1 、SEQ2獨立工作; ? 級聯單排序——SEQ1與SEQ2級聯為單 個16通道排序器SEQ。

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC Module Block Diagram (Cascaded Mode)
Analog MUX
ADCINA0 ADCINA1 ADCINA7 ADCINB0 ADCINB1 ADCINB7 MUX B MUX A S/H A S/H MUX S/H B

Result MUX

SOC

EOC

Result Select

RESULT15

Auto sequencer
MAX_CONV1 CHSEL00 (state 0) CHSEL01 (state 1) CHSEL02 (state 2) CHSEL03 (state 3) CHSEL15 (state 15) Start Sequence Trigger
5 - 17

Software EVA EVB Ext Pin (ADCSOC)

...

12-bit A/D Converter

RESULT0 RESULT1 RESULT2

... ...

...

ADC Module Block Diagram (Dual-Sequencer mode)
Analog MUX
ADCINA0 ADCINA1 ADCINA7 ADCINB0 ADCINB1 ADCINB7 MUX A S/H A S/H MUX MUX B S/H B

Result MUX

12-bit A/D Converter
Sequencer Arbiter
SOC1/ EOC1 SOC2/ EOC2

RESULT0 RESULT1

Result Select

RESULT7 RESULT8 RESULT9

SEQ1 Auto sequencer
MAX_CONV1 CHSEL00 (state 0) CHSEL01 (state 1) CHSEL02 (state 2) Software EVA Ext Pin CHSEL07 (state 7) Start Sequence Trigger

SEQ2 Auto sequencer
MAX_CONV2 CHSEL08 (state 8) CHSEL09 (state 9) CHSEL10 (state 10)

Result Select

RESULT15

(ADCSOC)

CHSEL15 (state 15) Start Sequence Trigger

Software EVB

...
5 - 18

...

... ...

...

...

ADC模塊

ADC轉換模式
? 采樣模式 ? 順序采樣——按排序器順序對模擬輸入通道進行順 序采樣; 按照順序一個通道一個通道地進行采樣 。 ? 同步采樣——按排序器順序對模擬輸入信號進行同 步采樣; 一對通道一對通道地進行采樣。

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC模塊

采樣模式

? 順序采樣 ? 獨立雙排序
?

SEQ1:接收到SOC SEQ1請求時,根據SEQ1排序器進行 順序A/D轉換;

? SEQ2:接收到SOC SEQ2請求時,根據SEQ1排序器進行 順序A/D轉換; ? 優先級:SEQ1高于SEQ2,需在當前排序轉換結束才能開 始下個排序轉換; ? 轉換結果存儲:按轉換先后順序存入 ADCRESULT0~7(SEQ1)、 ADCRESULT8~15(SEQ2)中。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC模塊

采樣模式
? 順序采樣 ? 級聯單排序 ? SEQ:接收到SOC SEQ1請求時,根據SEQ排 序器進行順序A/D轉換,轉換通道數由MAX CONV1_n(ADCMAXCONV[3:0])控制; ? 轉換結果存儲:按轉換先后順序存入 ADCRESULT0~15中 。

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC模塊

? 同步采樣
? ? ? ?

采樣模式

同時啟用S/H-A和S/H-B; 根據自動排序器同時對ADCINAx和ADCINBx進行采樣保 持; 先對ADCINAx進行A/D轉換,再對ADCINBx進行A/D轉換; ADCINAx和ADCINBx轉換結果分別存放在ADCRESULTn和 ADCRESULTn+1中。
模擬 MUX

ADCINA0 ADCINA1 ADCINA7 ADCINB0 ADCINB1 ADCINB7

MUX A

S/H A S/H MUX

Result MUX

MUX B

S/H B

RESULT15

CONVnn
合肥工業大學電氣與自動化工程學院DSP實驗室

Auto sequencer
2015-05-

...

12-bit A/D Converter

Result Select

RESULT0 RESULT1 RESULT2

... ...

ADC模塊

ADC轉換模式 ? 轉換方式

? 啟動/停止——轉換完當前排序通道后 停止; ? 連續轉換——轉換完當前排序后重新 從頭轉換。

合肥工業大學電氣與自動化工程學院DSP實驗室

2015-05-

ADC模塊

轉換方式
(ADCTRL1:?CONT?RUN=0)

? 啟動/停止

? 接收到一次SOC請求時,執行一次序列轉換; ? 一次序列轉換完成后停止; ? 排序器保持在停止位置(不復位為CONV00或CONV08); ? 下次SOC觸發時,繼續從停止位置開始轉換(若排序器未被 軟件復位)。

? 連續轉換

(ADCTRL1:?CONT?RUN=1)

? 接收到一次SOC請求時,執行序列轉換; ? 一次序列轉換完成后,排序器自動復位并重新開始序列 轉換。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

Example - Sequencer “Start/Stop” Operation
EVA Timer 1

EVA PWM

I1 , I2 , I3

V1, V2, V3

I1 , I2 , I3

V1, V2, V3

System Requirements: ?Three auto conversions (I1, I2, I3) off trigger 1 (Timer underflow) ?Three auto conversions (V1, V2, V3) off trigger 2 (Timer period) Event Manager A (EVA) and SEQ1 are used for this example with sequential sampling mode

6 - 25

Example - Sequencer “Start/Stop” Operation
(Continued)
? MAX_CONV1 is set to 2 and Channel Select Sequencing Control Registers are set to: Bits ? 15-12 11-8 0x007103 V1 I3 0x007104 x x
7 -4 3-0

I2 I1 V3 V 2

ADCCHSELSEQ1 ADCCHSELSEQ2

? Once reset and initialized, SEQ1 waits for a trigger ? First trigger three conversions performed: CONV00 (I1), CONV01 (I2), CONV02 (I3) ? MAX_CONV1 value is reset to 2 (unless changed by software) ? SEQ1 waits for second trigger ? Second trigger three conversions performed: CONV03 (V1), CONV04 (V2), CONV05 (V3) ? End of second auto conversion session, ADC Results registers have the following values: RESULT0 RESULT1 RESULT2 I1 I2 I3 RESULT3 RESULT4 RESULT5 V1 V2 V3

? User can reset SEQ1 by software to state CONV00 and repeat same trigger 1, 2 session ? SEQ1 keeps “waiting” at current state for another trigger
6 - 26

ADC模塊

Example  啟動/停止模式

下 溢

周期 匹配

下溢

周期 匹配

MAX?CONVn=2
合肥工業大學電氣與自動化工程學院DSP實驗室

ADC輸入通道選擇排序控制寄存器
2015-05-

ADC模塊

Example —啟動/停止模式

? 復位和初始化之后,等待SOC 觸發 ? 第一次SOC觸發: CONV00 (I1), CONV01 (I2), CONV02 (I3) ? 第一次轉換結束,SEQ1 保持當前狀態等待第二次觸發 ? 第二次SOC觸發: CONV03 (V1), CONV04 (V2), CONV05 (V3) ? 第二次轉換結束, SEQ1保持當前狀態等待下一次觸發 轉換結果:ADC?RESULTS RESULT0 RESULT1 RESULT2 I1 I2 I3 RESULT3 RESULT4 RESULT5 V1 V2 V3

? 第二次轉換結束后,用戶可以通過軟件復位 SEQ1 到狀態 CONV00,準備下一 次電流轉換; ? 為了避免轉換結果被覆蓋,須確保在下一個轉換開始前讀取結果寄存器; ? 每次SOC觸發后,MAX。茫希危郑罹詣友b載到SEQ。茫危裕抑,可在ISR中更改。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC模塊

A/D轉換流程

(啟動/停止模式,INT?MOD?SEQn=0) ? 初始化ADC寄存器; ? 發生SOC觸發請求; ? MAX?CONVn值自動裝載到SEQ?CNTR 中; ? 開始序列A/D轉換; ? 每轉換一個通道,將轉換結果保存到 ADCRESULTn寄存器; ? 所有轉換完成,觸發中斷標志; ? 結束 連續轉換模式:所有轉換完成后,自動重 新加載SEQ?CNTR并復位排序器為CONV00 或CONV08,然后重新開始序列A/D轉換。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC模塊

? 排序控制寄存器
? 自動排序狀態寄存器:ADCASEQSR
15 12
Reserved

11
SEQ CNTR3

10
SEQ CNTR2

9
SEQ CNTR1

8
SEQ CNTR0

7
Reserved

6???????????4? 3????????????0
SEQ2 STATE2‐0 SEQ1 STATE3‐0

4位減計數器 SEQ CNTR(3-0)
-SEQ1、SEQ2、SEQ共用; -SOC觸發時,自動裝載MAX CONVn值; -每轉換結束一個(對)通道,計數器減1;
排序計數器狀態位

TI測試保留

-減到0時,通過判斷SEQ1和SEQ2 busy位來判斷剩余轉換通道為1或0。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC模塊

Example2—ADC最大工作時鐘
SYSCLKOUT (150 MHz)
To CPU

CLKIN PLLCR (30 MHz) DIV bits
1010b

HISPCP HSPCLK bits
000b

HSPCLK (150 MHz)

PCLKCR.ADCENCLK = 1

ADCTRL3 ADCCLKPS bits
0011b

FCLK (25 MHz)

ADCTRL1 CPS bit
0b
ADCCLK = FCLK/(CPS+1)

ADCCLK (25 MHz) ADCTRL1 ACQ_PS bits
0000b

To ADC pipeline sampling window

FCLK = HSPCLK/(2*ADCCLKPS)

ADCCLKmax=25 MHz!
合肥工業大學電氣與自動化工程學院DSP實驗室

sampling window = 1/ADCCLK
2015-05-

ADC模塊

觸發源

? 排序器SEQ1可以是軟件觸發即軟件SOC(Start‐of‐conversion); ? 事件管理器EVA的多種事件觸發; ? 外部GPIOE1/XINT2_ADCSOC。 ? 排序器SEQ2可以是軟件觸發即軟件SOC(Start‐of‐conversion)?; ? 事件管理器EVB的多種事件觸發。 ? 級聯排序器SEQ可以是軟件觸發即軟件SOC; ? 事件管理器EVA的多種事件; ? 事件管理器EVB的多種事件; ? 外部GPIOE1/XINT2_ADCSOC引腳。
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC模塊

ADC轉換結果

ADCRESULT0 @ 0x007108 ;ADCRESULT15 @ 0x007117
15 MSB 14 13 12 11 10 9 8 7 6 5 4 LSB 3 2 1 0

模擬輸入0V~3V:
Input Analog Voltage - ADCLO Digital=4095 ? 3
(ADCLO  模擬輸入信號地)

analog volts 3.0 1.5 0.00073 0

converted value FFFh 7FFh 1h 0h

RESULTx 1111|1111|1111|0000 0111|1111|1111|0000 0000|0000|0001|0000 0000|0000|0000|0000
2015-05-

合肥工業大學電氣與自動化工程學院DSP實驗室

ADC模塊

ADC轉換結果
x x x x x x x x x x x x 0 0 0 0 RESULTx

ADC轉換結果的讀取(Integer format)
bit shift right 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x x xx x 0

ACC

0 0 0 0 x x x x x x x x x x x x Data Mem

Example: read RESULT0 register #include #include "DSP281x_Device.h" "DSP281x_Device.h" void void main(void) main(void) { { Uint16 Uint16 value; value;

// // unsigned unsigned

value value = = AdcRegs.ADCRESULT0 AdcRegs.ADCRESULT0 >> >> 4; 4; } }
合肥工業大學電氣與自動化工程學院DSP實驗室 2015-05-

ADC Conversion Result Buffer Register
ADCRESULT0 @ 0x007108 through ADCRESULT15 @ 0x007117 (Total of 16 Registers)
14 13 12 11 10 9 8 7 6 5 4 LSB 3 2 1 15 MSB 0

With analog input 0V to 3V, we have: analog volts 3.0 1.5 0.00073 0 converted value FFFh 7FFh 1h 0h RESULTx 1111|1111|1111|0000 0111|1111|1111|0000 0000|0000|0001|0000 0000|0000|0000|0000

5 - 35

How do we Read the Result? Integer format
x x x x x x x x x x x x 0 0 0 0 RESULTx bit shift right 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x x xx x 0 ACC

0 0 0 0 x x x x x x x x x x x x Data Mem

Example: read RESULT0 register
#include #include "DSP281x_Device.h" "DSP281x_Device.h" void ) void main(void main(void) { { Uint16 Uint16 value; value; } }
5 - 36

// // unsigned unsigned

value value = = AdcRegs.ADCRESULT0 AdcRegs.ADCRESULT0 >> >> 4; 4;

小結
?ADC模塊有16個通道,可配置為兩個獨立的8通道模塊, 方便為事件管理器A和事件管理器B服務 ?ADC模塊中只有一個轉換器 -內建有兩個采樣保持(S/H)的12位ADC核心 -同步采樣或者順序采樣模式 -模擬輸入范圍:0V~3V -快速轉換時間(運行于25 MHz的ADC時鐘時為 12.5 MSPS) - 16個結果寄存器(可獨立尋址)用于保存轉換值

LOGO

小結
-輸入模擬電壓對應的數字值公式為:

-多個觸發源用于啟動轉換(SOC)序列: ·軟件:軟件立即啟動(用SOC SEQn位) ·EVA:事件管理器A(EVA中的多個事件源可以啟動轉換) ·EVB:事件管理器B(EVB中的多個事件源可以啟動轉換) ·外部引腳:ADCSOC引腳

LOGO


網站首頁 | 網站地圖 | 學霸百科 | 新詞新語
All rights reserved Powered by 大學生考試網 9299.net
文檔資料庫內容來自網絡,如有侵犯請聯系客服。[email protected]
甘肃快3综合走势图