【经验】IoT创客指南:为EFM32 MCU选择正确外设–Part 2
在上一节中,我们介绍了GPIO作为输入模式外设和ADC,用于模拟检测输入电压。在本节中,我们将把模拟比较器(ACMP)配置为离散逻辑器件,作为输入和输出。
我们将使用ACMP将检测到的LED脉冲,从弱信号电平转换为可用于MCU的正常输入逻辑。
模拟比较器(ACMP)
模拟比较器(ACMP)比较两个模拟输入值,并根据正输入是否高于负输入,输出高或低信号。输入可以是MCU上的一对引脚,也可以是内部软件控制的参考值。
ACMP结果可以由软件读取或者发送到物理引脚。通过将数字输出路由到物理引脚,ACMP可用作可由外部电路(包括外部反馈)利用的分立电路元件,而不需要超出初始配置的固件。
您可以将ACMP视为较慢和较低分辨率的ADC。由于ACMP具有可由软件配置到VCC(1.25V或2.5V内部参考)的64个分区的内部参考电压,因此可以扫描这些可编程参考电平以与每个参考值的输入进行比较,从而确定输入引脚的模拟值。
ACMP在其输入多路复用器中有八个可用引脚,可用于正或负输入,每个引脚必须一次使用一个。
为了演示ACMP的操作,我们将使用ACMP作为离散电平转换器。ACMP可以从低压设备转移信号的电压,以便将其与较高电压的设备进行接口连接。我们将使用入门套件上的光传感器来检测来自闪烁LED的微弱脉冲,并将这些脉冲转换为全摆幅3.3V信号。
为了产生光脉冲,我们将在PD1上配置一个简单的GPIO,以基于TIMER0 CNT寄存器的速率闪烁,然后将LED连接到具有300欧姆电阻器的PD1引脚。在上一节中,设置LED闪烁速率的必要代码几乎与触发ADC的代码完全相同,只是我们简单地将TIMER0配置为每秒触发10次,而不是每秒钟1次。然后,在中断处理程序中,我们清除中断并切换PD1引脚。
示波器可以看到由该闪烁的LED检测到的光传感器的电压电平。
由光传感器产生的电压摆幅(当LED距离光传感器约两英寸时)处于500mV至1V之间。如果我们尝试用输入模式下的普通GPIO引脚来解读来自光传感器的脉冲,则电压将永远不会超过指示数字低/高转换所需的阈值。因此,我们将使用ACMP将光传感器输出转换到PE2引脚上的全摆幅3.3V脉冲。
以下代码将ACMP配置为离散模拟比较器,并在PE2引脚上输出结果。
采样光传感器波形所需的ACMP负输入参考电压约为600mV(至少这就是我测量上述范围时所需的室内环境照明条件)。这可以通过使用公式11/64 * 3.3V = 567mV设置VDD参考类型和使用11个64分段来实现。重要的是要记住,这是一个环境光传感器,并且这个波形的基线会随着室内环境光的变化而移动。因此,VDD的11个分区的值可能会根据环境照明条件而改变。例如,对于VDD参考比例因子,明亮的房间可能需要24的值。最好停止LED闪烁,取样房间环境电压,然后将VDD参考设置设置在室内环境电压值之上。
在示波器波形中,光传感器1的原始波形显示在通道1上,ACMP的输出显示在通道2上。ACMP输出波形保持稳定的3.3Vrail-to-rail电压,即使是 LED和光传感器随时间变化,如右边的波形所示。
请注意,一旦将模拟比较器设置为分立元件,它将在中断,调试停止以及能量模式EM0至EM3中继续运行。
也可以在ACMP0通道6,在软件中对比较器的输出进行采样。因此,可以通过从所有可能的64个步骤扫描负输入,来查找哪个步骤触发输出,从而将其用作静态信号的ADC 操作。
电压比较器(VCMP)
电压比较器(VCMP)是直接连接到EFM32 MCU VDD引脚的ACMP简化实例。这样您的固件可以在不使用GPIO引脚或ACMP通道的情况下检测电源电压值。
在下一节中,我们将使用TIMER和PCNT外设对输入事件进行计数,例如由正交解码器或LED脉冲产生的脉冲。
相关技术文档:
- |
- +1 赞 0
- 收藏
- 评论 2
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
【经验】32位MCU LEUART位周期抖动大,该如何解决?
Silicon Labs 32位MCU EFM32,当基于32.768kHz时钟使用LEUART(@9600bps)进行通讯的时候,发现存约1%误码,原因是什么?如何解决?
设计经验 发布时间 : 2019-09-06
【经验】如何使用32位超低功耗MCU外设反射系统功能?
外设反射系统(PRS)是 Silicon Labs EFM32系列MCU专有的外设互联总线,它允许不同的外设无需CPU干预即可直接相互通信。
设计经验 发布时间 : 2019-09-02
【经验】32位MCU的LDMA实现ADC至RAM的数据传输调试方法
Silicon Labs的EFM32PG/ EFM32JG系列32位MCU具有超低功耗、高性能、丰富的外设等特点,其 LDMA相比于series 0的DMA具有更多的传输方式,更适合应用于电池供电的产品。
设计经验 发布时间 : 2018-02-08
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
新产品 发布时间 : 2016-07-11
【应用】32位MCU在中高端音频处理系统中的应用
音频信号处理涉及多方面,如采集、去除噪声等等,普通MCU很难用一颗芯片集成如此众多的功能。
新应用 发布时间 : 2017-07-18
全球超低功耗MCU的关键:灵活的能源管理单元
Silicon Labs EFM32小壁虎系列MCU,作为当今全球功耗最低功耗的MCU,EFM32成为电池供电等对低功耗要求较高场合的不二之选!
技术探讨 发布时间 : 2019-07-19
如何读取EFM32系列32位MCU的多通道AD扫描采样数据?
EFM32系列单片机ADC的数据保存寄存器有两个,一个是单通道模式的采样数据保存寄存器,一个是扫描模式的采样数据保存寄存器。如果使用多通道扫描采样,那么每个通道采样完成后会产生一个ADC扫描模式中断,用户需要在中断里面读取该通道的扫描采样数据以便存储下一个通道的采样数据。建议使用DMA读取方式,将DMA的触发源设置为ADC的扫描模式事件,这样就可以实现不用进入ADC中断以及MCU的参与即可完成ADC扫描采样数据的保存和读取。
技术问答 发布时间 : 2017-05-05
如何为Silicon Labs 32位低功耗MCU EFM32GG230F512实现基于RTC的软件无滴答日历?
在Silicon Labs 32位低功耗MCU EFM32GG230F512上实现软件方式的无滴答日历,可以通过使用日历标准C库 time.h, 在time.h中实现的timer()函数基于RTC计数值来计 算日历时间。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32GG990芯片使用中,将OPAMP(运算放大器)组合成三运放差分放大器时可选的放大倍数为多少?
当将三个OPAMP组合成差分放大器时,差分放大器的增益是由OPA0和OPA1的组合增益所决定的,由于三运放差分电路的电阻网络对应的桥臂要对应成比例,所以只三种有 效的差分增益可供使用,它们分别为1/3、1和3,此时OPA0 RESSEL和OPA2 RESSEL的组合分别为0和4、1和1、4和0。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU Cortex系列微控制器采用的软件接口标准CMSIS有哪些特性?
嵌入式系统越来越复杂,开发和软件测试的工作量也显著增加,为了减少开发时间并且降低产品中存在的风险,软件重用已经越来越普遍。为了各种软件产品间的配合,ARM同各大 微控制器供应商、工具供应商和软件解决方案提供商一起开发了CMSIS,一个涵盖了大多数Cortex-M处理器和Cortex-M微控制器产品的软件框架。 CMSIS的设计目标和特性包括以下几点: 1、提高软件的可用性。 2、提高软件的兼容性。 3、独立的工具链特性。 4、开放性。 5、易用性。
技术问答 发布时间 : 2017-10-10
32位低功耗MCU EFM32系列内部的LFRCO是32K还是32.768K?
EFM32系列32位低功耗MCU内部的LFRCO为32K。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32G232F128系列微控制器GPIO的最大翻转速度为多少?
EFM32G232F128系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU的硬件设计时要关注什么?
1、对于Silicon Labs EFM32系列32位低功耗MCU的系统设计者,有几个值得关注的因素,包括如何为芯片提供鲁棒性的电源,如何连接外部调试接口以及如何设计外部时钟源。 2、电源: 尽管EFM32支持宽的电压范围并且消耗很小的平均电流,但是正确的去耦是极其重要的。对于高频暂态信号去耦电容能使得电源和MCU以及地之间的电流回路尽量 短。 3、调试接口及外部复位引脚 (RESETn): 除了可选的SWO(串行线输出), 调试接口包括SWCLK(时钟输入)和SWDIO(数据输入输出)线, 除此之外可 选的SWO(串行线输出)。在无需外部复位的情况下因为复位引脚(RESETn)具有内部上拉电阻所以可以不做连接。强行拉低RESETn引脚将对产生EFM32触发复 位。 4、外部时钟源: EFM32除了内部低频和高频RC振荡器模式外也支持不同的外部时钟源来产生低频以及高频时钟。可能的低频LF和高频HF域外部时钟源是外部振荡器(方 波或者正弦波)或者晶体/陶瓷谐振器。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU Cortex-M3内核嵌套向量终端控制器(NVIC)有哪些特性?
1、支持最多240个中断输入、不可屏蔽中断输入和多个系统异常。除了NMI外,每个中断都可以被单独使能或禁止。 2、中断和多个系统异常具有可编程的优先级。对于Cortex-M3/M4,优先级可以在运行时动态修改(注意,Cortex-M0/M0+不支持优先级的动态修改)。 3、嵌套中断/异常以及中断/异常按照优先级自动处理。 4、向量中断/异常。意味着处理器会自动取出中断/异常向量,无需软件确定产生的是哪个中断/异常。 5、向量表可以重定位在存储器中的多个区域。 6、低中断等待。对于具有零等待状态的存储器系统,中断等待仅为12个周期。 7、中断和多个异常可由软件触发。 8、多个优化用于降低不同异常上下文切换时的中断处理开销。 9、中断/异常屏蔽功能可以将所有的中断和异常(NMI除外)屏蔽掉,或者将中断/异常屏蔽为某个优先级之下。 为了支持这些特性,NVIC使用了多个可编程寄存器。这些寄存器经过了存储器映射,而CMSIS-Core则为大多数常见的中断控制任务提供了所需的寄存器定义和访问函数 (API),这些访问函数非常已于使用。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32ZG系列芯片的API函数的说明文档如何获取?
Silicon Labs 32位低功耗MCU EFM32系列的API函数说明文档可以在SIMPLICITY STUDIO软件下的文档(DOCUMENT)中找到,是由HTML文件格式提供的,或者可以到 SILICON LABS公司的网站下载API的说明文档,下载地址: http://www.silabs.com/Support%20Documents/Software/Gecko_SDK_DOC.zip
技术问答 发布时间 : 2017-10-10
电子商城
现货市场
登录 | 立即注册
提交评论