引入
MM32F5270的ADC可配置4個注入通道來擴(kuò)展轉(zhuǎn)換通道,那么可進(jìn)行轉(zhuǎn)換的通道最多可達(dá)20個。
特點
1.通道優(yōu)先級
注入通道轉(zhuǎn)換順序從JSQ0 ~ JSQ3優(yōu)先級由高到底依次轉(zhuǎn)換。
2. 通道轉(zhuǎn)換方式
支持單端轉(zhuǎn)換、差分轉(zhuǎn)換和偽差分轉(zhuǎn)換。
3. 數(shù)據(jù)補(bǔ)償
注入通道轉(zhuǎn)換的值減去對應(yīng)注入補(bǔ)償寄存器的值,補(bǔ)償后的結(jié)果可能為負(fù)值,因此配置了注入補(bǔ)償寄存器的注入通道轉(zhuǎn)換結(jié)果是有符號數(shù)據(jù),根據(jù)數(shù)據(jù)對齊方式不同符號位SEXT不同。圖3.1描述了數(shù)據(jù)分辨率與數(shù)據(jù)補(bǔ)償左對齊關(guān)系,圖3.2描述數(shù)據(jù)對齊及注入通道符號位位置。
圖3.1 數(shù)據(jù)分辨率與數(shù)據(jù)補(bǔ)償左對齊
圖3.2 數(shù)據(jù)對齊
4. 注入通道中斷
注入通道序列轉(zhuǎn)換結(jié)束中斷(JEOSIF)、注入通道轉(zhuǎn)換結(jié)束中斷(JEOCIF)和注入通道采樣結(jié)束中斷(JEOSMPIF)。
5. 注入通道啟動轉(zhuǎn)換
主要有兩種方式,第一種是在任意通道工作模式下,使能自動注入ANYCR_JAUTO,當(dāng)任意通道序列轉(zhuǎn)換完成后,注入通道會自動緊跟著轉(zhuǎn)換;第二種是自行設(shè)置注入轉(zhuǎn)換使能ANYCR_JADST,即可轉(zhuǎn)換注入通道。注意注入通道轉(zhuǎn)換完成后ANYCR_JADST,將被硬自動清除。
例程介紹
在任意通道工作模式下,配置規(guī)則組轉(zhuǎn)換序列,再配置注入組轉(zhuǎn)換序列,使能自動注入,查看注入通道是否轉(zhuǎn)換完成。
具體配置步驟:
1
配置ADC初始化結(jié)構(gòu)體,配置分辨率12位、單周期轉(zhuǎn)換、數(shù)據(jù)右對齊、單端轉(zhuǎn)換、參考內(nèi)部電壓
2
配置規(guī)則組轉(zhuǎn)換序列和每個規(guī)則通道的采樣時間,注入組轉(zhuǎn)換序列和每個注入通道的采樣時間
3
使能注入通道自動轉(zhuǎn)換
4
使能ADC
參數(shù)定義如下:
#defineAPP_ADC_SEQ_LEN3u #defineAPP_ADC_EXT_SEQ_LEN2u /*channelsinanysequence.*/ uint32_tapp_adc_seq_channels[APP_ADC_SEQ_LEN]= { BOARD_ADC_CHN_NUM_1, BOARD_ADC_CHN_NUM_4, BOARD_ADC_CHN_NUM_5, }; /*channelsininjectsequence.*/ uint32_tapp_adc_extseq_channels[APP_ADC_EXT_SEQ_LEN]= { BOARD_ADC_CHN_NUM_5, BOARD_ADC_CHN_NUM_1 };
配置代碼如下:
/*setuptheconverter.*/ ADC_Init_Typeadc_init; adc_init.Resolution=ADC_Resolution_Alt0; adc_init.ConvMode=ADC_ConvMode_SeqOneTime; adc_init.Align=ADC_Align_Right; adc_init.SingleDiffMode=ADC_SingleDiffConvMode_SingleEnd; adc_init.SingleVolt=ADC_SingleConvVref_Internal; ADC_Init(ADC1,&adc_init); /*setuptheconversionanysequence.*/ /*configregularsequencechannel*/ for(uint32_ti=0u;i
注:ADC轉(zhuǎn)換前必須獲取校驗因子,否則無法轉(zhuǎn)換。
結(jié)果如下圖:
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5295瀏覽量
119837 -
ADC采樣
+關(guān)注
關(guān)注
0文章
134瀏覽量
12818 -
ADC轉(zhuǎn)換
+關(guān)注
關(guān)注
0文章
12瀏覽量
3665
發(fā)布評論請先 登錄
相關(guān)推薦
評論