引入
MM32F5270的ADC可配置4个注入通道来扩展转换通道,那么可进行转换的通道最多可达20个。
特点
1.通道优先级
注入通道转换顺序从JSQ0 ~ JSQ3优先级由高到底依次转换。
2. 通道转换方式
支持单端转换、差分转换和伪差分转换。
3. 数据补偿
注入通道转换的值减去对应注入补偿寄存器的值,补偿后的结果可能为负值,因此配置了注入补偿寄存器的注入通道转换结果是有符号数据,根据数据对齐方式不同符号位SEXT不同。图3.1描述了数据分辨率与数据补偿左对齐关系,图3.2描述数据对齐及注入通道符号位位置。
图3.1 数据分辨率与数据补偿左对齐
图3.2 数据对齐
4. 注入通道中断
注入通道序列转换结束中断(JEOSIF)、注入通道转换结束中断(JEOCIF)和注入通道采样结束中断(JEOSMPIF)。
5. 注入通道启动转换
主要有两种方式,第一种是在任意通道工作模式下,使能自动注入ANYCR_JAUTO,当任意通道序列转换完成后,注入通道会自动紧跟着转换;第二种是自行设置注入转换使能ANYCR_JADST,即可转换注入通道。注意注入通道转换完成后ANYCR_JADST,将被硬自动清除。
例程介绍
在任意通道工作模式下,配置规则组转换序列,再配置注入组转换序列,使能自动注入,查看注入通道是否转换完成。
具体配置步骤:
1配置ADC初始化结构体,配置分辨率12位、单周期转换、数据右对齐、单端转换、参考内部电压
2配置规则组转换序列和每个规则通道的采样时间,注入组转换序列和每个注入通道的采样时间
3使能注入通道自动转换
4使能ADC
参数定义如下:
#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< 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转换前必须获取校验因子,否则无法转换。
结果如下图:
审核编辑:汤梓红
-
寄存器
+关注
关注
31文章
5336浏览量
120224 -
adc
+关注
关注
98文章
6495浏览量
544446 -
中断
+关注
关注
5文章
898浏览量
41468 -
采样
+关注
关注
1文章
121浏览量
25554
原文标题:灵动微课堂 (第257讲)|MM32F5270平台ADC注入通道的单周期采样的实现
文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论