【经验】如何使用32位超低功耗MCU外设反射系统功能?
EFM32是SILICON LABS公司推出的32位超低功耗的MCU系列,其有很多低功耗的特性。其中外设反射系统(Peripheral Reflex System,简称PRS)是EFM32系列MCU专有的外设互联总线,它允许不同的外设无需CPU干预即可直接相互通信,从而能够降低系统的功耗。外设反射系统基于“生产者-消费者”模型进行工作,发送反射信号的外设模块称为生产者(Producers),接收反射信号的外设模块称为消费者(Consumers)。外设反射系统会将生产者发出的信号根据配置映射到对应消费者,消费者根据收到的信号作出相应的动作。本文档将为大家介绍如何使用EFM32的PRS功能。
一、原理介绍
图1给出了一个通道及4个不同外设被连接到PRS的框图,该PRS包含8个通道,每个通道都可以在生产者提供的所有输出反射信号中进行选择。消费者可以选择侦听哪个PRS通道,并根据通过该通道连接的反射信号执行相应的动作。反射信号既可以是脉冲信号,也可以是电平信号。同步PRS脉冲的宽度为一个HFPERCLK周期,可以由一个生产者发送(例如ADC转换结束),也可以由PRS通道中的边沿检测器产生。电平信号的波形可以是任意的,但会被同步到HFPERCLK。在图一所示的例子中,4个外设被连接到2个PRS通道。TIMER0和ADC0连接到一个通道,ACMP和TIMER1连接到第二个通道。TIMER0的溢出信号可启动一次ADC转换,ACMP的输出可用作TIMER1的一个捕获/比较通道的输入。
图1:PRS框图
二、一般操作
可将不同的功能应用于一个PRS内部的反射信号。每个通道都包含一个边沿检测器,以便从电平信号产生脉冲信号。还可以通过用软件写PRS_SWPULSE和PRS_SWLEVEL寄存器来产生输出反射信号。PRS_SWLEVEL用于为每个通道设置一个可编程的电平,并保持其编程值。如果向PRS_SWPULSE写1,它会给出一个周期的高电平脉冲,否则它会保持0电平。SWLEVEL和SWPULSE信号与来自生产者的所选信号进行异或,形成输出信号,发送给侦听该通道的消费者。
使用emlib函数void PRS_SourceSignalSet(unsigned int ch, uint32_t source, uint32_t signal, PRS_Edge_TypeDef edge)可很容易地配置PRS通道。通过指定PRS通道、生产者外设、来自外设的信号和脉冲产生边沿,该函数可相应地配置PRS。
生产者
每个PRS通道都可以在来自多个生产者的信号中选择,这可通过PRS_CHx_CTRL寄存器中的SOURCESEL域配置。每个生产者都能输出一个或多个信号,这可通过设置PRS_CHx_CTRL寄存器中的SIGSEL域选择。将SOURCESEL的位设置为0(Off)会导致输入多路选择器的输出恒为0。表1给出了可用生产者一览表。
表1:反射生产者
消费者
消费者外设(列于表2)可被设置为侦听一个PRS通道,并根据在该通道接收的信号执行相应的动作。大多数消费者要求脉冲输入,有些可处理电平输入。
表2:发射消费者
三、软件示例
本例(如图2所示)展示如何设置ADC0,以便每当定时器0溢出时即启动单次转换。定时器0每次溢出时通过PRS发送持续一个HFPERCLK周期的高电平脉冲,ADC进行单次转换,转换结果在LCD上显示。本示例的硬件为STK3700开发板,MCU型号为EFM32GG990F1024。
图2:使用PRS实现用定时器0溢出启动ADC0单次转换
上图展示出了在定时器0溢出时由定时器0发送给ADC0的一个HFPERCLK周期宽的脉冲。该信号触发一次ADC转换。ADC消费由定时器产生的同一信号。本例所示的情况不需要边沿检测,PRS保持输入信号不变。ADC被配置为8位分辨率,Vdd既作为参考电压,也作为输入信号。ADC在转换结束时产生单次转换结束中断。CPU随后读取转换结果并将其显示到LCD。显示的结果是ADC0_SINGLEDATA寄存器的直接读取值,该值总是为255,这是因为输入信号与参考电压相同。参考代码如下:
相关技术文档:
Silicon Labs EFM32 32位MCU选型指南 详情>>>
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 3
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(3)
-
DavidLjx Lv4. 资深工程师 2022-02-08PRS!
-
嘿仔 Lv6. 高级专家 2017-10-29感谢分享
-
嘿仔 Lv6. 高级专家 2017-10-29感谢分享
相关推荐
【经验】EFM32系列低功耗32位MCU芯片加密详解
本文主要介绍以Silicon Labs EFM32系列低功耗32位MCU为核心的方案打造加密系统。
【经验】32位MCU LEUART位周期抖动大,该如何解决?
Silicon Labs 32位MCU EFM32,当基于32.768kHz时钟使用LEUART(@9600bps)进行通讯的时候,发现存约1%误码,原因是什么?如何解决?
【经验】32位MCU的LDMA实现ADC至RAM的数据传输调试方法
Silicon Labs的EFM32PG/ EFM32JG系列32位MCU具有超低功耗、高性能、丰富的外设等特点,其 LDMA相比于series 0的DMA具有更多的传输方式,更适合应用于电池供电的产品。
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
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 立即选型
SILICON LABS EFM32 Zero Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于24MHz Frequency,4kB~32kB Flash,2kB或4kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
AES-128
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
EFM32ZG222F8-QFP48
|
Microcontroller
|
24
|
8
|
2
|
37
|
12-bit, 4-ch., 1 Msps
|
—
|
Cap Sense
|
Temp Sensor
|
2
|
AES-128
|
2
|
1
|
1
|
1
|
1
|
0
|
RTC
|
1
|
1.98
|
3.8
|
QFP48
|
7x7
|
±2%
|
SW
|
选型表 - SILICON LABS 立即选型
【应用】32位MCU在中高端音频处理系统中的应用
音频信号处理涉及多方面,如采集、去除噪声等等,普通MCU很难用一颗芯片集成如此众多的功能。
【应用】1MByte Flash空间 32位MCU助力无线中继器数据传输
Silicon Labs EFM32JG系列MCU,采用功能强大的 32 位 ARM® Cortex®-M3 内核,EM4H 休眠模式(128 字节 RAM 保留)功耗只有0.39uA,集成AES、ECC 和 SHA 的硬件加密引擎和真随机数发生器(TRNG)
如何为Silicon Labs 32位低功耗MCU EFM32GG230F512实现基于RTC的软件无滴答日历?
在Silicon Labs 32位低功耗MCU EFM32GG230F512上实现软件方式的无滴答日历,可以通过使用日历标准C库 time.h, 在time.h中实现的timer()函数基于RTC计数值来计 算日历时间。
全球超低功耗MCU的关键:灵活的能源管理单元
Silicon Labs EFM32小壁虎系列MCU,作为当今全球功耗最低功耗的MCU,EFM32成为电池供电等对低功耗要求较高场合的不二之选!
Silicon Labs 32位低功耗MCU EFM32JG1P在故障指示器的应用中,GPIO拉低后,电平为0.8V,而不是0V,根本原因是什么?
Silicon Labs 32位低功耗MCU EFM32JG1P GPIO拉低后,电平为0.8V,主要是因为底下大焊盘PIN0没有连接到GND或者与GND接触不良造成。
Silicon Labs 32位低功耗MCU EFM32GG990芯片使用中,将OPAMP(运算放大器)组合成三运放差分放大器时可选的放大倍数为多少?
当将三个OPAMP组合成差分放大器时,差分放大器的增益是由OPA0和OPA1的组合增益所决定的,由于三运放差分电路的电阻网络对应的桥臂要对应成比例,所以只三种有 效的差分增益可供使用,它们分别为1/3、1和3,此时OPA0 RESSEL和OPA2 RESSEL的组合分别为0和4、1和1、4和0。
【产品】帅到飞起,有60种选择的256 KB闪存低功耗MCU
为使MCU在运行模式和睡眠状态下获得最低功耗,EFM32 WG系列还融入了eLL技术。
如何读取EFM32系列32位MCU的多通道AD扫描采样数据?
EFM32系列单片机ADC的数据保存寄存器有两个,一个是单通道模式的采样数据保存寄存器,一个是扫描模式的采样数据保存寄存器。如果使用多通道扫描采样,那么每个通道采样完成后会产生一个ADC扫描模式中断,用户需要在中断里面读取该通道的扫描采样数据以便存储下一个通道的采样数据。建议使用DMA读取方式,将DMA的触发源设置为ADC的扫描模式事件,这样就可以实现不用进入ADC中断以及MCU的参与即可完成ADC扫描采样数据的保存和读取。
32位低功耗MCU EFM32G232F64,其ADC的Single模式和SCAN模式有什么区别?
32位低功耗MCU EFM32G232F64的ADC,使用Single模式一次只能转换一个通道,其转换结果保存在ADCn_SiNGLEDATA寄存器中;使用SCAN模式一次可以转换多个通道,其转换结果保存在ADCn_SCANDATA寄存器。
电子商城
现货市场
登录 | 立即注册
提交评论