STC8H高级PWM--互补SPWM代码分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

各个厂家单片机现在都集成了PWM功能,出于成本原因和偶然间看到STC8H的高级PWM,决定分析下STC在低成本下的功能使用,并简单分析下代码和测试结果。
由于官方说STC8H系列,是目前 STC 功能最强的 PWM,可输出互补/对称/带死区的 PWM 波形。所以这里重点分析下SPWM。


提示:以下是本篇文章正文内容,下面案例可供参考

一、首先看下STC 目前有三种硬件 PWM

1,兼容传统 8051 的 PCA/CCP/PWM

可输出 PWM 波形、捕获外部输入信号以及输出高速脉冲。可对外输出 6 位/7 位/8 位/10 位的 PWM 波形。捕获外部输入信号,可捕获上升沿、下降沿或者同时捕获上升沿和下降沿。

2,STC8G 系列的 15 位增强型 PWM

只能对外输出 PWM 波形,无输入捕获功能。通过软件干预,可实现多路互补/对称/带死区的 PWM 波形。有外部异常检测功能以及实时触发 ADC 转换功能。

3,STC8H 系列的 16 位高级 PWM 定时器

是目前 STC 功能最强的 PWM,可对外输出任意频率以及任意占空比的 PWM 波形。
无需软件干预即可输出互补/对称/带死区的 PWM 波形。
能捕获外部输入信号,可捕获上升沿、下降沿或者同时捕获上升沿和下降沿,
测量外部波形时,可同时测量波形的周期值和占空比值。
有正交编码功能、外部异常检测功能以及实时触发 ADC 转换功能。

二、高级 PWM 代码分析

1.模式配置

初始化模式代码如下:

    PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
    PWMA_CCMR1 = 0x68; //模式寄存器,
    PWMA_CCER1 = 0x05; //使能寄存器,配置通道输出使能和极性

1,PWMA_CCMR1 位(7,6,5)是OC1M[2:0],

当为110=PWM模式1
在向上计数时,当PWMn_CNT<PWMn_CCR1时,OCnREF输出高,否则OCnREF输出低
在向下计数时,当PWMn_CNT>PWMn_CCR1时,OCnREF输出低,否则OCnREF输出高

当为111=PWM模式2
在向上计数时,当PWMn_CNT<PWMn_CCR1时,OCnREF输出低,否则OCnREF输出高
在向下计数时,当PWMn_CNT>PWMn_CCR1时,OCnREF输出高,否则OCnREF输出低

所以初始化配置PWMA_CCMR1 为,PWM模式1,开启 PWM1_CCR1 寄存器的预装载功能。

2,PWMA_CCER1 (使能寄存器)位(2,0)是CC1NE,CC1E

	PWM1_Duty = 600;
	//PWMA_CCER1 = 0x01;	   CC1E           -> p10-p11=2.9v-5.0v 
	//PWMA_CCER1 = 0x05;       CC1NE          -> p10-p11=5.0v-2.9v  
	//PWMA_CCER1 = 0x05;       CC1NE+CC1E     -> p10-p11=2.9v-2.1v  

此处验证了互补/对称的功能

2.配置周期时间

    PWMA_ARRH = (u8)(PWM_PERIOD >> 8); //设置周期时间
    PWMA_ARRL = (u8)PWM_PERIOD;

3.配置PWMA_ENO输出使能寄存器

    PWMA_ENO = 0x00;		//输出使能寄存器
    PWMA_ENO |= ENO1P; //使能输出
    PWMA_ENO |= ENO1N; //使能输出

3.配置PWMA_PS高级 PWM 通道选择寄存器

    PWMA_PS = 0x00;  //高级 PWM 通道输出脚选择位
    PWMA_PS |= PWM1_1; //选择 PWM1_1 通道

4.配置PWMA_BKR刹车寄存器

    PWMA_BKR = 0x80; //刹车寄存器,使能主输出
    PWMA_CR1 |= 0x01; //控制寄存器,开始计时,1:使能计数器。

总结

未完待续!

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值