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