《单片机控制pwm电源开关原理图解析》
pwm是一种数字控制设备用的控制波形,一般是方波,通过改变pwm的频率和占空比来控制设备。简单来讲:电机控制中,电机的功率输出,转速控制就是需要调整pwm频率和占空比实现的,在电机回路中做电子开关,用单片机输出的pwm控制其开关的导通时间与导通频率。生活中常见的电脑CPU风扇就是一种,通过温度检测器的反馈,控制风扇转速,从而灵活的控制cpu的温度,并且节省电能。有二种情况,第一,如果你所使用的8051单片机(例如stc12系列)是带有专用的pwm输出i/o口的话,那就只要控制里面的特殊功能寄存器改变输出占空比就行了,不要外加什么硬件电路的。第二,如果是通入软件模拟pwm输出的话,那就用定时器可以解决的,也不需要外加电路。
脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。也是一种模拟控制方脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。并且制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。
玩转单片机的重要功能-DMA,你的MCU编程设计有可能成为卷王!
直接存储器访问(DMA)控制器,可以在内存和/或外设之间传输数据,而不需要CPU参与每次传输。合理利用DMA控制器,可以减轻CPU的负担。本文通过介绍DMA结构与工作原理,以及两种模式(兵乓模式与多数据包缓冲传输模式),来看看使用DMA如何提高MCU效率。DMA结构与工作原理
先进的DMA控制器,如STMicroelectronics的STM32F4系列中包含的控制器,可以通过灵活的数据流分配和传输管理功能进一步减轻CPU的负担。
如图左侧所示,来自8个不同的通道DMA请求,并到仲裁器上,从而建立优先级(编号较低的输入通道,具有较高的优先级)。然后激活最高优先级的传输,传输到图中右侧的两个AHB主设备(存储器端口和外设接口),提高了外设到存储器传输的效率。这可能是DMA在基于CPU的设计中最常见的情况。
图1.STM32F4系列DMA控制器(图片来源于STMicroelectronics)
为每个路径分配单独的FIFO,如图1中间所示,允许针对每个外设接口的特性调整FIFO特性。例如,FIFO的阈值级别(请求传输的深度)可以单独设置为FIFO大小的?,?或?。这允许低速通道等待,直到FIFO几乎满了才进行传输,以最小化开销。更快的通道会更早地启动传输,可能只有一半大小,以避免FIFO溢出。
我们来通过一个实例,来看看DMA怎么工作的。
实例:“使用STM32来控制NeoPixelsLED”
硬件部分采用STM32开发板,与NeoPixelLED、灯带、矩阵等相连接。
RGBNeoPixels实际上是WS2812智能控制LED。下面是WS2812LED的3字节数据协议的结构,分别代表绿红蓝三个信息。
图2.WS2812LED的3字节数据协议的结构
使用计时器来PWM控制波形,然后配置DMA使CPU高效并且易于实施。
图3.WS2812LED的0和1位的计时图
在软件中,配置DMA,选择了“TIM2_CH3/UP”,将方向改为“内存到外设”,同时,将优先级改为“非常高”,最后保存.ioc文件,以生成项目代码。
图4.配置DMA流,以便有效更新PWM信号的占空比
DMA的两种模式
合理使用两种DMA模式(兵乓模式与多数据包缓冲传输模式),可以帮助提高MCU效率。
USB外设是一个很好的外设示例,早期的USB实现的最大吞吐量只有1.5Mb/秒。随着更高性能的标准版本的出现。比如要接近12Mbit/s全速USB标准的理论最大值。我们来看看,数据传输方面DMA如何帮助提高MCU效率!
我们以Microchip的ATXMEGA16D4-MH举例。
01
兵乓模式
之前通常使用单个存储器缓冲区进行外设数据传输。如果数据缓冲区已满,MCU将响应NAK(否定确认)消息。接收到NAK后,主机将等待并稍后重试传输。它将继续重试,直到MCU能够成功接收数据。
ATXMEGA16D4-MH使用乒乓模式来消除这个问题。乒乓模式使用两个存储单元(memorybanks)进行数据传输。当一个存储单元满时,主机可以将数据传输到另一个存储单元。在两个存储单元之间交替传输可以避免复审,并提高整体数据带宽。