![CH03-08-STM32F40x的ADC模塊原理電子課件_第1頁](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWWjwSmAP2_pAAG-s5Nb6os207.jpg)
![CH03-08-STM32F40x的ADC模塊原理電子課件_第2頁](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWWjwSmAP2_pAAG-s5Nb6os2072.jpg)
![CH03-08-STM32F40x的ADC模塊原理電子課件_第3頁](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWWjwSmAP2_pAAG-s5Nb6os2073.jpg)
![CH03-08-STM32F40x的ADC模塊原理電子課件_第4頁](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWWjwSmAP2_pAAG-s5Nb6os2074.jpg)
![CH03-08-STM32F40x的ADC模塊原理電子課件_第5頁](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWWjwSmAP2_pAAG-s5Nb6os2075.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《嵌入式系統(tǒng)原理與開發(fā)教程》STM32F40x的ADC模塊原理主講人:賴樹明東莞理工學(xué)院01ADC模塊介紹02ADC模塊框架分析03ADC模塊寄存器分析04ADC模塊應(yīng)用示例01ADC模塊介紹ADC概念A(yù)DC關(guān)鍵特征ADC模塊介紹ADC概述01MCU只能處理數(shù)字信號,但是生活中事物都是以模擬信號形式存在,無法直接測量,比如光照強(qiáng)度,需要通過ADC將這些模擬量轉(zhuǎn)換成具體的數(shù)字量,供用戶去查看以及CPU進(jìn)行處理使用。概述逐次逼近型ADC:將輸入的模擬信號和參考電壓作多次比較,使轉(zhuǎn)換后得到的數(shù)字量在數(shù)值上逐次逼近輸入模擬量對應(yīng)的值。并聯(lián)比較型ADC:使用多個(gè)比較器,各量級同時(shí)比較,轉(zhuǎn)化速度快,但成本較高(n位ADC需要2n-1個(gè)比較器)。積分型ADC:將輸入模擬信號轉(zhuǎn)化成與之成正比的時(shí)間間隔,然后利用計(jì)數(shù)器對固定頻率的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)器的值就是轉(zhuǎn)換結(jié)果。ADC模塊介紹ADC模塊專業(yè)術(shù)語01STM32F407芯片中有多個(gè)12位逐次逼近型ADC,具有多19個(gè)復(fù)用通道。包含16個(gè)外部源、兩個(gè)內(nèi)部源以及VBAT通道。注入組和規(guī)則組:STM32的ADC可以把A/D轉(zhuǎn)換分成兩組,一組叫規(guī)則組,另外一組叫注入組,可以把它們理解為優(yōu)先級不相同的兩個(gè)組,規(guī)則組轉(zhuǎn)換是低優(yōu)先級,注入組通道轉(zhuǎn)換是高優(yōu)先級,當(dāng)注入組通道轉(zhuǎn)換觸發(fā)時(shí),可以打斷正在轉(zhuǎn)換的規(guī)則組的A/D轉(zhuǎn)換通道。單次不掃描:對轉(zhuǎn)換的通道只轉(zhuǎn)換一次,并且只轉(zhuǎn)換一個(gè)。單次掃描:對轉(zhuǎn)換的所有通道都只轉(zhuǎn)換一次。連續(xù)不掃描:對轉(zhuǎn)換的通道連續(xù)轉(zhuǎn)換,但是只轉(zhuǎn)換同一個(gè)通道。連續(xù)掃描:對所有需要轉(zhuǎn)換的通道都轉(zhuǎn)換一次后再接著下一輪轉(zhuǎn)換。術(shù)語解說ADC模塊介紹ADC模塊特征01可配置12位、10位、8位或6位分辨率在轉(zhuǎn)換結(jié)束、注入轉(zhuǎn)換結(jié)束以及發(fā)生模擬看門狗或溢出事件時(shí)產(chǎn)生中斷單次和連續(xù)轉(zhuǎn)換模式用于自動將通道0轉(zhuǎn)換為通道“n”的掃描模式可獨(dú)立設(shè)置各通道采樣時(shí)間外部觸發(fā)器選項(xiàng),可為規(guī)則轉(zhuǎn)換和注入轉(zhuǎn)換配置極性不連續(xù)采樣模式規(guī)則通道轉(zhuǎn)換期間可產(chǎn)生DMA請求雙重/三重模式(具有2個(gè)或更多ADC的器件提供)雙重/三重ADC模式下可配置的DMA數(shù)據(jù)存儲雙重/三重交替模式下可配置的轉(zhuǎn)換間延遲ADC電源要求:全速運(yùn)行時(shí)為2.4V到3.6V,慢速運(yùn)行時(shí)為1.8VADC輸入范圍:VREF≤VIN≤VREF+關(guān)鍵特征02ADC模塊框架分析ADC模塊介紹ADC框架02STM32F40x每個(gè)ADC模塊具有多達(dá)19個(gè)復(fù)用通道,可測量來自16個(gè)外部源:ADCx_IN0~ADCx_IN15、2個(gè)內(nèi)部源:VREFINT和內(nèi)部的濕度傳感器、VBAT通道的信號。這19路ADC通道可以劃分為注入通道和規(guī)則通道,注入通道可以同時(shí)分配4個(gè)通道,而規(guī)則通道可以分配16通道。啟動注入組ADC通道轉(zhuǎn)換的信號可以是定時(shí)器TIM1~TIM5、TIM8的內(nèi)部輸出信號以及EXTI_15外部中斷信號中的一個(gè)信號和使能JEXTEN[1:0]兩位控制;啟動規(guī)則組ADC通道轉(zhuǎn)換的信號可以是定時(shí)器TIM1~TIM5、TIM8的內(nèi)部輸出信號及EXTI_11外部中斷信號中的一個(gè)信號和軟件使能EXTEN[1:0]兩位控制。當(dāng)注入組ADC通道轉(zhuǎn)換完成后會把每個(gè)通道的轉(zhuǎn)換結(jié)果分別保存在各自的16位數(shù)據(jù)寄存器中,同時(shí)在會設(shè)置EOC和JEOC標(biāo)志位;當(dāng)規(guī)則組通道轉(zhuǎn)換完成后,會把轉(zhuǎn)換結(jié)果存放到同一個(gè)數(shù)據(jù)寄存器中(注意:這時(shí)會覆蓋上一個(gè)通道或者上一次轉(zhuǎn)換的結(jié)果),同時(shí)會設(shè)置EOC標(biāo)志位,編程時(shí)可以通過判斷這些位來確認(rèn)ADC是否已經(jīng)轉(zhuǎn)換完成,如果轉(zhuǎn)換完成,則可去讀取轉(zhuǎn)換的結(jié)果,ADC模塊介紹ADC框架02ADC編程可以使用查詢方式或中斷方式來獲利轉(zhuǎn)結(jié)果,如果使能了對應(yīng)的中斷信號EOCIE、JEOCIE,轉(zhuǎn)換完成的信號還會被傳給NVIC內(nèi)核中斷控制器,利用這個(gè)特點(diǎn)可以實(shí)現(xiàn)編程時(shí)使用中斷方式識別ADC是否已經(jīng)轉(zhuǎn)換完成,而不需要周期性查詢狀態(tài)標(biāo)志位。注意:規(guī)則通道組所有通道是共用一個(gè)數(shù)據(jù)寄存器的,當(dāng)使用多通道掃描轉(zhuǎn)換時(shí),每轉(zhuǎn)換一路信號,必須及時(shí)取出轉(zhuǎn)換的結(jié)果,否則數(shù)據(jù)寄存器時(shí)的內(nèi)容會被新的轉(zhuǎn)換結(jié)果所覆蓋,規(guī)則通道轉(zhuǎn)換期間可產(chǎn)生DMA請求,規(guī)則通道結(jié)合DMA模塊的實(shí)現(xiàn)轉(zhuǎn)換結(jié)果自動搬運(yùn),使用ADC模塊可以實(shí)現(xiàn)更高效的A/D轉(zhuǎn)換,ADC的19個(gè)通道還可以設(shè)置為模擬看門狗通道,當(dāng)使能模擬看門功能時(shí),指定通道的轉(zhuǎn)換結(jié)果不在模擬看門狗的上限和下限范圍內(nèi)時(shí),會硬件設(shè)置模擬看門狗AWD標(biāo)志,如果使能了模擬看門狗中斷功能位AWVDIE,信號會被輸送到NVIC內(nèi)核中斷控制器模塊,如果NVIC對應(yīng)的ADC中斷使能了,則會產(chǎn)生中斷信號,利用這個(gè)功能,可以自動檢測外部模擬信號。ADC模塊介紹ADC框架02采樣時(shí)間:ADC會在數(shù)個(gè)ADCCLK周期內(nèi)對輸入電壓進(jìn)行采樣,可使用ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位修改周期數(shù)。每個(gè)通道均可以使用不同的采樣時(shí)間進(jìn)行采樣。數(shù)據(jù)對齊:STM32F4xx系列芯片中的ADC都是12bitADC,但是數(shù)據(jù)寄存器位16bit,用戶可以自定義選擇右對齊或左對齊,一般采用右對齊方式。外部觸發(fā)轉(zhuǎn)換和觸發(fā)極性:可以通過外部事件(例如,定時(shí)器捕獲、EXTI中斷線)觸發(fā)轉(zhuǎn)換。如果EXTEN[1:0]控制位(對于行規(guī)轉(zhuǎn)換)或JEXTEN[1:0]位(對于注入轉(zhuǎn)換)不等于“0b00”,則外部事件能夠以所選極性觸發(fā)轉(zhuǎn)換。STM32F4xx系列芯片ADC具有16中觸發(fā)轉(zhuǎn)換方式。STM32F4系列芯片ADC功能很強(qiáng)大,初學(xué)者先學(xué)習(xí)基本的軟件觸發(fā)單通道轉(zhuǎn)換的方式,再學(xué)習(xí)其他的模式。03ADC模塊寄存器ADC模塊寄存器分析03位5—OVR:來及時(shí)取出數(shù)據(jù),溢出時(shí)硬件置1,需軟件清零。溢出檢測僅在DMA=1或EOCS=1時(shí)使能。位2—JEOC:組內(nèi)所有注入通道轉(zhuǎn)換結(jié)束時(shí),硬件置1,需軟件清零。0:轉(zhuǎn)換未完成;1:轉(zhuǎn)換已完成。位1—EOC:規(guī)則組通道轉(zhuǎn)換結(jié)束后,硬件將該位置1。通過軟件或通過讀取ADC_DR寄存器將該位清零。根據(jù)EOCS不同,含義不相同:
EOCS=0:規(guī)則組中每個(gè)通道轉(zhuǎn)換結(jié)束:0:轉(zhuǎn)換未完成;1:轉(zhuǎn)換已完成。
EOCS=1:規(guī)則組中所有通道轉(zhuǎn)換結(jié)束0:轉(zhuǎn)換序列未完成;1:轉(zhuǎn)換序列已完成。位0—AWD:模擬看門狗標(biāo)志:當(dāng)轉(zhuǎn)換電壓超過在ADC_LTR和ADC_HTR寄存器中編程的值時(shí),硬件將該位置1。但需要通過軟件清零。0:未發(fā)生模擬看門狗事件;1:發(fā)生模擬看門狗事件。ADC狀態(tài)寄存器(ADC_SR)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位25:24—RES[1:0]:分辨率,通過軟件寫入這些位可選擇轉(zhuǎn)換的分辨率。00:12位(15ADCCLK周期);01:10位(13ADCCLK周期);10:8位(11ADCCLK周期);11:6位(9ADCCLK周期)。位23—AWDEN:規(guī)則通道上的模擬看門狗使能,此位由軟件置1和清零。0:在規(guī)則通道上禁止模擬看門狗;1:在規(guī)則通道上使能模擬看門狗。位22—JAWDEN:注入通道上的模擬看門狗使能,此位由軟件置1和清零。0:在注入通道上禁止模擬看門狗;1:在注入通道上使能模擬看門狗。位15:13—DISCNUM[2:0]:不連續(xù)采樣模式通道計(jì)數(shù)用于定義在接收到外部觸發(fā)后于不連續(xù)采樣模式下轉(zhuǎn)換的規(guī)則通道數(shù)。000:1個(gè)通道;
001:2個(gè)通道;
...
111:8個(gè)通道。ADC控制寄存器1(ADC_CR1)(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位12—JDISCEN:注入通道的不連續(xù)采樣模式0:禁止注入通道的不連續(xù)采樣模式;1:使能注入通道的不連續(xù)采樣模式。位11—DISCEN:規(guī)則通道的不連續(xù)采樣模式0:禁止規(guī)則通道的不連續(xù)采樣模式;1:使能規(guī)則通道的不連續(xù)采樣模式。位10—JAUTO:注入組自動轉(zhuǎn)換軟件將該位置1和清零可在規(guī)則組轉(zhuǎn)換后分別使能/禁止注入組自動轉(zhuǎn)換。0:禁止注入組自動轉(zhuǎn)換;1:使能注入組自動轉(zhuǎn)換。位9—AWDSGL:在掃描模式下使能單一通道上的看門狗軟件將該位置1和清零可分別使能/禁止通過AWDCH[4:0]位確定的通道上的模擬看門狗。0:在所有通道上使能模擬看門狗;1:在單一通道上使能模擬看門狗。ADC控制寄存器1(ADC_CR1)(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位8—SCAN:掃描模式通過ADC_SQRx或ADC_JSQRx寄存器選擇的輸入。0:禁止掃描模式;1:使能掃描模式。位7—JEOCIE:注入通道的中斷使能
0:禁止JEOC中斷;1:使能JEOC中斷。位6—AWDIE:模擬看門狗中斷使能
0:禁止模擬看門狗中斷;1:使能模擬看門狗中斷。位5—EOCIE:EOC中斷使能
0:禁止EOC中斷;1:使能EOC中斷。位4:0—AWDCH[4:0]:模擬看門狗通道選擇位00000:ADC模擬輸入通道0;
00001:ADC模擬輸入通道1;
...01111:ADC模擬輸入通道15;
10000:ADC模擬輸入通道16;10001:ADC模擬輸入通道17;
10010:ADC模擬輸入通道18。ADC控制寄存器1(ADC_CR1)(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位30—SWSTART:通過軟件將該位置1可開始轉(zhuǎn)換,而硬件會在轉(zhuǎn)換開始后將該位清零。0:復(fù)位狀態(tài);1:開始轉(zhuǎn)換規(guī)則通道。注意:該位只能在ADON=1時(shí)置1,否則不會啟動轉(zhuǎn)換。位29:28—EXTEN:規(guī)則通道的外部觸發(fā)使能通過軟件將這些位置1和清零可選擇外部觸發(fā)極性和使能規(guī)則組的觸發(fā)。00:禁止觸發(fā)檢測;
01:上升沿上的觸發(fā)檢測;10:下降沿上的觸發(fā)檢測;11:上升沿和下降沿上的觸發(fā)檢測。位27:24—EXTSEL[3:0]:為規(guī)則組選擇外部事件這些位可選擇用于觸發(fā)規(guī)則組轉(zhuǎn)換的外部事件。0000:定時(shí)器1CC1事件;0001:定時(shí)器1CC2事件;.....
其他值請閱讀參考芯片手冊ADC控制寄存器2(ADC_CR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位22—JSWSTART:開始轉(zhuǎn)換注入通道,轉(zhuǎn)換開始后,軟件將該位置1,而硬件將該位清零。0:復(fù)位狀態(tài);1:開始轉(zhuǎn)換注入通道。注意:該位只能在ADON=1時(shí)置1,否則不會啟動轉(zhuǎn)換。位21:20—JEXTEN:注入通道的外部觸發(fā)使能通過軟件將這些位置1和清零可選擇外部觸發(fā)極性和使能注入組的觸發(fā)。00:禁止觸發(fā)檢測;
01:上升沿的觸發(fā)檢測;10:下降沿的觸發(fā)檢測;11:上升沿和下降沿的觸發(fā)檢測。位19:16—JEXTSEL[3:0]:為注入組選擇外部事件,用于觸發(fā)注入組轉(zhuǎn)換的外部事件。0000:定時(shí)器1CC4事件;0001:定時(shí)器1TRGO事件;.....
其他值請閱讀參考芯片手冊ADC控制寄存器2(ADC_CR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位11—ALIGN:數(shù)據(jù)對齊,一般比較常用的是右對齊方式,這樣讀取出來的結(jié)果可以直接使用。0:右對齊;1:左對齊。12位數(shù)據(jù)右對齊如右圖所示:12位數(shù)據(jù)左對齊如右圖所示:說明:從數(shù)據(jù)存儲的位置來看,使用右對齊方式比較符合我們使用習(xí)慣。ADC控制寄存器2(ADC_CR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位10—EOCS:結(jié)束轉(zhuǎn)換選擇0:在每個(gè)規(guī)則轉(zhuǎn)換序列結(jié)束時(shí)將EOC位置1。溢出檢測僅在DMA=1時(shí)使能。1:在每個(gè)規(guī)則轉(zhuǎn)換結(jié)束時(shí)將EOC位置1,使能溢出檢測。位1—CONT:連續(xù)轉(zhuǎn)換,該位置1時(shí),轉(zhuǎn)換將持續(xù)進(jìn)行,直到該位清零。0:單次轉(zhuǎn)換模式;1:連續(xù)轉(zhuǎn)換模式。位0—ADON:A/D轉(zhuǎn)換器開啟/關(guān)閉;0:禁止ADC轉(zhuǎn)換并轉(zhuǎn)至掉電模式;1:使能ADC。ADC控制寄存器2(ADC_CR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03位10—EOCS:結(jié)束轉(zhuǎn)換選擇0:在每個(gè)規(guī)則轉(zhuǎn)換序列結(jié)束時(shí)將EOC位置1。溢出檢測僅在DMA=1時(shí)使能。1:在每個(gè)規(guī)則轉(zhuǎn)換結(jié)束時(shí)將EOC位置1,使能溢出檢測。位1—CONT:連續(xù)轉(zhuǎn)換,該位置1時(shí),轉(zhuǎn)換將持續(xù)進(jìn)行,直到該位清零。0:單次轉(zhuǎn)換模式;1:連續(xù)轉(zhuǎn)換模式。位0—ADON:A/D轉(zhuǎn)換器開啟/關(guān)閉;0:禁止ADC轉(zhuǎn)換并轉(zhuǎn)至掉電模式;1:使能ADC。ADC控制寄存器2(ADC_CR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03ADC可以為每一個(gè)通道設(shè)置獨(dú)立的轉(zhuǎn)換時(shí)間,ADC_SMPR1寄存器用來設(shè)置通道10~18的轉(zhuǎn)換時(shí)間,每3個(gè)位設(shè)置一個(gè)通道轉(zhuǎn)換時(shí)間,單位是ADC轉(zhuǎn)換時(shí)鐘周期。位26:0—SMPx[2:0]:通道X采樣時(shí)間選擇通過軟件寫入這些位可分別為各個(gè)通道選擇采樣時(shí)間。在采樣周期期間,通道選擇位必須保持不變。000:3個(gè)周期;001:15個(gè)周期;....111:480個(gè)周期??傓D(zhuǎn)換時(shí)間的計(jì)算公式為:Tconv=采樣時(shí)間+12個(gè)周期示例:ADCCLK=30MHz且采樣時(shí)間等于3個(gè)周期時(shí),Tconv的總轉(zhuǎn)換時(shí)間如下:Tconv=3+12=15個(gè)周期=0.5μsADC采樣時(shí)間寄存器1(ADC_SMPR1)(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03這個(gè)寄存器和ADC_SMPR1寄存器作用相同,區(qū)別是它用來設(shè)置通道0~9的轉(zhuǎn)換時(shí)間。位29:0—SMPx[2:0]:通道X采樣時(shí)間選擇,通過軟件寫入這些位可分別為各個(gè)通道選擇采樣時(shí)間。在采樣周期期間,通道選擇位必須保持不變。000:3個(gè)周期;001:15個(gè)周期;010:28個(gè)周期;011:56個(gè)周期;100:84個(gè)周期;101:112個(gè)周期;110:144個(gè)周期;111:480個(gè)周期。ADC采樣時(shí)間寄存器2(ADC_SMPR2)(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03規(guī)則組總共有16個(gè)通道,并且轉(zhuǎn)換順序可以自由設(shè)置,該寄存器用來設(shè)置規(guī)則通道中要轉(zhuǎn)換的總數(shù)量,以及第13~16次轉(zhuǎn)換對應(yīng)的ADC通道編號.位23:20—L[3:0]:規(guī)則通道序列長度,即規(guī)則組中需要進(jìn)行多少個(gè)通道轉(zhuǎn)換。
0000:1次轉(zhuǎn)換;0001:2次轉(zhuǎn)換;
...1111:16次轉(zhuǎn)換。位19:15—SQ16[4:0]:規(guī)則序列中的第16次轉(zhuǎn)換,配置第16次轉(zhuǎn)換對應(yīng)的ADC通道編號。位14:10—SQ15[4:0]:規(guī)則序列中的第15次轉(zhuǎn)換,配置第15次轉(zhuǎn)換對應(yīng)的ADC通道編號位9:5—SQ14[4:0]:
規(guī)則序列中的第14次轉(zhuǎn)換,配置第14次轉(zhuǎn)換對應(yīng)的ADC通道編號位4:0—SQ13[4:0]:
規(guī)則序列中的第13次轉(zhuǎn)換,配置第13次轉(zhuǎn)換對應(yīng)的ADC通道編號ADC規(guī)則序列寄存器1(ADC_SQR1)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03該寄存器作用和上一個(gè)ADC_SQR1大致相同,它是用來設(shè)置第7~12次轉(zhuǎn)換對應(yīng)的ADC通道編號.位23:20—L[3:0]:規(guī)則通道序列長度,即規(guī)則組中需要進(jìn)行多少個(gè)通道轉(zhuǎn)換。
0000:1次轉(zhuǎn)換;0001:2次轉(zhuǎn)換;
...1111:16次轉(zhuǎn)換。位19:15—SQ16[4:0]:規(guī)則序列中的第16次轉(zhuǎn)換,配置第16次轉(zhuǎn)換對應(yīng)的ADC通道編號。位14:10—SQ15[4:0]:規(guī)則序列中的第15次轉(zhuǎn)換,配置第15次轉(zhuǎn)換對應(yīng)的ADC通道編號位9:5—SQ14[4:0]:
規(guī)則序列中的第14次轉(zhuǎn)換,配置第14次轉(zhuǎn)換對應(yīng)的ADC通道編號位4:0—SQ13[4:0]:
規(guī)則序列中的第13次轉(zhuǎn)換,配置第13次轉(zhuǎn)換對應(yīng)的ADC通道編號ADC規(guī)則序列寄存器2(ADC_SQR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03該寄存器作用和上一個(gè)ADC_SQR1大致相同,它是用來設(shè)置第7~12次轉(zhuǎn)換對應(yīng)的ADC通道編號。位29:26—SQ12[4:0]:規(guī)則序列中的第12次轉(zhuǎn)換,配置第12次轉(zhuǎn)換對應(yīng)的ADC通道編號。位24:20—SQ11[4:0]:規(guī)則序列中的第11次轉(zhuǎn)換,配置第11次轉(zhuǎn)換對應(yīng)的ADC通道編號。位19:15—SQ10[4:0]:規(guī)則序列中的第10次轉(zhuǎn)換,配置第10次轉(zhuǎn)換對應(yīng)的ADC通道編號。位14:10—SQ9[4:0]:
規(guī)則序列中的第9次轉(zhuǎn)換,配置第9次轉(zhuǎn)換對應(yīng)的ADC通道編號。位9:5—SQ8[4:0]:
規(guī)則序列中的第8次轉(zhuǎn)換,配置第8次轉(zhuǎn)換對應(yīng)的ADC通道編號。位4:0—SQ7[4:0]:
規(guī)則序列中的第7次轉(zhuǎn)換,配置第7次轉(zhuǎn)換對應(yīng)的ADC通道編號。ADC規(guī)則序列寄存器2(ADC_SQR2)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03該寄存器作用和上一個(gè)ADC_SQR2大致相同,它用來設(shè)置第1~5次轉(zhuǎn)換對應(yīng)的ADC通道編號.位29:25—SQ6[4:0]:規(guī)則序列中的第6次轉(zhuǎn)換,配置第6次轉(zhuǎn)換對應(yīng)的ADC通道編號。位24:20—SQ5[4:0]:規(guī)則序列中的第5次轉(zhuǎn)換,配置第5次轉(zhuǎn)換對應(yīng)的ADC通道編號。位19:15—SQ4[4:0]:規(guī)則序列中的第4次轉(zhuǎn)換,配置第4次轉(zhuǎn)換對應(yīng)的ADC通道編號。位14:10—SQ3[4:0]:規(guī)則序列中的第3次轉(zhuǎn)換,配置第3次轉(zhuǎn)換對應(yīng)的ADC通道編號。位9:5—SQ2[4:0]:
規(guī)則序列中的第2次轉(zhuǎn)換,配置第2次轉(zhuǎn)換對應(yīng)的ADC通道編號。位4:0—SQ1[4:0]:
規(guī)則序列中的第1次轉(zhuǎn)換,配置第1次轉(zhuǎn)換對應(yīng)的ADC通道編號。ADC規(guī)則序列寄存器3(ADC_SQR3)
(只對比較常用域進(jìn)行說明)ADC模塊寄存器分析03每個(gè)流入通道有一個(gè)獨(dú)立的數(shù)據(jù)寄存器存放轉(zhuǎn)換結(jié)果,這樣就可以避免不幾流入通道轉(zhuǎn)換結(jié)果覆蓋的情況
。位15:0—JDATA[15:0]:注入數(shù)據(jù)這些位為只讀。它們包括來自注入通道X的轉(zhuǎn)換結(jié)果。數(shù)據(jù)有左對齊和右對齊兩種方式。ADC注入數(shù)據(jù)寄存器x(ADC_JDRx)(x=1..4)ADC模塊寄存器分析03位15:0—DATA[15:0]:規(guī)則數(shù)據(jù)這些位為只讀。它們包括來自規(guī)則通道的轉(zhuǎn)換結(jié)果。和注入數(shù)據(jù)寄存器一樣,數(shù)據(jù)也有有左對齊和右對齊兩種方式。注意:所以規(guī)則通道轉(zhuǎn)換都是共用該數(shù)據(jù)寄存器,因此使用編程時(shí)要注意及時(shí)取出轉(zhuǎn)換結(jié)果。ADC規(guī)則數(shù)據(jù)寄存器(ADC_DR)ADC模塊寄存器分析03位23—TSVREFE:溫度傳感器和VREFINT使能0:禁止溫度傳感器和VREFINT通道;1:使能溫度傳感器和VREFINT通道。注意:對于STM32F42x和STM32F43x器件,當(dāng)TSVREFE位置1時(shí)必須禁止VBATE。兩個(gè)位同時(shí)置1時(shí),僅進(jìn)行VBAT轉(zhuǎn)換。位22—VBATE:VBAT使能,通過軟件將該位置1和清零可使能/禁止VBAT通道。0:禁止VBAT通道;1:使能VBAT通道。位17:16—ADCPRE:配置ADC的時(shí)鐘頻率,該時(shí)鐘為所有ADC所共用。00:PCLK22分頻;
01:PCLK24分頻,STM32F407工程默認(rèn)配置PCLK2是84M;10:PCLK26分頻;
11:PCLK28分頻。位2
說明:其他DMA相關(guān)的域以及多重ADC使用比較復(fù)雜,涉及知識點(diǎn)很多,需要時(shí)再針對性學(xué)習(xí)。ADC通用控制寄存器(ADC_CCR)(只對比較常用域進(jìn)行說明)04ADC模塊示例硬件分析軟件分析軟件編程原理圖說明利用光敏電阻,調(diào)節(jié)電壓,并且利用STM32F407
的ADC
采集電壓,再進(jìn)行處理。如下所示:原理圖分析ADC的基準(zhǔn)電壓為3.3V;模擬信號接在PA4上,上面具有ADC1/2_IN4功能;PA4引腳上接著一個(gè)光敏電阻,根據(jù)光照強(qiáng)度不同,電阻值發(fā)生變化導(dǎo)致輸出電壓不相同,將這個(gè)模擬量送入STM32F407的ADC模塊進(jìn)行測量轉(zhuǎn)換成數(shù)字量。STM32F40XADC模塊示例硬件分析04設(shè)計(jì)思路①初始化PA4:開PA組時(shí)鐘、復(fù)用功能配置為模擬功能;②初始化ADC:開ADC1的時(shí)鐘、
配置CCR:配置ADC時(shí)鐘分頻比
配置CR1:設(shè)置為12位分辨率、禁止規(guī)則通道和注入通道模擬看門狗、禁止掃描模式、使能EOC中斷(其實(shí)CR1初始化只需要配置這一項(xiàng),其他默認(rèn)即可);
配置CR2:選擇規(guī)則組為軟件觸發(fā)方式、數(shù)據(jù)右對齊、禁止DMA、禁止連續(xù)轉(zhuǎn)換、使能ADC模塊(其實(shí)CR2初始化只需要配置這一項(xiàng),其他默認(rèn)即可);
配置SMPR2:轉(zhuǎn)換時(shí)間,根據(jù)需要自由配置,本次只使用IN4一個(gè)通道,因此需要配置SMPR2中的SMP0[2:0]、
配置ADC_SQR1[23:20]配置1(本次使用規(guī)則組轉(zhuǎn)換,只使用IN4一個(gè)通道,因此選擇轉(zhuǎn)換1次)、配置ADC_SQR3[4:0]值5);③ADC中斷配置:本次使用中斷方式實(shí)現(xiàn)ADC轉(zhuǎn)換,因此配置使能EOC中斷后,還需要在NVIC中斷控制器中配置ADC中斷相關(guān)信息:優(yōu)先級和使能;④編寫ADC中斷服務(wù)函數(shù):本次使用規(guī)則組,軟件觸發(fā)轉(zhuǎn)換方式進(jìn)行ADC轉(zhuǎn)換,因此中斷程序中需要判斷SR寄存器中的EOC位是否為1來確定ADC已經(jīng)轉(zhuǎn)換完成,讀取數(shù)值保存,并且設(shè)置一個(gè)普通變量標(biāo)志,讓主程序可以根據(jù)標(biāo)志打印結(jié)果,并且啟動新的一次轉(zhuǎn)換;⑤通過啟動ADC轉(zhuǎn)換:配置ADC_CR2位30SWSTART為1,啟動一次轉(zhuǎn)換,啟動后這個(gè)位會自動清零;STM32F40XADC模塊示例軟件分析04ADC初始化voidadc1_in4_init(void){RCC->AHB1ENR|=1<<0;
//開PA組時(shí)鐘GPIOA->MODER|=0X3<<8;
//PA4配置為模擬功能RCC->APB2ENR|=1<<8;
//開ADC1時(shí)鐘ADC->CCR&=~(0X3<<16);ADC->CCR|=1<<16;
//配置4分頻值,ADCCLK=21MHzADC1->CR1=1<<5;//位5EOCIE:EOC中斷使能,其他設(shè)置為0ADC1->CR2|=1<<0;//選擇注入通道,單次不掃描模式。ADC1->SMPR2=7<<0;
//480個(gè)周期采樣時(shí)間;轉(zhuǎn)換結(jié)束需要23.4usADC1->SQR1=1<<20;
//總共轉(zhuǎn)換1次ADC1->SQR3=4<<0;
//第一次轉(zhuǎn)換是通道4//NVIC中斷使能配置:默認(rèn)優(yōu)先級,優(yōu)先級和分組策略用戶可根據(jù)需要自行配置NVIC_EnableIRQ(ADC_IRQn); }軟件編程04STM32F40XADC模塊示例ADC啟動/**函數(shù)功能:軟件方式啟動一次ADC規(guī)則組轉(zhuǎn)換*/voidadc1_swstart(void){ ADC1->CR2|=1<<30;}軟件編程04STM32F40XADC模塊示例中斷服務(wù)程序軟件編程04STM32F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力事故預(yù)防與應(yīng)急處理培訓(xùn)
- 中草藥種植的農(nóng)業(yè)市場預(yù)測與分析考核試卷
- 電力系統(tǒng)故障預(yù)警與應(yīng)急處理措施
- 數(shù)字創(chuàng)意營銷與專業(yè)技能培訓(xùn)考核試卷
- 電子商務(wù)交易中的稅收法律問題
- 現(xiàn)代汽車設(shè)計(jì)與制造的綠色環(huán)保理念實(shí)踐
- 現(xiàn)代人健康管理肥胖癥的全面解決方案
- 2025-2030年數(shù)字全息顯微鏡行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年文具收納盒行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年掌上編程技巧視頻教程行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 崩漏?。ó惓W訉m出血)中西醫(yī)診療方案
- 挪威云杉葉提取物在油性皮膚護(hù)理中的應(yīng)用研究
- 京東快遞工作合同模板
- 2024年內(nèi)蒙古政府采購云平臺題庫
- 山東德州市寧津縣2023-2024學(xué)年五年級下學(xué)期期末考試語文試題
- 安全生產(chǎn)專項(xiàng)整治三年行動全套臺賬、表格
- 市第一人民醫(yī)院“十四五”發(fā)展規(guī)劃(2020-2025)
- 2024年湖北孝達(dá)交通投資有限公司招聘筆試沖刺題(帶答案解析)
- 初中作業(yè)設(shè)計(jì)教師培訓(xùn)
- JTGT F20-2015 公路路面基層施工技術(shù)細(xì)則
- 2023年湖北省普通高中學(xué)業(yè)水平合格性考試地理試題(解析版)
評論
0/150
提交評論