驱动模块详解.ppt
14页驱动模块讲解,嵌入式系统协会 ——王乾,1 PWM 基本原理 PWM 即脉冲宽度调制( Pulse Width Modula tion) ,它是指将输出信号的基本周期固定,通过调 整基本周期内工作周期的大小来控制输出功率的 方法在PWM 驱动控制的调整系统中,按一个固定 的频率来接通和断开电源,并根据需要改变一个周 期内“接通”和“断开”时间的长短因此, PWM 又被称为“开关驱动装置”如图2 所示,在脉冲作 用下,当电机通电时,速度增加;电机断电时,速度逐 渐减少只要按一定规律,改变通、断电的时间,即 可让电机转速得到控制 图2 PWM 控制原理图 设电机始终接通电源时,电机转速最大为Vmax , 设占空比为D = t/ T ,则电机的平均速度为: V d = V max ·D 式中:V d 表示电机的平均速度; V max 表示电机 全通电时的速度(最大) ; D = t/ T 表示占空比 由公式(1) 可见,当改变占空比D 时,就可以得 到不同的电机平均速度,从而达到调速的目的 直流电机驱动,2 L298N 的工作原理 L298N 是SGS 公司的产品,其内部包含4 通道逻辑驱动电路, 即内含二个H 桥的高电压大电流双全桥式驱动器, 接收标准TTL 逻辑电平信号,可驱动46V 、2A 以下的电机[1 ] 。
由L298N 构成的PWM 功率放大器的工作形式为单极可逆模式,2 个H 桥的下侧桥晶体管发射极连在一起,其引脚排列如图1 所示,1 脚和15脚可单独引出连接电流采样电阻器,形成电流传号L298 可驱动2 个电机, OU Tl 、OU T2 和OU T3 、OU T4 之间分别接2 个电动机5 、7 、10 、12 脚接输入控制电平,控制电机的正反转,ENA 、ENB 接控制使能端,控制电机的停转[ 2 ] 这些特性使得L298N很适合用作小型直流电机控制芯片L298N芯片的输入电压有两个, VSS:5V,供给L298内部(前端)的工作电源 VS:小于或等于46V,供给电机,和L298内部输出端的工作电源PWM波是脉冲宽度调制,也就是占空比可变的脉冲波形 可编程计数器阵列(020单片机产生PWM波的模块) 可编程计数器阵列(PCA0)提供增强的定时器功能,与标准8051计数器/定时器相比,它需要较少的CPU干预PCA0包含一个专用的16位计数器/定时器和5个16位捕捉/比较模块每个捕捉/比较模块有其自己的I/O线(CEXn)当被允许时,I/O线通过交叉开关连到端口I/O(见“17.1 端口0 – 端口3和优先级交叉开关译码器”)。
计数器/定时器由一个可编程的时基信号驱动,时基信号有六个输入源:系统时钟、系统时钟/4、系统时钟/12、外部振荡器时钟源8分频、定时器0溢出、ECI线上的外部时钟信号每个捕捉/比较模块可以被编程为独立工作在下面的6种工作方式之一:边沿触发捕捉、软件定时器、高速输出、频率输出、8位PWM或16位PWM(23.2节对每种方式进行说明)对PCA的编程和控制是通过系统控制器的特殊功能寄存器来实现的PCA的基本原理框图示于图23.1PCA 计数器/定时器 16 位的PCA 计数器/定时器由两个8 位的SFR 组成:PCA0L 和PCA0HPCA0H 是16位计数器/定时器的高字节(MSB),而PCA0L 是低字节(LSB)PCA0MD 寄存器中的CPS2-CPS0 位用于选择PCA 计数器/定时器的时基信号,如表23.1 所示注意:在“外部振荡源/8 模式”,外部振荡源与系统时钟同步,其频率必须小于或等于系统时钟当计数器/定时器溢出时(从0xFFFF 到0x0000),PCA0MD 中的计数器溢出标志(CF)被置为逻辑1 并产生一个中断请求(如果CF 中断被允许)将PCA0MD 中ECF 位设置为逻辑1 即可允许CF 标志产生中断请求。
当CPU 转向中断服务程序时,CF 位不能被硬件自动清除,必须用软件清0注意:要使CF 中断得到响应,必须先总体允许PCA0 中断通过将EA 位(IE.7)和EPCA0 位(EIE1.3)设置为逻辑1 来总体允许PCA0 中断清除PCA0MD寄存器中的CIDL 位将允许PCA 在微控制器内核处于空闲方式时继续正常工作捕捉/比较模块 每个模块都可被配置为独立工作,有六种工作方式:边沿触发捕捉、软件定时器、高速输出、频率输出、8位脉宽调制器和16位脉宽调制器每个模块在CIP-51系统控制器中都有属于自己的特殊功能寄存器(SFR)这些寄存器用于配置模块的工作方式和与模块交换数据PCA0CPMn寄存器用于配置PCA捕捉/比较模块的工作方式,表23.2概述了模块工作在不同方式时该寄存器各位的设置情况置‘1’ PCA0CPMn寄存器中的ECCFn位将允许模块的CCFn中断注意:要使单独的CCFn中断得到响应,必须先整体允许PCA0中断通过将EA位(IE.7)和EPCA0位(EIE1.3)设置为逻辑1来整体允许PCA0中断PCA0中断配置的详细信息见图23.38 位脉宽调制器方式 每个模块都可以独立地用于在对应的CEXn引脚产生脉宽调制(PWM)输出。
PWM输出信号的频率取决于PCA0计数器/定时器的时基使用模块的捕捉/比较寄存器PCA0CPLn改变PWM输出信号的占空比当PCA0计数器/定时器的低字节(PCA0L)与PCA0CPLn中的值相等时,CEXn的输出被置‘1’当PCA0L中的计数值溢出时,CEXn输出被置为低电平(见图23.8)当计数器/定时器的低字节PCA0L溢出时(从0xFF到0x00),保存在PCA0CPHn中的值被自动装入PCA0CPLn,不需软件干预置‘1’ PCA0CPMn寄存器中的ECOMn和PWMn位将使能8位脉冲宽度调制器方式8位PWM方式的占空比由方程23.2给出关于捕捉/比较寄存器的重要注意事项:当向PCA0的捕捉/比较寄存器写入一个16位数值时,应先写低字节向PCA0CPLn的写入操作将清‘0’ECOMn位;向PCA0CPHn写入时将置‘1’ECOMn位 方程23.2 8位PWM的占空比= (256 − PCA0CPHn )/256 由方程23.2可知,最大占空比为100%(PCA0CPHn = 0),最小占空比为0.39(PCA0CPHn= 0xFF)可以通过清‘0’ECOMn位产生0%的占空比。
16 位脉宽调制器方式 每个PCA0模块都可以工作在16位PWM方式在该方式下,16位捕捉/比较模块定义PWM信号低电平时间的PCA0时钟数当PCA0计数器与模块的值匹配时,CEXn的输出被置为高电平;当计数器溢出时,CEXn的输出被置为低电平为了输出一个占空比可变的波形,新值的写入应与PCA0 CCFn匹配中断同步置‘1’ PCA0CPMn寄存器中的ECOMn、PWMn和PWM16n位将使能16位脉冲宽度调制器方式为了输出一个占空比可变的波形,应将CCFn设置为逻辑‘1’以允许匹配中断16位PWM方式的占空比由方程23.3给出关于捕捉/比较寄存器的重要注意事项:当向PCA0的捕捉/比较寄存器写入一个16位数值时,应先写低字节向PCA0CPLn的写入操作将清‘0’ECOMn位;向PCA0CPHn写入时将置‘1’ECOMn位方程23.3 16位PWM的占空比=(65536 − PCA0CPn )/65536 由方程23.3可知,最大占空比为100%(PCA0CPn = 0),最小占空比为0.0015%(PCA0CPn= 0xFFFF)可以通过清‘0’ECOMn位产生0%的占空比。





