最新三星单片机应用

E-bike MCU S3F84A5 的 PWM(脉宽调制)模块中文说明

发布时间:2010.10.13 新闻来源:展亨科技(香港)有限公司/深圳市展亨隆电子有限公司 浏览次数:

概要
S3F84A5三星SAM8单片机基于E-bike应用开发, 其中PWM模块有一个8-位计数器和两个PWM波形发生电路.通过巧
妙地设计以达到适应于三相直流无刷电机(BLDC)控制应用. 
这个PWM模块有以下一些特性:
−  两种工作模式: 边沿对齐模式和中心对齐模式
−  高达六通道的PWM输出, 由内部分成两个组(A组和B组). 
−  两种组输出模式: 正向模式和反向模式. 
每个组的输出可同时设置为正向或者反向, 因此可实现3对互补波形的输出.
−  通过对两个寄存器(PWMADATA和PWMBDATA)设置合适的值实现死区时间控制.  
− P2PWMOUT寄存器用于PWM输出和普通I/O口输出之间的快速切换. 
PWM计数器是一个8-位双向计数器. 如果计数器停止, 将保持当前计数值; 重新开始后, 将从保持的当前值处开始计
数. 如果需要清除计数器, 则需往PWMCON.1位写 “1”.
通过设置PWMCON.6-.7可选择PWM计数器时钟. 可供选择的时钟为f
OSC/256, f
OSC/64, f
OSC/8 和f
OSC/1.
功能描述
PWM
这个8-位PWM电路有以下部分:
−  一个8-位双向计数器
−  两个8-位比较器电路
−  两个PWM波形发生电路: 每组独立使用一个波形发生器
−  两个独立8-位PWM组带缓冲的比较值寄存器(PWMADATA, PWMBDATA)
−  六个PWM输出(P2.7/PWM3A, P2.6/PWM3B, P2.4/PWM2A, P2.3/PWM2B, P2.1/PWM1A, P2.0/PWM1B) 
−  一个溢出中断. 在两种PWM模式中, 溢出中断发生时刻不一样
−  两个比较匹配中断:A组匹配中断和B组匹配中断. 在中心对齐模式下,向上计数或向下计数周期, 均可产生比较匹
配中断. 通过设置PWMINT.6-.3位来使能或禁止这两个或一个中断.
PWM计数器
这个8-位计数器是个双向计数器. 根据PWM模式, 计数器或递增计数或递减计数. 在边沿对齐模式下, 计数器从00H向
上计数至FFH, 然后自动从00H开始重新计数. 在中心对齐模式下, 计数器开始从00H向上计数至FFH, 之后, 从FFH向
下计数至00H, 依次往返重复这个过程.

PWM比较器 
有两个8-位比较器电路.无论何时, 只要计数器的值达到两个事先设置的比较值寄存器(PWMADATA 和
PWMBDATA)的值, 对应的匹配中断未决位将被置起. 如果此时对应的中断使能, 这个比较匹配信号将向CPU提交中
断申请(PWMAMATCH or PWMBMATCH). 
这个匹配未决位可通过往PWMINT.1或PWMINT.0写”0” 清除.
PWM寄存器 
PWM控制寄存器(PWMCON)
PWM模块中控制寄存器PWMCON, 位于寄存器地址F1H, Set 1, Bank 0. PWMCON寄存器中控制以下功能:
—   PWM 计数器时钟选择
— PWM 波形模式选择
— PWM 组输出模式选择
—   PWM 计数器清零
—   PWM 计数器停止/开始(或重新开始) 工作
系统复位将PWMCON所有位清零, 禁止整个PWM模块, 以及将六路PWM输出设置为边沿对齐模式和正向输出模式.
端口2PWM输出控制寄存器 (P2PWMOUT)
PWM模块中的端口2PWM输出控制寄存器P2PWMOUT位于寄存器地址F2H, Set 1, Bank 1. P2PWMOUT寄存器控
制以下功能:
—   普通I/O输出或PWM输出选择
系统复位将P2PWMOUT所有的位清零, 选择所有PWM输出I/O管脚作为普通输出管脚.
注: 在电机控制应用中, 为了安全性的考虑, 使用PWM模块前, 根据外部电路的要求, 在P2寄存器中预先设置安全值. 
PWM中断使能和未决控制寄存器(PWMINT)
PWM中断使能和未决控制寄存器PWMINT位于寄存器地址F4H, SET1 BANK 0. 
当任何一个PWM中断使能位为”1”时, 任何一组的计数器溢出或者比较匹配都将设置对应的PWM中断未决位, 并产生
中断申请. 当CPU回复此中断申请, 对比较匹配中断来说, 必须通过软件中写”0”来清除相应的PWM中断未决位, 而对
PWM溢出中断来说, 可通过硬件或者软件的方式清除.
PWM比较值寄存器 (PWMADATA & PWMBDATA)
S3F84A5的PWM模块中有两个组的比较值寄存器, 也就是说, 一个组(最多三个输出) 只有一个比较寄存器. 因为有了
这么强大的8-位PWM电路, 也就决定了输出的波形. 
— A组比较值寄存器PWMADATA, 位于E4H, Set1, Bank0.
— B组比较值寄存器PWMBDATA, 位于E5H, Set1, Bank0.
为了获得所需组的占空比, 需要往比较值寄存器中写合适的初始值.
PWMADATA和PWMBDATA的值只有在计数器溢出或者用户清除计数器时才会被更新, 这样做的目的是为了避免产
生奇怪长度或者非均匀的PWM波形, 从而使得输出波形无毛刺.

单片机开发工具
单片机编程器
ARM开发工具
C编译器
联系方式
三星单片机:

ic168@zh-ic.COM

开发工具:

B6078S@163.com

网站相关建议:

zh-ic@163.com

客户服务
 MSN咨询