松翰单片机--SN8F5702学习笔记(五)PWM

本文详细介绍了PW1定时器的结构和工作原理,包括16位二进制上升4通道PWM和脉冲PWM功能。阐述了PWM的占空比控制、周期控制、死区控制以及反转和单脉冲模式。深入解析了PW1CH、PW1M、PW1Y、PW1D等关键寄存器的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PW1定时器包括一个16位二进制上升4通道PWM和一个脉冲PWM功能。由计数器达到上限值(PW1Y),清除其计数器并触发中断信号。PWM的占空比由PW1D寄存器控制。PWM还支持一个脉冲输出信号,该信号可在第一个PWM结束时自行禁用周期。因此,在这种情况下只能产生一个脉冲。 PWM有四个可编程通道与GPIO引脚共用,由PW1CH寄存器控制。输出操作必须是通过使能PW1CH寄存器的每个位/通道。启用的PWM通道交换GPIO到PWM输出。当PW1CH寄存器禁用时,PWM通道返回上一状态GPIO模式。如果中断使能,则PWM内置空闲模式唤醒功能。当PWM时发生定时器溢出(从PW1Y-1到PW1Y计数),PWM1F将立即发出可以通过固件读/写。 PWM时钟源为fosc,除以1至128倍由PW1R [2:0]位控制。 PW1中断功能由EPWM1​​控制。

在这里插入图片描述

普通PWM

 PW1定时器内置PWM功能,由PW1EN和PW1CH寄存器控制。 PWM10,PWM11,PWM20,PWM21是输出引脚(与P0.5,P0.6,P1.4和P1.5共用)。 那些输出引脚是与PW1CH寄存器控制的GPIO引脚共用。 输出PWM功能时,必须设置PW1EN = 1。 当PWM输出信号同步完成时,PWM通道交换GPIO到PWM输出。 当PW1EN = 0时,PWM通道返回GPIO模式并返回上一个状态。

 从PW1Y和PW1D比较组合的结果产生PWM信号。 当PW1C从0x0000开始计数,PWM输出高电平状态,即PWM初始状态。 PW1C是从PW1Y寄存器加载新数据以确定PWM周期和分辨率。 PW1C继续计数,并且系统比较PW1C和PW1D。 当PW1C = PW1D时,PWM输出状态交换到低PW1C继续计数。 当PW1定时器溢出时(PW1Y-1至0x0000),并且PWM信号的一个周期结束。 PW1C自动从0x0000重新加载,并且PWM
输出状态在下一个周期交换为高电平。 PW1D决定高占空比和PW1Y决定PWM的分辨率和周期。 PW1D不能大于PW1Y,否则PWM信号将是错误的。

在这里插入图片描述

单脉冲PWM

 当PW1PO = 0时,PW1为PWM功能模式。 当PW1PO = 1且PW1EN = 1时,PW1将输出PW1计数器溢出时,发出单脉冲PWM功能和PWM1F。 PW1EN位清零自动和脉冲输出引脚返回空闲状态。 输出下一个脉冲是设置PW1EN位按程序再次。 由PW1CH寄存器选择的一个脉冲PWM通道。 当输出一个脉冲PWM功能时,我们必须设置PW1PO = 1和PW1EN = 1。 当一个脉冲PWM输出信号同步完成后,PWM通道从GPIO切换到PWM输出。 当一个脉冲PWM输出结束,PW1EN = 0,PWM通道返回GPIO模式和上一个状态。

在这里插入图片描述

反转和死区

 PWM建立反向输出功能。 当PWNVn = 1时,PWM具有一个反向PWM信号。当PWNVn = 1时,PW1输出PWM1的反向PWM信号。 当PWNVn = 0时,PW1输出PWM1的非反向PWM信号。反向PWM输出波形如下图。

在这里插入图片描述
 PWM死区出现在PWM高脉冲宽度,死区周期可编程来自PW1A和PW1D-PW1B寄存器。 死区周期在左右终端是对称的PWM脉冲宽度与否。 如果死区周期长于PWM占空比,则PWM不输出。

PWM寄存器

在这里插入图片描述
1、PWM输出引脚控制:PW1CH

寄存器bit7bit6bit5bit4bit3bit2bit1bit0
PW1CH--PWCH21PWCH20--PWCH11PWCH10
引脚对应--P1.5P0.6--P1.4P0.5
解释--设置为0则为普通引脚,设置为1则作为PWM输出引脚同左--同左同左

2、PWM功能模式配置:PW1M

寄存器bit7bit6bit5bit4bit3bit2bit1bit0
PW1MPW1ENPW1R2PW1R1PW1R0PWNV2PWNV1-PW1PO
解释PWM使能:1打开,0关闭时钟源选择2位时钟源选择1位时钟源选择0位PWM20/21输出控制:1可反转,0不可反转PWM10/11输出控制:1可反转,0不可反转-单脉冲功能:1打开,0关闭

时钟源选择位:

分频
000fosc / 128
001fosc / 64
010fosc / 32
011fosc / 16
100fosc / 8
101fosc / 4
110fosc / 2
111fosc / 1

3、PWM周期控制:PW1YH,PW1YL

16位

4、PWM占空比控制:PW1DH,PW1DL

16位

5、PWM死区控制B点PW1BH,PW1BL

16位

6、PWM死区控制A点PW1A

8位

注意:在死区控制配置中,B必须要大于A

    PW1M |= 0x70;           	// PW1 rate is Fhosc/1     PWMÊä³öƵÂÊΣ(32/1)/256 = 125KHZ   PWMÖÜÆÚΪ8uS

    PW1M |= 0x08;           	// enable PWM20/21 output
    PW1M |= 0x04;           	// enable PWM10/11 output

//    PW1M |= 0x01;        		// enable PW1 pulse output function (PW1PO)

    PW1YH = 0x00;
    PW1YL = 0xFF;        			// set PW1 cycle control    256

    PW1DH = 0x00;
    PW1DL = 0x40;           	// set PWM duty control   64     占空比为25%(低电平的占空比)
1 1 1 产品简介 1.1 功能特性  产品性能列表 定时器 单片机名称 ROM RAM 堆栈 T0 TC0 TC1 T1 SIO MSP I/O 比较器 PWM 唤醒功能 引脚数目 封装形式 SN8P2522 2K*16 128 8 V V V V V - 16 8-ch 2 9 DIP18/SOP18/ SSOP20 SN8P2523 2K*16 256 8 V - V - V V 22 12-ch 8+1 14 SKDIP24/SOP24 /SSOP28 SN8P25231 2K*16 256 8 V - V - V V 16 8-ch 2+1 12 DIP18/SOP18/ SSOP20  存储器配置  1 个 8位基本定时器 T0 ROM:2K * 16 位。  1 个 8位定时器,具有占空比/周期可编程控制的 PWM 功能 RAM:256 * 8 位。  8 通道 LED PWM驱动  8 层堆栈缓存器  12 通道比较器  6 个中断源  SIO 串行输入/输出接口 5 个内部中断:T0,TC1,CM0,SIO,MSP。  MSP从动模式接口 1 个外部中断:INT0。  内置看门狗定时器,时钟源由内部低速 RC时钟提供 (16KHz @3V, 32KHz @5V)  I/O 引脚配置 双向输入输出端口:P0,P1,P5。 具有唤醒功能的端口:P0,P1 电平变换。  2 种系统时钟 具有上拉电阻的端口:P0,P1,P5。 内部高速时钟:RC,16MHz。 可编程的开漏引脚:P5.0~P5.2。 内部低速时钟:RC,16KHz(3V),32KHz(5V)。 比较器输入引脚:CM0N0~CM0N11。 比较器输出引脚:CM0O。  4 种工作模式 普通模式:高低速时钟正常工作。  Fcpu(指令周期) 低速模式:仅低速时钟工作。 Fcpu = Fpsc/1,Fpsc/2,Fosc/4,Fosc/8,Fosc/16。 睡眠模式:高低速时钟都停止工作。 绿色模式:由定时器周期性的唤醒。  功能强大的指令集 指令的长度为 1个字长。  封装形式 大多数指令只需要一个周期。 SKDIP 24 pin JMP/CALL 指令可寻址整个 ROM区。 SOP 24 pin 查表指令 MOVC 可寻址整个 ROM区。 SSOP 28 pin
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值