【经验】8位MCU EFM8SB2如何输出周期和占空比可变的PWM波形
PWM技术在调光、调温,DC-DC电源、充电器恒流恒压充电等等方面都有极为广泛的应用,正是因为其应用如此之广,几乎所有MCU都会在片内集成PWM的输出功能。PWM技术实现了用数字形式来表示模拟值的功能,从而使原本需要复杂电路的实现变得简单,同时也降低了成本。
SILICON LABS公司的EFM8SB2系列C8051单片机,除了它优越的低功耗技术以及低功耗模式下极短的唤醒时间(2us)之外,其片内也集成了一个PCA可编程计数器阵列,PCA模块可以配置成PWM输出模式,而且有多种模式来适应不同的应用需求,本文提炼了PCA模块寄存器的配置方法,让读者对EFM8SB2系列8位MCUPWM输出的配置有一个清晰的了解。
1、PCA模块简介:
PCA的结构(如上图):
一个16位PCA0计数器/定时器(PCA0H/L),时钟频率可以配置;6个可单独配置的16位捕捉/比较模块(PCA0CPH/Ln);每个捕捉/比较模块有独立的引脚CEXn。读PCA0L自动锁存PCA0H到一个快照寄存器;下一次读PCA0H就是读快照寄存器的值,这样能保证单次读到的数据的一致性。
2、配置PWM输出:
每个模块的输出引脚CEXn,每隔2N个PCA时钟周期触发一个边沿转换(N是PWM波形的周期位宽)。有两个边沿分别叫做“匹配边沿”和“溢出边沿”。匹配边沿设置通道为逻辑高,溢出边沿设置通道为逻辑低。
匹配边沿定义:PCA0H/L与PCA0CPH/Ln的低N位相应位匹配。比如在10位PWM模式下,PCA0CPH/Ln的9-0位匹配PCA0的计数器的9-0位。
溢出边沿定义:PCA0H/L在周期位宽处溢出。比如在10位PWM模式下,PCA0H/L的bit9-0从0x3FF到全0x00时,发生溢出边沿。
注意:输出脚的极性可通过PCA0POL寄存器来翻转,但并不是每个型号的MCU都有,具体需要查看手册。
注意:对于一个给定的PWM周期,PCA0计数器和PCA0CPn没有被用到的高位被忽略,只有PCA0CPn中被使用到的位用来决定占空比。
注意:清零PCA0CPMn的ECOM位可以得到占空比为0%的波形。这会除能比较功能,从而阻止匹配边沿的发生。
3、PWM周期和占空比的计算公式
从上面的讲解,可以推算出PWM的周期和占空比的计算公式如下:
(N是PWM波形的周期位宽, 详见下文;PCA0时钟频率由PCA0MD寄存器中的CPS字段来选择)
注意: 不能直接用软件PCA0CPH/Ln寄存器的值来调节占空比。详见下文。
输出的频率取决于PCA计数器/定时器的时基,以及PWM周期的设置(8-11位)。为了向后兼容其他设备上的8位PWM模式,8位PWM模式的操作跟9-11位PWM模式的操作有一些细小的差别,下文会有详细说明。
重要:配置成8-11位PWM模式的通道具有相同的周期长度(不能一个通道配置8位PWM模式,另一个通道配置成11位模式)。但是其他通道仍旧可以配置成引脚捕捉,高速输出,软件定时器,频率输出,16位PWM模式。
4、不同的PWM模式
8位PWM模式:8位PWM模式中,占空比由PCA0CPLn寄存来决定。调节占空比的时候,PCA0CPLn寄存器不能直接写。调节占空比的正确的方式是PCA0CPHn寄存器,也就是高字节的寄存器。因为在溢出边沿发生时,PCA0CPLn的值会被PCA0CPHn自动重装载。置位PCA0CPMn寄存器的PWM位和ECOM位,设置PCA0PWM寄存器的CLSEL字段为00b,就使能8位PWM模式。如果MATn位置位,那么每次匹配边沿发生时,模块的CCFn标志位会置位。PCA0PWM寄存器的COVF位可以用来检测溢出(下降沿),每256个PCA时钟周期发生一次。
9-11位PWM模式:在9-11位PWM模式中,占空比由PCA0CPn的低N位决定,N是PWM波形的周期位宽。要调节占空比,不能直接写PCA0CPn寄存器,正确的方式是写“自动重装载”寄存器,它是被双映射(dual-mapped)到PCA0CPHn 和PCA0CPLn 寄存器的位置。当PCA0PWM寄存器中的ARSEL位置位的时候,访问的就是“自动重装载”寄存器,否则访问的就是捕捉/比较寄存器。当溢出边沿(边沿对齐模式)或UP边沿(中心对齐模式)发生时,PCA0CPn寄存器会被“自动重装载”寄存器覆盖。置位PCA0CPMn寄存器的PWM位和ECOM位,设置PCA0PWM寄存器的CLSEL字段为需要的值,使能9-11位PWM模式。如果MATn位置位,那么每次匹配边沿发生时,模块的CCFn标志位会置位。PCA0PWM寄存器的COVF位可以用来检测溢出或者下降沿。
重要:的写16位PCA0CPn时候,应该先写低字节。写PCA0CPLn的时候,会清除ECOMn位,写PCA0CPHn的时候会置位ECOMn
16位PWM模式:PCA可以配置成16位PWM模式。16位PWM独立于其他PWM模式。全部PCA0CPn用来决定占空比。要输出变化的占空比,写新的值的时候应该是同步到PCA的CCFn匹配标志位,以此来保证无缝更新。置位PCA0CPMn寄存器的ECOM位,PWM位,PWM16位,就可以配置成16位PWM模式。要输出可变占空比,ECCF和MAT位需要置位,以此来帮助同步写捕捉/比较寄存器。如果MAT位置位,模块的CCF表示在每次匹配边沿发生时置位。PCA0CN0寄存器的CF标志位可以被用来检测溢出。
重要: 写16位PCA0捕捉/比较寄存器时,低字节先写。写PCA0CPLn的时候,会清除ECOMn位,写PCA0CPHn的时候会置位ECOMn。
以上就是EFM8SB2系列单片配置PWM模式需要了解的所有内容,只要看懂了就能很容易把PWM应用于不同的设备。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由致远提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】Silicon Labs 8位MCU 烧录程序异常的解决方法
本文介绍Silicon Labs的8位MCU C8051F/EFM8系列的芯片在量产烧录过程中遇到问题的解决方法。
【经验】8位MCU EFM8LB1的SPI时钟频率度计算方法
EFM8LB1系列是Silicon Labs公司推出的高性能8位MCU,带有通信速率最高12 Mbps的 SPI,支持主/从模式,本文将介绍SPI时钟频率度是如何计算的,以及要产生一个时钟频率,软件如何初始化。
简单至关重要:为何8位MCU将持续发展?
几十年来,8位MCU一直是无数嵌入式应用的主力,尤其是消费产品和医疗器械中的应用。简单、有效的8位MCU在推动智能物联网产品的发展中发挥了核心作用。虽然其后代的功能(如32位和无线MCU)继续领先,但对于广泛的应用来说,8位MCU的普及和偏好没有放缓的迹象。
SILICON LABS 8-bit Microcontroller选型表
SILICON LABS 8位MCU选型,MCU Core 8051,频率20MHz~100MHz,Flash存储2kB~120kB,RAM存储0.25kB~8kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
DAC
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
EMIF
|
CAN
|
LIN
|
VREF
|
Debug Interface
|
C8051F392-A-GM
|
8位MCU
|
C8051F39x Small Form Factor
|
50
|
16
|
1
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
17
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
6
|
3
|
10-bit, 2-ch.
|
1
|
1
|
1
|
2
|
0
|
0
|
0
|
0
|
VREF
|
C2
|
选型表 - SILICON LABS 立即选型
【IC】芯录微烧录器AP800支持Silicon labs芯科科技的8位微控制器C8051F310-GQ
芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中Silicon labs芯科科技的8位微控制器C8051F310-GQ已经被昂科的通用烧录平台AP8000所支持。C8051F310-GQ是高度集成的混合信号8位微控制器,其特征是具有强大的8051内核,性能为25MHz。
【产品】集成12位高速ADC、DAC的8位MCU C8051F00x,最高执行速度达25MIPS
C8051F00x系列是Silicon Labs的一款高集成度的混合信号8位MCU,采用强大的8051微处理器,最高执行速度可达25MIPS。还集成了12位/10位多通道ADC、VDD监控器、看门狗定时器、时钟振荡器以及其他通用部件,可以作为真正的独立片上系统解决方案,可应用于诸如便携式医疗器械、测试设备和光纤系统等领域。
【经验】8位MCU EFM8SB2擦除Flash会复位的解决方法
SILICON LABS的EFM8SB2是最节能的小封装8位MCU。采用高效的8051内核,最低睡眠电流为50nA,功耗可达170μA/MHz,可应用手持设备、电池驱动式消费电子设备、传感器接口等。
【经验】简介EFM8SB2 8位MCU的3线制SPI配置,使片选线(CS/NSS)的选择更灵活
嵌入式开发中,我们经常会用到SPI通讯,本文主要介绍Silencon Labs EFM8SB2 8位MCU的3线制SPI。当使用3线制的SPI时,我们可以更方便的配置片选线。
【IC】芯科新品BB5x系列8位MCU为嵌入式和IoT开发提供核心频率50MHz,比同品类高36%计算能力
芯科科技新推BB5 8位微控制器系列产品,该系列针对价格和性能进行优化,50MHz核心频率可提供比其他任何通用8位MCU高出36%计算能力,支持从1.8到5.5V多种电压选择,进一步扩展芯科科技强大MCU开发平台。
【经验】8位MCU EFM8系列内部BOOTLOADER的空间分配
本文介绍Silicon Labs的8位MCUEFM8系列内部BOOTLOADER占用FLASH空间的情况,及程序中对FLASH空间地址的分配。
【经验】如何读取8位MCU EFM8SB2的UID值?
Silicon Labs的8位MCU EFM8BB2系列中有一个唯一识别码,叫做UID。我们在开发中有些时候需要使用读取UID,本文将分享如何在程序中读取EFM8BB2系列MCU的UID。
SILICON LABS EFM8 Sleepy Bee 8-bit Microcontrollers选型表
SILICON LABS 8位MCU选型,基于25MHz Frequency,2~64kB Flash,0.25~4kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
EFM8SB10F8G-QFN20
|
Microcontroller
|
8051
|
25
|
8
|
0.5
|
16
|
12-bit, 9-ch.
|
Temp Sensor
|
4
|
3
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1.8
|
3.6
|
QFN20
|
3x3
|
±2
|
VREF
|
C2
|
-40 to 85
|
选型表 - SILICON LABS 立即选型
【经验】Silicon Labs的8位MCU EFM8UB10系列中的USB转串口软件实现常见问题分析
Silicon Labs的8位MCU EFM8UB10系列,内置USB外设接口 ,为了简化用户USB的开发,官方提供USB库及API接口,客户可以使用API接口对EFM8UB单片机的USB模块进行操作。
【技术】8位MCU与32位MCU的区别
对某类应用做产品定义和规划时,首要任务之一就是选择理想的处理器/控制器,但开发人员往往难以选择合适的MCU。本文是关于微控制器的技术文章,该文从基本差异、基准性能、应用适用性等角度详细地对8位和32位MCU进行了分析。
【应用】芯科小体积封装8位MCU用于电动牙刷,主频高达50MHz,静态功耗低至1.3μA
芯科EFM8BB52F16G-A-QFN20这颗MCU是一个多功能的8位微控制器,具有小型的综合功能集包裹,具有高效的8051核、支持5V的I/O、精确模拟和增强的脉宽调制,本文主要介绍芯科EFM8BB52 MCU应用于电动牙刷。
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从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万元以上。
提交需求>
登录 | 立即注册
提交评论