【经验】芯科科技单片机EFM32PG22的ADC采样如何使用LDMA传输大于2048个数据?
SILICON LABS推出的EFM32PG22系列的MCU单片机,采用最新的Cortex-M33内核,主频高达76.8MHz,而功耗仅26μA/MHz,在EM2休眠模式只有1.10μA的功耗。集成16bit的ADC,多个USART、SPI、I2C通用接口功能,支持1.71V到3.8V宽电压供电,工作温度范围-40℃到125℃,有QFN32和QFN40两种小体积封装,是物联网、采集模块等应用的理想选择。
EFM32PG22主要是用于低功耗的应用环境,所以使用时需要尽可能的降低运行功耗。ADC是MCU常用的功能,在使用时可以将MCU设置为休眠模式,通过LDMA传输ADC的采样数据,从而降低MCU的运行功耗。
由于LDMA的传输计数寄存器位11位寄存器,所以LDMA一次最多只能传输2048个ADC采样数据,对于某些采集模块的应用,需要一次性获取更多的ADC采样数据,是否有办法让LDMA一次性传输更多数据呢?
答案是肯定的,EFM32PG22的LDMA提供了一个标识符的概念,可以配置多个标识符进行传输,完成一次传输后,会自动移到下一个标识符进行传输。这里例举一个Ping-Pong的传输模式。
图1 ping-pong的地址分配
Ping-Pong的传输方式是将LDMA的目的地址配置到两个空间A和B,当A地址传输完成,自动切换到B地址进行传输。当B地址传输完成,会自动切换到A地址进行传输。A传输完成和B传输完成都可以配置是否产生LDMA中断,方便对数据进行处理。这样就可以传输大于2048个数据。
下面例举了LDMA的初始化。LDMA_DESCRIPTOR_LINKREL_P2M_WORD函数中指定了LDMA源地址、目标地址、传输数据大小,最后的1表示传输完成后,下移一个标识符,-1表示上移一个标识符。如果只有1个目标地址,则可以配置为0。
doneIfs配置该标识符传输完是否产生LDMA中断,如果不需要产生中断则配置为0。
void initLDMA(uint32_t *buffer0, uint32_t *buffer1,uint32_t size)
{
LDMA_Init_t init = LDMA_INIT_DEFAULT;
// Initialize LDMA with default configuration
LDMA_Init(&init);
// Configure LDMA for transfer from IADC to memory
// LDMA will loop continuously
LDMA_TransferCfg_t transferCfg =
LDMA_TRANSFER_CFG_PERIPHERAL(ldmaPeripheralSignal_IADC0_IADC_SCAN);
// Set up descriptors for dual buffer transfer
descriptor[0] = (LDMA_Descriptor_t)LDMA_DESCRIPTOR_LINKREL_P2M_WORD(&IADC0->SCANFIFODATA, buffer0, size, 1);
descriptor[1] = (LDMA_Descriptor_t)LDMA_DESCRIPTOR_LINKREL_P2M_WORD(&IADC0->SCANFIFODATA, buffer1, size, -1);
descriptor[0].xfer.ignoreSrec = 1;
descriptor[1].xfer.ignoreSrec = 1;
// Enable interrupts
descriptor[0].xfer.doneIfs = 1;
descriptor[1].xfer.doneIfs = 1;
// Start transfer, LDMA will sample the IADC NUM_SAMPLES time, and then interrupt
LDMA_StartTransfer(IADC_LDMA_CH, &transferCfg, &descriptor[0]);
}
以上即为单片机EFM32PG22的ADC采样时,打破LDMA传输大小限制的方法,希望对各位工程师朋友有所帮助。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由东方的风提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】Silicon Labs 8位单片机EFM8BB21 GPIO输出配置与调试
Silicon Labs 创新型8位MCU提供完全集成的体验,非常适合物联网应用,提供了也接最快的速度和最低的功耗,同时EFM8系列车用8位MCU为当前市场上最具价值、最灵活和集成度更高的车载MCU。 GPIO为单片机中最常使用的功能,本文将以P0.0端口为例分享EFM8BB21的GPIO输出配置与调试。
【经验】芯科Simplicity Studio V5编译MCU EFM32PG23时如何调整编译优化等级
EFM32PG23使用Silicon Labs的集成开发环境Simplicity Studio V5进行程序开发。该开发软件中提供EFM32PG23所有外设的例程和硬件的图形化初始化配置界面,让产品开发更容易。
为物联网开发选择最佳的MCU架构
微控制器(MCU)如何在物联网设备中使用?开发人员又该如何为产品选择最合适的MCU解决方案?Silicon Labs产品营销高级经理Gopinath Krishniah先生将通过本篇博文说明MCU的应用知识和开发技巧,并介绍评估选用8位和32位MCU的关键考量。
芯科科技EFM和EFR系列MCU结合无线与AI/ML打造理想IoT开发平台
Silicon Labs(亦称“芯科科技”)在2023年12月12日举办的MCU专题Tech Talks技术讲座-“EFM和EFR: 面向物联网开发的通用MCU平台”已结束。本次MCU专题技术讲座中,除了回顾我们领先的MCU平台包括EFM8、EFM32和EFR32系列产品组合以外,并专门介绍最新发布的EFM8 BB5x系列8位微控制器新成员-EFM8 BB50。
PG26荣获中国电子报评选为“2024边缘AI MCU优秀案例”
Silicon Labs(亦称“芯科科技”)最新发布的EFM32PG26(PG26) 32位微控制器(MCU)近期荣获中国电子报评选并推荐为“2024边缘AI MCU优秀案例”。PG26通过提升了两倍的闪存和RAM容量以及GPIO的数量,同时还嵌入人工智能和机器学习(AI/ML)硬件加速器来满足各种低功耗和高性能嵌入式物联网应用需求,因而获得行业的认可及青睐。
SILICON LABS 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,频率24MHz~80MHz,Flash存储4kB~2048kB,RAM存储2kB~512kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
Dig I/O Pins
|
ADC 1
|
DAC
|
USB
|
Cap Sense
|
LCD
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
EFM32GG290F512-BGA112
|
32位MCU
|
EFM32 Giant Gecko
|
48
|
512
|
128
|
1.98
|
3.8
|
BGA112
|
10x10
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
90
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
-
|
Cap Sense
|
-
|
Temp Sensor
|
4
|
7
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
选型表 - SILICON LABS 立即选型
【经验】8位单片机EFM8系列中通过官方配置工具快速进行寄存器的初始化配置并进行SPI调试的步骤说明
Silicon Labs创新型8位MCU EFM8系列提供完全集成的体验,非常适合物联网应用,提供了业界最快的速度和最低的功耗,使用增强型8051内核,集成UART、SPI、SMBUS、ADC等丰富外设。本文主要介绍通过Simplicity Studio配置工具快速进行寄存器的初始化配置并进行SPI调试的方法,方便刚刚接触到EFM8 MCU的用户快速上手。
【经验】32位MCU EFM32系列中断分组及优先级设置方式
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。中断是一个MCU中比较核心的部分,在实时性要求比较高、功耗低的场合经常需要中断的配合,中断优先级是根据中断事件的重要性和紧迫程度做出的一个设置,系统先响应优先级高的中断请求,再响应优先级低的中断请求。
【IC】芯科科技新品PG26 32位MCU系列,大容量存储 + 快速AI/ML推理满足未来的物联网需求
SILICON LABS最新发布的EFM32PG26(PG26)32位微控制器系列通过提升两倍的闪存和RAM容量,以及GPIO的数量来满足各种低功耗和高性能嵌入式物联网应用需求。面向无线连接功能的需求,PG26可作为EFR32xG26多协议无线SoC平台的软件兼容MCU版本,有助于开发人员基于同一平台设计快速且无缝地升级低功耗蓝牙、Matter、Thread、Zigbee或专有无线连接设计。
【产品】小蜜蜂8位MCU助您轻松迎接物联网时代
Silicon labs推出了一款集小封装和高性价比于一身的多用途8位MCU EFM8BB1,可轻松替代普通8051家族的MCU产品。
【经验】武汉芯源CW32L083单片机的RTC功能介绍
CW32L083内置经独立校准的32kHz频率的RC时钟源,为RTC提供驱动时钟,RTC可在深度休眠模式下运行, 适用于要求低功耗的应用场合。本文是CW32L083单片机的RTC设置时间及闹钟部分的介绍,CW32其他型号也可以参考此文。
芯科科技畅谈未来物联网的挑战与机会:创新、协作,将物联网推升至新的高度
Silicon Labs总裁兼首席执行官Matt Johnson先生在近期与《电子工程专辑》(EE Times Asia)的专访中畅谈了未来物联网的挑战与机会,以及公司在推进物联网创新方面担任的角色。
【经验】如何读取8位MCU EFM8SB2的UID值?
Silicon Labs的8位MCU EFM8BB2系列中有一个唯一识别码,叫做UID。我们在开发中有些时候需要使用读取UID,本文将分享如何在程序中读取EFM8BB2系列MCU的UID。
【经验】32位MCU EFM32系列在Keil中接收SWO信息的配置步骤
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。在研发过程中会有很多繁杂的调试过程,本文主要介绍如何将Jlink的SWO接口上输出的调试信息在Keil中显示出来。
BB5x 8位MCU用于嵌入式的三大优势——小尺寸、经济高效、设计简化
芯科科技的8位MCU产品组合,在芯科科技提供Simplicity Studio软件开发平台上同步支持8位和32位产品,还可支持EFR32系列无线SoC。这种单一平台解决方案有助于消除设计过程中不必要的复杂性,使设计人员能够将时间和精力集中在产品研发方面,而不是适应新的开发环境,从而缩短了开发周期并加快了上市时间。
电子商城
现货市场
服务
提供7~27寸工控机定制,支持嵌⼊式/ 壁挂式 /桌⾯式/悬挂式等安装方式,采用纯平⾯板IP65防尘防⽔等级,莫⽒7级硬度触摸屏,兼容多种操作系统:组态软件/安卓/XP/win7/8/10/Linux等,支持主板、接⼝、外观、⽀架、刷卡器、⾝份证阅读器、LOGO、⻨克⻛、系统、电池、蓝⽛、4G/5G、摄像头、GPS系统、⼆维码扫描器、指纹等特殊应⽤场景定制
最小起订量: 1台 提交需求>
可定制导热胶的导热系数1~6W、粘度范围3000~250000cps、固化方式可加热、仅室温、可UV;施胶方式:点胶机、手工、喷胶、转印;支持颜色、硬度、固化时间等参数的个性化定制。
最小起订量: 1支 提交需求>
登录 | 立即注册
提交评论