打印
[通用8051核FLASH系列]

HC89F003开发板——PWM单元初体验

[复制链接]
1278|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 芯圣电子官方QQ 于 2023-7-25 14:35 编辑

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


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

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

首先,配置PWM的周期

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

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



然后设置占空比
PWM0DH = 0x01;
PWM0DL = 0x55;
同样,是甴公式来的


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

再就是死区时间
PWM0DTH = 0x00;
PWM0DTL = 0x25;


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


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

死区效果很明显。


测量一下死区时间


18.4us

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


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






沙发
冷画| | 2017-12-7 13:37 | 只看该作者
顶一下  希望能继续支持芯圣

使用特权

评论回复
板凳
数码小叶|  楼主 | 2017-12-8 09:18 | 只看该作者
冷画 发表于 2017-12-7 13:37
顶一下  希望能继续支持芯圣

哈哈,目前来说,还是很方便的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

103

主题

2536

帖子

19

粉丝