引入
MM32F5270的ADC可配置4個(gè)注入通道來擴(kuò)展轉(zhuǎn)換通道,那么可進(jìn)行轉(zhuǎn)換的通道最多可達(dá)20個(gè)。
特點(diǎn)
**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ù)對齊及注入通道符號位位置。


4. 注入通道中斷
注入通道序列轉(zhuǎn)換結(jié)束中斷(JEOSIF)、注入通道轉(zhuǎn)換結(jié)束中斷(JEOCIF)和注入通道采樣結(jié)束中斷(JEOSMPIF)。
5. 注入通道啟動(dòng)轉(zhuǎn)換
主要有兩種方式,第一種是在任意通道工作模式下,使能自動(dòng)注入ANYCR_JAUTO,當(dāng)任意通道序列轉(zhuǎn)換完成后,注入通道會(huì)自動(dòng)緊跟著轉(zhuǎn)換;第二種是自行設(shè)置注入轉(zhuǎn)換使能ANYCR_JADST,即可轉(zhuǎn)換注入通道。注意注入通道轉(zhuǎn)換完成后ANYCR_JADST,將被硬自動(dòng)清除。
例程介紹
在任意通道工作模式下,配置規(guī)則組轉(zhuǎn)換序列,再配置注入組轉(zhuǎn)換序列,使能自動(dòng)注入,查看注入通道是否轉(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)換前必須獲取校驗(yàn)因子,否則無法轉(zhuǎn)換。
結(jié)果如下圖:

- 
                                轉(zhuǎn)換器
                                +關(guān)注
關(guān)注
27文章
9306瀏覽量
154730 - 
                                寄存器
                                +關(guān)注
關(guān)注
31文章
5517瀏覽量
128508 - 
                                串口中斷
                                +關(guān)注
關(guān)注
0文章
67瀏覽量
14529 - 
                                ADC采樣
                                +關(guān)注
關(guān)注
0文章
134瀏覽量
13508 - 
                                靈動(dòng)微
                                +關(guān)注
關(guān)注
5文章
176瀏覽量
23133 - 
                                MM32
                                +關(guān)注
關(guān)注
1文章
108瀏覽量
1287 
發(fā)布評論請先 登錄
MM32F5270:高速ADC和COMP及三合一控制案例
基于MM32F5270開發(fā)板獲取雨滴傳感器的數(shù)據(jù)相關(guān)資料介紹
MM32F5270是如何通過MindSwitch和CLU實(shí)現(xiàn)可任意編程外設(shè)間互聯(lián)系統(tǒng)的
MM32F5270總線架構(gòu)設(shè)計(jì)
    
基于MM32F5270控制器的I2S音頻播放
【MM32F5270】Keil開發(fā)環(huán)境搭建
    
MM32F5270平臺(tái)ADC注入通道的單周期采樣的實(shí)現(xiàn)
    
MM32F5270平臺(tái)ADC注入通道的單周期采樣的實(shí)現(xiàn)
    
          
        
        
MM32F5270平臺(tái)ADC注入通道的單周期采樣的實(shí)現(xiàn)
                
 
    
    
           
            
            
                
            
評論