1.STM32的AD轉(zhuǎn)換,可以將轉(zhuǎn)換任務組織為兩個組:規(guī)則組和注入組。在任意多個通道上以任意順序進行的一系列轉(zhuǎn)換構(gòu)成成組轉(zhuǎn)換。例如,可以如下順序完成轉(zhuǎn)換:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。在執(zhí)行規(guī)則通道組掃描轉(zhuǎn)換時,如有例外處理則可啟用注入通道組的轉(zhuǎn)換??梢阅:膶⒆⑷虢M的轉(zhuǎn)換理解為AD轉(zhuǎn)換的中斷一樣,規(guī)則通道組的轉(zhuǎn)換是普通轉(zhuǎn)換,然而注入組的轉(zhuǎn)換條件滿足的情況下,注入組的轉(zhuǎn)換會打斷規(guī)則組的轉(zhuǎn)換。如果規(guī)則轉(zhuǎn)換已經(jīng)在運行,為了在注入轉(zhuǎn)換后確保同步,所有的ADC(主和從)的規(guī)則轉(zhuǎn)換被停止,并在注入轉(zhuǎn)換結(jié)束時同步恢復。規(guī)則轉(zhuǎn)換和注入轉(zhuǎn)換均有外部觸發(fā)選項,規(guī)則通道轉(zhuǎn)換期間有DMA請求產(chǎn)生,而注入轉(zhuǎn)換則無DMA請求,需要用查詢或中斷的方式保存轉(zhuǎn)換的數(shù)據(jù)。
2.規(guī)則組:此模式通過設置ADC_CR1寄存器上的DISCEN位激活。它可以用來執(zhí)行一個短序列的n次轉(zhuǎn)換(n<=8),此轉(zhuǎn)換是ADC_SQRx寄存器所選擇的轉(zhuǎn)換序列的一部分。數(shù)值n由ADC_CR1寄存器的DISCNUM[2:0]位給出。 一個外部觸發(fā)信號可以啟動ADC_SQRx寄存器中描述的下一輪n次轉(zhuǎn)換,直到此序列所有的轉(zhuǎn)換完成為止??偟男蛄虚L度由ADC_SQR1寄存器的L[3:0]定義。 舉例: n=3,被轉(zhuǎn)換的通道 = 0、1、2、3、6、7、9、10 第一次觸發(fā):轉(zhuǎn)換的序列為 0、1、2 第二次觸發(fā):轉(zhuǎn)換的序列為 3、6、7 第三次觸發(fā):轉(zhuǎn)換的序列為 9、10,并產(chǎn)生EOC事件 第四次觸發(fā):轉(zhuǎn)換的序列 0、1、2,依次類推;
注入組:此模式通過設置ADC_CR1寄存器的JDISCEN位激活。在一個外部觸發(fā)事件后,該模式按通道順序逐個轉(zhuǎn)換ADC_JSQR寄存器中選擇的序列。 一個外部觸發(fā)信號可以啟動ADC_JSQR寄存器選擇的下一個通道序列的轉(zhuǎn)換,直到序列中所有的轉(zhuǎn)換完成為止。總的序列長度由ADC_JSQR寄存器的JL[1:0]位定義。 例子: n=1,被轉(zhuǎn)換的通道 = 1、2、3 第一次觸發(fā):通道1被轉(zhuǎn)換 第二次觸發(fā):通道2被轉(zhuǎn)換 第三次觸發(fā):通道3被轉(zhuǎn)換,并且產(chǎn)生EOC和JEOC事件 第四次觸發(fā):通道1被轉(zhuǎn)換,也是依次類推。
3.STM32的ADC的工作模式:
單次轉(zhuǎn)換模式:轉(zhuǎn)換一次則停止;
連續(xù)轉(zhuǎn)換模式:轉(zhuǎn)換完一次后即開始下一次轉(zhuǎn)換;
掃描模式:掃描一組模擬通道;
間斷模式:每觸發(fā)一次,轉(zhuǎn)換序列中n個通道。
4.因為規(guī)則通道轉(zhuǎn)換的值儲存在一個僅有的數(shù)據(jù)寄存器中,所以當轉(zhuǎn)換多個規(guī)則通道時需要使用DMA,這可以避免丟失已經(jīng)存儲在ADC_DR寄存器中的數(shù)據(jù)。只有在規(guī)則通道的轉(zhuǎn)換結(jié)束時才產(chǎn)生DMA請求,并將轉(zhuǎn)換的數(shù)據(jù)從ADC_DR寄存器傳輸?shù)接脩糁付ǖ哪康牡刂贰?br/>注: 只有ADC1和ADC3擁有DMA功能。由ADC2轉(zhuǎn)化的數(shù)據(jù)可以通過雙ADC模式,利用ADC1的DMA功能傳輸。
5.雙ADC模式
(1)同步注入模式:此模式轉(zhuǎn)換一個注入通道組。外部觸發(fā)來自ADC1的注入組多路開關(由ADC1_CR2寄存器的JEXTSEL[2:0]選擇),它同時給ADC2提供同步觸發(fā)。
注意: 不要在2個ADC上轉(zhuǎn)換相同的通道(兩個ADC在同一個通道上的采樣時間不能重疊)。
(2)同步規(guī)則模式:此模式在規(guī)則通道組上執(zhí)行。外部觸發(fā)來自ADC1的規(guī)則組多路開關(由ADC1_CR2寄存器的EXTSEL[2:0]選擇),它同時給ADC2提供同步觸發(fā)。
(3)快速交叉模式:此模式只適用于規(guī)則通道組(通常為一個通道)。外部觸發(fā)來自ADC1的規(guī)則通道多路開關。外部觸發(fā)產(chǎn)生后:
A.ADC2立即啟動并且
B.ADC1在延遲7個ADC時鐘周期后啟動
注意:最大允許采樣時間<7個ADCCLK周期,避免ADC1和ADC2轉(zhuǎn)換相同通道時發(fā)生兩個采樣周期的重疊。
(4)慢速交叉模式:此模式只適用于規(guī)則通道組(只能為一個通道)。外部觸發(fā)來自ADC1的規(guī)則通道多路開關。外部觸發(fā)產(chǎn)生后:
A.ADC2立即啟動并且
B.ADC1在延遲14個ADC時鐘周期后啟動
C.在延遲第二次14個ADC周期后ADC2再次啟動,如此循環(huán)。
(5)交替觸發(fā)模式:此模式只適用于注入通道組。外部觸發(fā)源來自ADC1的注入通道多路開關。
A.當?shù)谝粋€觸發(fā)產(chǎn)生時,ADC1上的所有注入組通道被轉(zhuǎn)換。
B.當?shù)诙€觸發(fā)到達時,ADC2上的所有注入組通道被轉(zhuǎn)換。
C.如此循環(huán)……
(6)獨立模式:此模式里,雙ADC同步不工作,每個ADC接口獨立工作。
(7)混合的規(guī)則/注入同步模式:規(guī)則組同步轉(zhuǎn)換可以被中斷,以啟動注入組的同步轉(zhuǎn)換。
(8)混合的同步規(guī)則+交替觸發(fā)模式:規(guī)則組同步轉(zhuǎn)換可以被中斷,以啟動注入組交替觸發(fā)轉(zhuǎn)換。 顯示了一個規(guī)則同步轉(zhuǎn)換被交替觸發(fā)所中斷。
(9)混合同步注入+ 交叉模式:一個注入事件可以中斷一個交叉轉(zhuǎn)換。這種情況下,交叉轉(zhuǎn)換被中斷,注入轉(zhuǎn)換被啟動,在注入序列轉(zhuǎn)換結(jié)束時,交叉轉(zhuǎn)換被恢復。