【经验】灵动微电子MM32F5270微控制器ADC注入通道的单周期采样的实现
灵动微电子MM32F5270微控制器的ADC可配置4个注入通道来扩展转换通道,那么可进行转换的通道最多可达20个。本文介绍MM32F5270平台ADC注入通道的单周期采样的实现。
特点
1、通道优先级
注入通道转换顺序从JSQ0 ~ JSQ3优先级由高到底依次转换。
2、通道转换方式
支持单端转换、差分转换和伪差分转换。
3、数据补偿
注入通道转换的值减去对应注入补偿寄存器的值,补偿后的结果可能为负值,因此配置了注入补偿寄存器的注入通道转换结果是有符号数据,根据数据对齐方式不同符号位SEXT不同。图3.1描述了数据分辨率与数据补偿左对齐关系,图3.2描述数据对齐及注入通道符号位位置。
4、注入通道中断
注入通道序列转换结束中断(JEOSIF)、注入通道转换结束中断(JEOCIF)和注入通道采样结束中断(JEOSMPIF)。
5、注入通道启动转换
主要有两种方式,第一种是在任意通道工作模式下,使能自动注入ANYCR_JAUTO,当任意通道序列转换完成后,注入通道会自动紧跟着转换;第二种是自行设置注入转换使能ANYCR_JADST,即可转换注入通道。注意注入通道转换完成后ANYCR_JADST,将被硬自动清除。
例程介绍
在任意通道工作模式下,配置规则组转换序列,再配置注入组转换序列,使能自动注入,查看注入通道是否转换完成。
具体配置步骤:
1、配置ADC初始化结构体,配置分辨率12位、单周期转换、数据右对齐、单端转换、参考内部电压
2、配置规则组转换序列和每个规则通道的采样时间,注入组转换序列和每个注入通道的采样时间
3、使能注入通道自动转换
4、使能ADC
参数定义如下:
#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转换前必须获取校验因子,否则无法转换。
结果如下图:
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自灵动MM32MCU公众号,原文标题为:灵动微课堂 (第257讲)|MM32F5270平台ADC注入通道的单周期采样的实现,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】灵动微电子MM32F0160微控制器开源项目:如何实现一套低成本带RGB灯效的机械键盘
灵动的软件与系统工程SE团队,基于带有 USB 外设模块的 MM32F0160 微控制器,实现了一套低成本带RGB灯效的机械键盘。这里将设计机械键盘的全过程开源出来,感兴趣的开发者,可以向灵动申请 MM32F0160 微控制器的样片,复刻一把自己专属的机械键盘,也可以继续进行二次开发,实现更加有趣的作品。
【经验】单独下载可执行文件到灵动MM32F5系列微控制器的几种简易方法
本文将以下载MicroPython固件文件到灵动MM32F5微控制器为例,总结了几种简单易用的方法,专门针对使用DAP-Link调试器的情况,通过常用图形界面工具,实现单独下载可执行文件的功能。
【经验】如何验证不同Flash对灵动微微控制器执行程序性能的影响
本文通过在QSPI Flash,片内Flash 与片内SRAM中分别运行测试工程Arm CMSIS-DSP FFT、Mbed-TLS RSA1024与Helix MP3 Decoder,获取微控制器性能数据,从而对比在不同Flash位置的执行速度的差异。
基于灵动MM32F0130微控制器的智能插排方案,实现远程开关控制、定时开关、随时了解家电设备的使用状况
智能插座又可以称为WIFI插座,在普通插座的功能基础上延伸了许多功能,如防雷击,防短路,防过载,防漏电,配合智能手机的APP应用,可以实现远程开关控制、定时开关、随时了解家电设备的使用状况。基于灵动MM32F0130微控制器的插排,具有以下特点:-内置Timer进行解码红外输入-通过串口与云端连接,进行远程控制,以及电量监控等-通过I2C与计量芯片通讯,进行异常检测,过流,过/欠压等保护
MM32SPIN023C 基于 ARM® Cortex®-M0 内核的 32 位微控制器数据手册
描述- MM32SPIN023C是一款基于ARM® Cortex®-M0内核的32位微控制器,具备高性能运动控制驱动功能。该产品具有60MHz的最高工作频率,内置32KB Flash存储器和4KB SRAM,支持多种外设,包括ADC、COMP、OPAMP、定时器、USART等。产品适用于电机驱动、照明电路、应急消防设备、玩具等多种应用场合。
型号- MM32SPIN023C
MM32G0001 基于 Arm® Cortex®-M0 内核的 32 位微控制器数据手册
型号- MM32G0001A1T,MM32G0001A6T1V,MM32G0001,MM32G0001A1NV,MM32G0001A6TV,MM32G0001A6T,MM32G0001A6T1,MM32G0001A1TV,MM32G0001A1N
MM32SPIN0280微控制器精准驱动电动自行车的智能核心
MM32SPIN0280微控制器作为电动自行车的主控单元,提供精确的动力控制、电助动与电驱动功能,同时确保骑行安全,满足现代城市出行的需求
MM32F0140 基于 Arm® Cortex®-M0 内核的 32 位微控制器数据手册
描述- 本资料介绍了MM32F0140微控制器,一款基于Arm® Cortex®-M0内核的32位微控制器。该芯片具有64KB闪存、8KB SRAM、丰富的外设接口和多种低功耗模式,适用于各种嵌入式系统。
型号- MM32F0141B1T,MM32F0141C1T,MM32F0144C4PV,MM32F0144C4QV,MM32F0144C1TV,MM32F0144C4P,MM32F0141B6P,MM32F0144C3N,MM32F0144C4N,MM32F0144C6P,MM32F0140,MM32F0144C6PV,MM32F0144C3NV,MM32F0144C1T,MM32F0141B4Q,MM32F0141C4P,MM32F0141C4Q,MM32F0141C4N,MM32F0141C6P,MM32F0141B3N,MM32F0144C4Q,MM32F0141B4P,MM32F0141C3N
灵动Cortex-M0内核微控制器的自诊断库通过IEC 60730-1及IEC 60335-1认证
灵动股份Arm® Cortex®-M0核心微控制器的自诊断库经必维电子电气检测,证明符合IEC 60730-1 Class B附录H&IEC60335-1附录R的功能安全需求规定,获得了VOC认证证书和测试报告。
MM32F0160 基于 Arm® Cortex®-M0 内核的 32 位微控制器数据手册
描述- 本资料为MM32F0160微控制器数据手册,详细介绍了该产品的特性、功能描述、订购信息、引脚定义及复用功能、电气特性、封装特性等。MM32F0160是一款基于Arm® Cortex®-M0内核的32位微控制器,具有128KB Flash存储器、16KB SRAM、多种外设模块和丰富的I/O端口,适用于工业物联网、PC外设、电子门锁控制、医疗保健设备等多种应用场合。
型号- MM32F0163D4QV,MM32F0162DAP,MM32F0163DAP,MM32F0163D7PV,MM32F0163D6PV,MM32F0160,MM32F0162D6P,MM32F0163D6P,MM32F0162D7P,MM32F0163D7P,MM32F0164D3N,MM32F0161D3N,MM32F0162D4Q,MM32F0163D4Q
基于ARM的MM32F5270 32位微控制器China Star-MC1数据表
描述- 本资料为MindMotion公司生产的MM32F5270系列32位微控制器的数据手册。该系列基于Arm China STAR-MC1核心,具有高达120MHz的主频,内置256KB闪存、192KB SRAM,并包含丰富的外设和I/O端口。产品具备多种低功耗模式,适用于工业控制、电梯控制、消防控制等领域。
型号- MM32F5277E8PV,MM32F5277E7PV,MM32F5277E9PV,MM32F5277,MM32F5270
MM32F0020 基于 Arm® Cortex®-M0 内核的 32 位微控制器数据手册
描述- 本资料介绍了MM32F0020微控制器,一款基于Arm® Cortex®-M0内核的32位产品。该产品具备48MHz的最高工作频率,内置32KB Flash存储器和2KB SRAM,支持多种低功耗模式。它集成了丰富的I/O端口和外设模块,包括ADC、定时器、通信接口等,适用于充电器、通信模块等多种应用场景。
型号- MM32F0020B1NV,MM32F0020,MM32F0020B1T,MM32F0020B1TV,MM32F0020B1N
基于微控制器MM32F3270的智能监护仪,实现精准监测与高效护理
MM32F3270微控制器为监护仪提供了从信号采集到数字处理的全方位解决方案,确保了医疗监测的高精度和高效率,助力提高护理工作的智能化水平。
MM32G0001 基于Arm®Cortex®-M0内核的32位微控制器 用户手册
描述- 本手册详细介绍了基于Arm®Cortex®-M0内核的32位微控制器MM32G0001的用户手册。内容涵盖系统架构、存储器、CRC循环冗余校验计算单元、电源控制、时钟和复位、通用端口、中断和事件、模拟/数字转换器(ADC)、高级控制定时器(TIM1)、通用定时器(TIM3和TIM14)、独立看门狗(IWDG)以及串行外设接口(SPI)等模块的特性和功能描述。还包括了相应的寄存器配置和使用方法。
型号- MM32G0001
MM32系列微控制器优化血氧仪性能与用户体验
MM32微控制器的集成LCD控制器和低功耗特性,为便携式血氧仪带来了更优化的性能和更持久的电池寿命,改善了用户的测量体验。
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
可来图定制均温板VC尺寸50*50mm~600*600 mm,厚度1mm~10mm,最薄0.3mm。当量导热系数可达10000W/M·K,散热量可达10KW, 功率密度可达50W/cm²。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论