本帖最后由 芯圣电子官方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时钟周期呢也是自己选择设置的。
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
再来看下,把死区时间去掉的效果
整个过程下来,发现芯圣的文档还是比较方便使用的,各个参数都给你描述的很详细,基本是从使用者角度考虑,简要说明如何配置。还是很喜欢这种风格的,给人的感觉就是上手很快。唯一觉得遗憾的一点,就是觉得少了结构图,不能让人有一种这个模块的全局感。
|