[其他] HC89F003开发板——PWM单元初体验

[复制链接]
297|2
 楼主 | 2017-12-7 13:34 | 显示全部楼层 |阅读模式
本帖最后由 数码小叶 于 2017-12-7 13:32 编辑

之前申请HC89F003开发板,其一是看重它的管脚映射,其二就是PWM模块了


资料描述:
HC89S003F4 集成了三个 12 位 PWM 模块 PWM0、 PWM1 和 PWM2,三个模块各有一个计数器,
PWM0 的计数器由 PWM0_EN 来控制,只要使能 PWM0_EN,计数器就会启动,计数器的时钟源通过
PWM0C 控制寄存器里的 CK0 来选择。
看资料,略显方便强大啊

可以输出三组PWM,并且都带死区,这个要是用来做驱动信号,就显得很实用了
实际使用起来也确实很方便
  1. PWM0PH = 0x03;
  2. PWM0PL = 0xFF;
复制代码

首先,配置PWM的周期

周期的配置公式,手册里有,PWM0PH、PWM0PL根据需要自己更改,PWM0时钟周期呢也是自己选择设置的。
  1. PWM0C = 0x01;
复制代码
8分频
很明显,这里也和你的系统时钟也直接关联了。
  1. CLKSWR = 0x51;
  2. PWM0EN = 0x07;
复制代码
设置为16MHz;

周期=0x3FF x (1/(16MHz/8))=1023/2MHz=511.5us



然后设置占空比
  1. PWM0DH = 0x01;
  2. PWM0DL = 0x55;
复制代码
同样,是甴公式来的


看着很明显,不是占空比,即不是百分比,只是有效电平的持续时间。算下来是170.5us,那实际占空比就是170.5/511.5 ≈33.33%。

再就是死区时间
  1. PWM0DTH = 0x00;
  2. PWM0DTL = 0x25;
复制代码


算下来,就是37/2MHz=18.5us;


下载到板子里实际运行,测量波形

死区效果很明显。


测量一下死区时间


18.4us

再来看下,把死区时间去掉的效果


整个过程下来,发现芯圣的文档还是比较方便使用的,各个参数都给你描述的很详细,基本是从使用者角度考虑,简要说明如何配置。还是很喜欢这种风格的,给人的感觉就是上手很快。唯一觉得遗憾的一点,就是觉得少了结构图,不能让人有一种这个模块的全局感。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2017-12-7 13:37 | 显示全部楼层
顶一下  希望能继续支持芯圣
 楼主 | 2017-12-8 09:18 | 显示全部楼层
冷画 发表于 2017-12-7 13:37
顶一下  希望能继续支持芯圣

哈哈,目前来说,还是很方便的
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

分享 快速回复 返回顶部 返回列表