0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MM32F5270平台ADC注入通道的单周期采样的实现

灵动MM32MCU 来源:灵动MM32MCU 2023-05-26 09:32 次阅读

引入

MM32F5270的ADC可配置4个注入通道来扩展转换通道,那么可进行转换的通道最多可达20个。

特点

1.通道优先级

注入通道转换顺序从JSQ0 ~ JSQ3优先级由高到底依次转换。

2. 通道转换方式

支持单端转换、差分转换和伪差分转换。

3. 数据补偿

注入通道转换的值减去对应注入补偿寄存器的值,补偿后的结果可能为负值,因此配置了注入补偿寄存器的注入通道转换结果是有符号数据,根据数据对齐方式不同符号位SEXT不同。图3.1描述了数据分辨率与数据补偿左对齐关系,图3.2描述数据对齐及注入通道符号位位置。

dbe697a6-fb2d-11ed-90ce-dac502259ad0.png

图3.1 数据分辨率与数据补偿左对齐

dc19aefc-fb2d-11ed-90ce-dac502259ad0.png

图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转换前必须获取校验因子,否则无法转换。

结果如下图:

dc33e2c2-fb2d-11ed-90ce-dac502259ad0.gif

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5310

    浏览量

    119983
  • adc
    adc
    +关注

    关注

    98

    文章

    6430

    浏览量

    544058
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41386
  • 采样
    +关注

    关注

    1

    文章

    120

    浏览量

    25536

原文标题:灵动微课堂 (第257讲)|MM32F5270平台ADC注入通道的单周期采样的实现

文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MM32F5270平台ADC注入通道周期采样实现

    MM32F5270ADC可配置4个注入通道来扩展转换通道,那么可进行转换的通道最多可达20个。
    的头像 发表于 06-01 17:25 1464次阅读
    <b class='flag-5'>MM32F5270</b><b class='flag-5'>平台</b><b class='flag-5'>ADC</b><b class='flag-5'>注入</b><b class='flag-5'>通道</b>的<b class='flag-5'>单</b><b class='flag-5'>周期</b><b class='flag-5'>采样</b>的<b class='flag-5'>实现</b>

    MM32F5270:高速ADC和COMP及三合一控制案例

    的 3 合 1 控制的例子来对前面几期的内容做一个综合的讲解。 1、高速 ADC ADC 用于将模拟信号转换成数字信号,是微控制器应用中必不可少的外设之一。 MM32F5270 中包含了 2 组高速
    的头像 发表于 05-31 16:51 4898次阅读

    基于MM32F5270开发板获取雨滴传感器的数据相关资料介绍

    1、基于MindSDK对接雨滴传感器我们还是来介绍一下开发板的相关参数。灵动MM32F5270开发板是搭载安谋科技“星辰”STAR-MC1处理器的全新高性能 MM32F5270微控制器,这个
    发表于 08-24 15:20

    MM32F5270是如何通过MindSwitch和CLU实现可任意编程外设间互联系统的

    MM32F5270 采用 MindSwitch 可实现 PWM 周期内任意时刻的 4 次 ADC 触发。还是以上述应用场景为例,依然用
    发表于 09-06 15:13

    MM32F5270总线架构设计

    本文介绍了MM32F5270 中所采用的多并发总线架构,并通过带显示的音频播放器的实例说明了该架构在实际应用中所能达到的吞吐率提升效果。
    的头像 发表于 05-11 11:15 2140次阅读
    <b class='flag-5'>MM32F5270</b>总线架构设计

    基于MM32F5270控制器的I2S音频播放

    MM32F5270 系列控制器支持 I2S 总线接口,本章节在接下来会对 MM32F5270 I2S进行介绍,并使用 MM32F5270 和 CS4344 芯片进行 I2S 通信来演示播放一段声音。
    的头像 发表于 09-16 10:39 2230次阅读

    MM32F5270】Keil开发环境搭建

    本文是对MM32F5270相关的灵动官网资料和社区现有几篇环境搭建帖的整理和总结。详细且完整的记录了——如何从零搭建MM32F5270 Keil开发环境以及如何编译运行MM32F5270 SDK中
    的头像 发表于 11-06 16:14 2613次阅读
    【<b class='flag-5'>MM32F5270</b>】Keil开发环境搭建

    MM32F5270 产品手册(中文版)

    MM32F5270 产品手册(中文版)
    发表于 02-23 18:45 0次下载
    <b class='flag-5'>MM32F5270</b> 产品手册(中文版)

    MM32F5270 产品手册(英文版)

    MM32F5270 产品手册(英文版)
    发表于 02-23 18:45 0次下载
    <b class='flag-5'>MM32F5270</b> 产品手册(英文版)

    MM32F5270 用户手册(中文版)

    MM32F5270 用户手册(中文版)
    发表于 02-23 18:46 0次下载
    <b class='flag-5'>MM32F5270</b> 用户手册(中文版)

    MM32F5270 用户手册(英文版)

    MM32F5270 用户手册(英文版)
    发表于 02-23 18:46 0次下载
    <b class='flag-5'>MM32F5270</b> 用户手册(英文版)

    MM32F5270 勘误表(中文版)

    MM32F5270 勘误表(中文版)
    发表于 02-23 18:47 0次下载
    <b class='flag-5'>MM32F5270</b> 勘误表(中文版)

    MM32F5270 勘误表(英文版)

    MM32F5270 勘误表(英文版)
    发表于 02-23 18:48 0次下载
    <b class='flag-5'>MM32F5270</b> 勘误表(英文版)

    MM32F5270平台ADC注入通道周期采样实现

    MM32F5270ADC可配置4个注入通道来扩展转换通道,那么可进行转换的通道最多可达20个。
    的头像 发表于 05-26 09:31 669次阅读
    <b class='flag-5'>MM32F5270</b><b class='flag-5'>平台</b><b class='flag-5'>ADC</b><b class='flag-5'>注入</b><b class='flag-5'>通道</b>的<b class='flag-5'>单</b><b class='flag-5'>周期</b><b class='flag-5'>采样</b>的<b class='flag-5'>实现</b>

    基于MM32F5270的I2S音频播放

    基于MM32F5270的I2S音频播放
    的头像 发表于 10-30 17:13 1114次阅读
    基于<b class='flag-5'>MM32F5270</b>的I2S音频播放