文档库 最新最全的文档下载
当前位置:文档库 › 使用PWM 控制数字CPLD 的模拟输出

使用PWM 控制数字CPLD 的模拟输出

使用PWM 控制数字CPLD 的模拟输出
使用PWM 控制数字CPLD 的模拟输出

白皮书

使用PWM 控制数字CPLD 的模拟输出

2008年11月,1.0版1

WP-01085-1.0

Altera ? MAX ? IIZ CPLD 虽然是数字可编程逻辑器件,但通用性很强,足以控制模拟系统。本白皮书介绍怎样单独使用MAX IIZ CPLD 或者结合少量无源器件,替代数模转换器,驱动音频扬声器,控制LED 亮度、电机速度以及饲服电机位置等。白皮书还将介绍脉冲宽度调制(PWM)技术,以及怎样在MAX IIZ CPLD 中高效实现并使用PWM 。

引言

脉冲宽度调制器(PWM)是从数字元件中产生模拟输出的常用方法。PWM 替代数模转换器(DAC),产生与数字输入成比例的模拟电压或者电流。正如其名称所示,PWM 产生一串恒压或者恒流数字脉冲,脉冲宽度或者占空比与需要的模拟强度成正比。调制后的脉冲串可以通过低通滤波器,转换为模拟电压,但是一般不需要这样做。

图1是典型的模拟信号和数字PWM 表示。一般而言,模拟信号有最大振幅、最小振幅,以及期间的连续电平。而PWM 只有两个电平:最大和最小。

在将模拟信号转换为数字信号时,首先以载波频率对模拟信号进行采样。在一定采样周期下,模拟信号下的面积等于PWM 脉冲下的面积。PWM 的关键原理是最大振幅时的短脉冲所含有的能量等于小振幅时连续模拟信号的能量。这一简单的公式决定了PWM 电路所需要的采样频率:

其中,F SAMPLE 是模拟信号被转换成数字信号的频率,F RANGE 是模拟信号被PWM 再现的最大频率。在音频范围,电话是4 KHz ,而MP3播放器是20 KHz 。公式中的“2”来自Nyquist 频率,它是从数字采样中再现模拟信号所需要的过采样率。

下一步是产生时钟来驱动PWM 频率间隔。下面的公式决定了PWM 频率:

其中,F PWM 是驱动PWM 模块的频率,R 是分辨率。分辨率一般是2N 倍 (其中,N = 数字数据流字中的位数),而对于要使用的MAX IIZ PWM ,任意分辨率都可以。

PWM 模拟输出应用

MAX IIZ PWM 三种最常用的模拟应用是LED 驱动器、音频输出和电机控制。在这些应用中,MAX IIZ CPLD 可以控制灯光、声音和移动,实现以下功能:

灯光●控制LED 闪烁强度,以节省能源。●显示背光强度●三色LED 颜色混合■

声音

F SAMPLE 2F RANGE ×=F PWM 2F RANGE ×R

×=

使用PWM控制数字CPLD的模拟输出Altera公司

2●音频回放

●声音报警消息●铃声和声响效果●键盘点击和音调

■移动

●电机

- 电话振动器

- 游戏移动反馈

- 控制报警振动

- 散热风扇控制

- 键盘触摸反馈

●饲服电机

- 模拟控制电压

- 数字控制脉冲

图2显示了怎样简单方便地连接MAX IIZ CPLD和LED、扬声器或者电机。一般而言,只需要少量的外部元件。通常对PWM输出的误解是在使用它之前,必须通过某类滤波器将数字信号转换回模拟信号。在下面的例子中,只有模拟饲服电机需要滤波器。

灯光

控制灯亮度的PWM是最容易理解的一种功能。人眼不能探测闪烁频率高于240 Hz (4.2 ms的周期)的灯光,但是能够区别出数千个亮度级。在4.2 ms周期中,LED接通时间百分比可以小到只有0.01%,即4.2 us,灯看起来只是比较暗,而没有闪烁。50%占空比,即2.1 ms时,亮度看起来只有一半,而100%占空比时最亮。采用限流电阻来避免出现最亮输出,防止损害LED和MAX IIZ I/O缓冲。MAX IIZ CPLD采用了8-mA I/O电流设置,限制输出电流,在材料表(BOM)中可以去掉一个电阻。

电机

MAX IIZ CPLD可以直接驱动某些电机。一些微动电机有很大的失速电流,工作电流小于100 mA,共用PWM信号可以驱动多路邻近输出。例如,微动电机的最大电流为95 mA。每个MAX IIZ I/O额定为16-mA驱动。因此,6个开漏I/O一起驱动电机,不会损害MAX IIZ CPLD。

电机驱动电路电源和地采用了两个肖特基二极管。这些二极管一般为反向偏置, 但在电源掉电,或者控制器断电后电机仍在运行时,它们会钳位由电机绕组产生的过冲或者下冲电压尖峰。图2显示了怎样使用金属氧化物半导体场效应晶体管(MOSFET)来驱动大功率电机。MOSFET栅极上的下拉电阻使电机在电路板上电和断电期间保持停止状态。

PWM速率控制非常简单。送给电机的能量为:

电压电流

×时间

×焦耳

=

Altera 公司使用PWM 控制数字CPLD 的模拟输出

3

在一定的采样周期中,如果平均电压是最大值的50%,或者在50%的采样周期中为最大值,那么,电机功率和RPM 将不变。对于电机驱动器,建议的采样周期为:

保持高于这一频率可以避免出现能够察觉到的振动。此外,在速度和功率控制中,可以采用小到只有0.01%的PWM 分辨率。

声音

可能需要在音频输出(扬声器或者耳机)电路上加入限流串联电阻。由于扬声器是线圈绕组,因此,采用肖特基钳位二极管来防止绕组放电过冲和下冲非常重要,以避免损害MAX IIZ I/O 。常见的一种错误概念是音频输出需要滤波器将数字PWM 信号转换为模拟电压。 扬声器这种设备类似于电机,喇叭传给空气分子的能量也是:

在一定的采样周期中,如果平均电压是最大值的50%,或者在50%的采样周期中为最大值,那么,扬声器产生音频压缩波形的能力是相同的。44.1 KHz 的PWM 载波产生CD 质量的频率范围,MPEG 音频为11 KHz ,而8 KHz 用于数字电话应用。多个开漏I/O 一起提高了PWM 驱动扬声器的功率输出。对于音频PWM 系统,控制使能的I/O 数量能够直接控制音量。

饲服电机

传统的模拟饲服电机臂位置与饲服电机电源和地之间的控制电压成正比。通过低通RC 滤波器,PWM 输出被转换为稳定的DC 电压, 设计的RC 滤波值应具有与PWM 采样频率相等的低通截止频率:

小于F SAMPLE 的截止频率提高了稳定性,但是减小了响应时间,而大于F SAMPLE 的截止频率增大了抖动,但是减小了建立时间。新一代饲服电机使用数字脉冲宽度技术来指定饲服电机臂角度,因此,MAX IIZ PWM 可以直接驱动数字饲服电机。

实现PWM

和其他CPLD 体系结构相比,MAX IIZ 体系结构能够更高效地支持算术函数。字宽每比特只需要一个逻辑单元(LE )就可以实现计数器和加法器,MAX IIZ CPLD 的可编程特性使其很容易实现任意宽度和计数长度的计数器。图3所示为MAX IIZ PWM 的三个组成部分,采用了Quartus ? II 软件的参数化宏库(LPM )来构建。使用Quartus II 软件中的GUI 工具来开发这些LPM 模块——LPM_FF 、LPM_COUNTER 和

LPM_ADD_SUB ,该软件生成Verilog 、VHDL 和AHDL 文件格式。F PWM -Hz 时钟源为PWM 提供时钟。

F SAMPLE 12RPM MAX 60?()×()?=电压电流×时间×焦耳=F SAMPLE 12Π×R ×C ×()?=

使用PWM 控制数字CPLD 的模拟输出Altera 公司

4

LPM_FF 中保持的数字值由 PWM 转换为模拟值。当 SAMPLE_EN 信号是“1”时,LPM_FF 被装入,根据数字数据流位宽来设置其宽度。

LPM_COUNTER 是二进制计数器,能够由 SSET 信号同步设置为任意起始值,典型值一般是“0”。当计数器达到最大计数时,LPM_COUNTER 进位输出(CO)为“1”。LPM_COUNTER CO 产生采样使能信号SAMPLE_EN 。采样周期一般是:

但是对于同步设置值,可以在LPM_COUNTER MegaWizard ?插件中定制。可以将同步设置值分配为下面的值来实现分辨率为M 级的PWM :

使用非2N 分辨率的例子包括以1%步长来控制LED 亮度,使亮度从0增大到100%,这需要7位计数器,其M 值为27。控制饲服电机臂以1° 步长从0°移动到245°需要8位计数器,其M 值为10。

LPM_ADD_SUB 是二进制加法器,使用LPM_COUNTER 和LPM_FF 输出作为“A ”和“B ”输入。LPM_ADD_SUB 进位输入(CI)是常数“0”,没有使用LPM_ADD_SUB SUM 输出,PWM 输出(PWM_OUT)是LPM_ADD_SUB CO 。下面的三个例子解释了这一简单结构是怎样用于4位PWM 的。

■当LPM_FF 采样是“1”时,LPM_COUNTER 序列从0到15,因此,有16次加法。对于16 个计数中的15个,0至14,加法器的CO 是“0”,计数值是15时,为“1”,从而产生1/16%的占空比。■当LPM_FF 采样是“8”时,对于计数0到7,加法器的CO 是“0”,对于其他8个计数值,8到15,CO 是“1”,从而产生8/16%的占空比。

当LPM_FF 采样是“15”时,对于唯一的计数0,加法器的CO 是“0”,剩余的其他15个计数值,1到15,CO 是“1”,从而产生15/16%的占空比。

PWM 的资源利用率非常高。具有相同采样周期和分辨率的PWM 可以共享一个LPM_COUNTER ,非2N 分辨率不会影响效率。表1列出了不同位宽所需要的LE 。

2

N 1+()

F PWM

?2

N 1+()

M –1

5

版权? 2008 Altera 公司。保留所有版权。Altera 、可编程解决方案公司、程式化Altera 标识、专用器件名称和所有其他专有商标或者服务标记,除非特别声明,均为Altera 公司在美国和其他国家的商标和服务标记。所有其他产品或者服务名称的所有权属于其各自持有人。Altera 产品受美国和其他国家多种专利、未决应用、掩模著作权和版权的保护。Altera 保证当前规范下的半导体产品性能与Altera 标准质保一致,但是保留对产品和服务在没有事先通知时的变更权利。除非与Altera 公司的书面条款完全一致,否则Altera 不承担由使用或者应用此处所述信息、产品或者服务导致的责任。Altera 建议客户在决定购买产品或者服务,以及确信任何公开信息之前,阅读Altera 最新版的器件规范说明。

101 Innovation Drive San Jose, CA https://www.wendangku.net/doc/5f17949635.html,

Altera 公司使用PWM 控制数字CPLD 的模拟输出

注释:

(1) N =log 2(分辨率)

即使是最小的MAX IIZ CPLD ,EPM240Z ,也有240个LE ,一个8位PWM 只需要占用MAX IIZ 资源的十分之一。 十个8位PWM 只需要占用MAX IIZ 资源的168/240。

结论

PWM 是将数字数据转换为模拟信号非常强大的工具。带有PWM 的MAX IIZ CPLD 能够控制系统中的所有模拟量,包括灯光、声音和移动等。MAX IIZ 体系结构适合实现逻辑效率非常高的PWM ,因此,使用PWM 输出来控制LED 、扬声器、电机和饲服电机等模拟元件时只需要少量的无源器件。

详细信息

“数字饲服电机是怎样工作的?”:

https://www.wendangku.net/doc/5f17949635.html,/html/how_do_servos_work_.html ■Nyquist 频率:

https://www.wendangku.net/doc/5f17949635.html,/wiki/Nyquist_frequency ■采样频率:

https://www.wendangku.net/doc/5f17949635.html,/wiki/Sampling_frequency ■资料:MAX II 器件:

https://www.wendangku.net/doc/5f17949635.html,/literature/lit-max2.jsp ●使用零功耗CPLD 降低便携式应用的系统总成本:

https://www.wendangku.net/doc/5f17949635.html,/literature/wp/wp-01001-reduce-total-system-cost-in-portable-apps-using-max.pdf ●采用CPLD 替代微控制器的六种方法:

https://www.wendangku.net/doc/5f17949635.html,/literature/wp/wp-01041-six-ways-to-replace-microcontroller-with-cpld.pdf ●使用零功耗CPLD 有效降低便携式应用的功耗:

https://www.wendangku.net/doc/5f17949635.html,/literature/wp/wp-01042-using-zero-power-cplds-to-lower-power-in-portable.pdf ●使用LED 作为亮度级传感器和发射器:

https://www.wendangku.net/doc/5f17949635.html,/literature/wp/wp-01076-led-driver-reduces-power-adjusting-intensity-ambient-light.pdf ●采用CPLD 开发多点触摸屏和面板:

https://www.wendangku.net/doc/5f17949635.html,/literature/wp/wp-01086-multipoint-touchscreens-panels-cplds.pdf

致谢

■Rafael Camarota ,非易失产品线经理,低成本产品组,Altera 公司。■

Judd Heape ,资深技术营销经理,消费类和汽车业务部,Altera 公司。

表1. PWM LE 要求

模块

第一个PWM*

其他PWM (1)

LPM_FF N N LPM_COUNTER N 0LPM_ADD_SUB N N 总计

3N

2N

相关文档