引入
MM32F5270的ADC可配置4個注入通道來擴展轉(zhuǎn)換通道,那么可進行轉(zhuǎn)換的通道最多可達20個。
特點
**1. **通道優(yōu)先級
注入通道轉(zhuǎn)換順序從JSQ0 ~ JSQ3優(yōu)先級由高到底依次轉(zhuǎn)換。
2. 通道轉(zhuǎn)換方式
支持單端轉(zhuǎn)換、差分轉(zhuǎn)換和偽差分轉(zhuǎn)換。
3. 數(shù)據(jù)補償
注入通道轉(zhuǎn)換的值減去對應(yīng)注入補償寄存器的值,補償后的結(jié)果可能為負值,因此配置了注入補償寄存器的注入通道轉(zhuǎn)換結(jié)果是有符號數(shù)據(jù),根據(jù)數(shù)據(jù)對齊方式不同符號位SEXT不同。圖3.1描述了數(shù)據(jù)分辨率與數(shù)據(jù)補償左對齊關(guān)系,圖3.2描述數(shù)據(jù)對齊及注入通道符號位位置。
4. 注入通道中斷
注入通道序列轉(zhuǎn)換結(jié)束中斷(JEOSIF)、注入通道轉(zhuǎn)換結(jié)束中斷(JEOCIF)和注入通道采樣結(jié)束中斷(JEOSMPIF)。
5. 注入通道啟動轉(zhuǎn)換
主要有兩種方式,第一種是在任意通道工作模式下,使能自動注入ANYCR_JAUTO,當任意通道序列轉(zhuǎn)換完成后,注入通道會自動緊跟著轉(zhuǎn)換;第二種是自行設(shè)置注入轉(zhuǎn)換使能ANYCR_JADST,即可轉(zhuǎn)換注入通道。注意注入通道轉(zhuǎn)換完成后ANYCR_JADST,將被硬自動清除。
例程介紹
在任意通道工作模式下,配置規(guī)則組轉(zhuǎn)換序列,再配置注入組轉(zhuǎn)換序列,使能自動注入,查看注入通道是否轉(zhuǎn)換完成。
具體配置步驟:
參數(shù)定義如下:
#define APP_ADC_SEQ_LEN 3u
#define APP_ADC_EXT_SEQ_LEN 2u
/* channels in any sequence. */
uint32_t app_adc_seq_channels[APP_ADC_SEQ_LEN] =
{
BOARD_ADC_CHN_NUM_1,
BOARD_ADC_CHN_NUM_4,
BOARD_ADC_CHN_NUM_5,
};
/* channels in inject sequence. */
uint32_t app_adc_extseq_channels[APP_ADC_EXT_SEQ_LEN] =
{
BOARD_ADC_CHN_NUM_5,
BOARD_ADC_CHN_NUM_1
};
配置代碼如下:
/* setup the converter. */
ADC_Init_Type adc_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);
/* setup the conversion any sequence. */
/* config regular sequence channel */
for (uint32_t i = 0u; i < APP_ADC_SEQ_LEN; i++)
{
ADC_EnableSeqSlot(ADC1,i,app_adc_seq_channels[i]);
ADC_SetChnSampleTime(ADC1,app_adc_seq_channels[i], ADC_SampleTime_Alt7);
}
/* config inject channel. */
for (uint32_t i = 0u; i < APP_ADC_EXT_SEQ_LEN; i++)
{
ADC_EnableExtSeqSlot(ADC1, i, app_adc_extseq_channels[i]);
ADC_SetChnSampleTime(ADC1,app_adc_extseq_channels[i], ADC_SampleTime_Alt7);
}
/* enable the inject atuo conversion. */
ADC_EnableAutoExtSeqSlot(ADC1, true);
/* power on the converter. */
ADC_Enable(ADC1, true);
注:ADC轉(zhuǎn)換前必須獲取校驗因子,否則無法轉(zhuǎn)換。
結(jié)果如下圖:
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
9027瀏覽量
151539 -
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124192 -
串口中斷
+關(guān)注
關(guān)注
0文章
67瀏覽量
14315 -
ADC采樣
+關(guān)注
關(guān)注
0文章
134瀏覽量
13172 -
靈動微
+關(guān)注
關(guān)注
4文章
176瀏覽量
22959 -
MM32
+關(guān)注
關(guān)注
1文章
108瀏覽量
1079
發(fā)布評論請先 登錄
MM32F5270:高速ADC和COMP及三合一控制案例
基于MM32F5270開發(fā)板獲取雨滴傳感器的數(shù)據(jù)相關(guān)資料介紹
MM32F5270是如何通過MindSwitch和CLU實現(xiàn)可任意編程外設(shè)間互聯(lián)系統(tǒng)的
MM32F5270總線架構(gòu)設(shè)計

基于MM32F5270控制器的I2S音頻播放
【MM32F5270】Keil開發(fā)環(huán)境搭建

評論