首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STC15W4K32S4系列新增6通道增强型带死区控制高精度PWM波形发生器应用

STC15W4K32S4系列新增6通道增强型带死区控制高精度PWM波形发生器应用

STC15W4K32S4系列的单片机集成了一组(各自独立6路)增强型的PWM波形发生器。PWM波形发生器内部有一个15位的PWM计数器供6路PWM使用,用户可以设置每路PWM的初始电平。另外,PWM波形发生器为每路PWM又设计了两个用于控制波形翻转的计数器T1/T2,可以非常灵活的每路PWM的高低电平宽度,从而达到对PWM的占空比以及PWM的输出延迟进行控制的目的。由于6路PWM是各自独立的,且每路PWM的初始状态可以进行设定,所以用户可以将其中的任意两路配合起来使用,即可实现互补对称输出以及死区控制等特殊应用。
增强型的PWM波形发生器还设计了对外部异常事件(包括外部端口P2.4的电平异常、比较器比较结果异常)进行监控的功能,可用于紧急关闭PWM输出。PWM波形发生器还可在15位的PWM计数器归零时出发外部事件(ADC转换)。


STC15W4K32S4系列增强型PWM输出端口定义如下:
[PWM23.7, PWM32.1, PWM42.2, PWM52.3, PWM61.6, PWM71.7]
每路PWM的输出端口都可使用特殊功能寄存器位CnPINSEL分别独立的切换到第二组
[PWM2_22.7, PWM3_24.5, PWM4_24.4, PWM5_24.2, PWM6_2:P0.7,PWM7_2:P0.6]


所有与PWM相关的端口,在上电后均为高阻输入态,必须在程序中将这些口设置为双向口或强推挽模式才可正常输出波形
端口模式设置相关特殊功能寄存器

  

符号

  
  

描述

  
  

地址

  
  

位地址及符号

  
  

初始值

  
  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

P1M1

  
  

P1模式配置1

  
  

91H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P1M0

  
  

P1模式配置0

  
  

92H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P0M1

  
  

P0模式配置1

  
  

93H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P0M0

  
  

P0模式配置0

  
  

94H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P2M1

  
  

P2模式配置1

  
  

95H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P2M0

  
  

P2模式配置0

  
  

96H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P3M1

  
  

P3模式配置1

  
  

B1H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P3M0

  
  

P3模式配置0

  
  

B2H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P4M1

  
  

P4模式配置1

  
  

B3H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

P4M0

  
  

P4模式配置0

  
  

B4H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  

端口模式设置

  

PxM1

  
  

PxM0

  
  

模式

  
  

0

  
  

0

  
  

准双向口

  
  

0

  
  

1

  
  

强推挽输出

  
  

1

  
  

0

  
  

高阻输入

  
  

1

  
  

1

  
  

开漏输出

  
若需要正常使用与PWM相关的端口,则需要将相应的端口设置为准双向口或强推挽输出口
例如将端口均设置为准双向口的汇编代码如下:


MOV P0M0,#00H


MOV P0M1,#00H


MOV P1M0,#00H


MOV P1M1,#00H


MOV P2M0,#00H


MOV P2M1,#00H


MOV P3M0,#00H


MOV P3M1,#00H


MOV P4M0,#00H


MOV P4M1,#00H



增强型PWM波形发生器相关的特殊功能寄存器

  

符号

  
  

描述

  
  

地址

  
  

位地址及符号

  
  

初始值

  
  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

P_SW2

  
  

端口配置寄存器

  
  

BAH

  
  

EAXSFR

  
  

0

  
  

0

  
  

0

  
  

-

  
  

S4_S

  
  

S3_S

  
  

S2_S

  
  

0000,0000

  
  

PWMCFG

  
  

PWM配置

  
  

F1H

  
  

-

  
  

CBTADC

  
  

C7INI

  
  

C6INI

  
  

C5INI

  
  

C4INI

  
  

C3INI

  
  

C2INI

  
  

0000,0000

  
  

PWMCR

  
  

PWM控制

  
  

F5H

  
  

ENPWM

  
  

ECBI

  
  

ENC7O

  
  

ENC6O

  
  

ENC5O

  
  

ENC4O

  
  

ENC3O

  
  

ENC2O

  
  

0000,0000

  
  

PWMIF

  
  

PWM中断标志

  
  

F6H

  
  

-

  
  

CBIF

  
  

C7IF

  
  

C6IF

  
  

C5IF

  
  

C4IF

  
  

C3IF

  
  

C2IF

  
  

x000,0000

  
  

PWMFDCR

  
  

PWM外部异常控制

  
  

F7H

  
  

-

  
  

-

  
  

ENFD

  
  

FLTFLIO

  
  

EFDI

  
  

FDCMP

  
  

FDIO

  
  

FDIF

  
  

xx00,0000

  
  

PWMCH

  
  

PWM计数器高位

  
  

FFF0H

  
  

-

  
  

PWMCH[14:8]

  
  

x000,0000

  
  

PWMCL

  
  

PWM计数器低位

  
  

FFF1H

  
  

PWMCL[7:0]

  
  

0000,0000

  
  

PWMCKS

  
  

PWM时钟选择

  
  

FFF2H

  
  

-

  
  

-

  
  

-

  
  

SELT2

  
  

PS[3:0]

  
  

xxx0,0000

  
  

PWM2T1H

  
  

PWM2T1计数高位

  
  

FF00H

  
  

-

  
  

PWM2T1H[14:8]

  
  

x000,0000

  
  

PWM2T1L

  
  

PWM2T1计数低位

  
  

FF01H

  
  

PWM2T1L[7:0]

  
  

0000,0000

  
  

PWM2T2H

  
  

PWM2T2计数高位

  
  

FF02H

  
  

-

  
  

PWM2T2H[14:8]

  
  

x000,0000

  
  

PWM2T2L

  
  

PWM2T2计数低位

  
  

FF03H

  
  

PWM2T2L[7:0]

  
  

0000,0000

  
  

PWM2CR

  
  

PWM2控制

  
  

FF04H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM2_PS

  
  

EPWM2I

  
  

EC2T2SI

  
  

EC2T1SI

  
  

xxxx,0000

  
  

PWM3T1H

  
  

PWM3T1计数高位

  
  

FF10H

  
  

-

  
  

PWM3T1H[14:8]

  
  

x000,0000

  
  

PWM3T1L

  
  

PWM3T1计数低位

  
  

FF11H

  
  

PWM3T1L[7:0]

  
  

0000,0000

  
  

PWM3T2H

  
  

PWM3T2计数高位

  
  

FF12H

  
  

-

  
  

PWM3T2H[14:8]

  
  

x000,0000

  
  

PWM3T2L

  
  

PWM3T2计数低位

  
  

FF13H

  
  

PWM3T2L[7:0]

  
  

0000,0000

  
  

PWM3CR

  
  

PWM3控制

  
  

FF14H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM3_PS

  
  

EPWM3I

  
  

EC3T2SI

  
  

EC3T1SI

  
  

xxxx,0000

  
  

PWM4T1H

  
  

PWM4T1计数高位

  
  

FF20H

  
  

-

  
  

PWM4T1H[14:8]

  
  

x000,0000

  
  

PWM4T1L

  
  

PWM4T1计数低位

  
  

FF21H

  
  

PWM4T1L[7:0]

  
  

0000,0000

  
  

PWM4T2H

  
  

PWM4T2计数高位

  
  

FF22H

  
  

-

  
  

PWM4T2H[14:8]

  
  

x000,0000

  
  

PWM4T2L

  
  

PWM4T2计数低位

  
  

FF23H

  
  

PWM4T2L[7:0]

  
  

0000,0000

  
  

PWM4CR

  
  

PWM4控制

  
  

FF24H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM4_PS

  
  

EPWM4I

  
  

EC4T2SI

  
  

EC4T1SI

  
  

xxxx,0000

  
  

PWM5T1H

  
  

PWM5T1计数高位

  
  

FF30H

  
  

-

  
  

PWM5T1H[14:8]

  
  

x000,0000

  
  

PWM5T1L

  
  

PWM5T1计数低位

  
  

FF31H

  
  

PWM5T1L[7:0]

  
  

0000,0000

  
  

PWM5T2H

  
  

PWM5T2计数高位

  
  

FF32H

  
  

-

  
  

PWM5T2H[14:8]

  
  

x000,0000

  
  

PWM5T2L

  
  

PWM5T2计数低位

  
  

FF33H

  
  

PWM5T2L[7:0]

  
  

0000,0000

  
  

PWM5CR

  
  

PWM5控制

  
  

FF34H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM5_PS

  
  

EPWM5I

  
  

EC5T2SI

  
  

EC5T1SI

  
  

xxxx,0000

  
  

PWM6T1H

  
  

PWM6T1计数高位

  
  

FF40H

  
  

-

  
  

PWM6T1H[14:8]

  
  

x000,0000

  
  

PWM6T1L

  
  

PWM6T1计数低位

  
  

FF41H

  
  

PWM6T1L[7:0]

  
  

0000,0000

  
  

PWM6T2H

  
  

PWM6T2计数高位

  
  

FF42H

  
  

-

  
  

PWM6T2H[14:8]

  
  

x000,0000

  
  

PWM6T2L

  
  

PWM6T2计数低位

  
  

FF43H

  
  

PWM6T2L[7:0]

  
  

0000,0000

  
  

PWM6CR

  
  

PWM6控制

  
  

FF44H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM6_PS

  
  

EPWM6I

  
  

EC6T2SI

  
  

EC6T1SI

  
  

xxxx,0000

  
  

PWM7T1H

  
  

PWM7T1计数高位

  
  

FF50H

  
  

-

  
  

PWM7T1H[14:8]

  
  

x000,0000

  
  

PWM7T1L

  
  

PWM7T1计数低位

  
  

FF51H

  
  

PWM7T1L[7:0]

  
  

0000,0000

  
  

PWM7T2H

  
  

PWM7T2计数高位

  
  

FF52H

  
  

-

  
  

PWM7T2H[14:8]

  
  

x000,0000

  
  

PWM7T2L

  
  

PWM7T2计数低位

  
  

FF53H

  
  

PWM7T2L[7:0]

  
  

0000,0000

  
  

PWM7CR

  
  

PWM7控制

  
  

FF54H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM7_PS

  
  

EPWM7I

  
  

EC7T2SI

  
  

EC7T1SI

  
  

xxxx,0000

  





端口配置寄存器P_SW2

地址:BAH
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

EAXSFR

  
  

0

  
  

0

  
  

0

  
  

-

  
  

S4_S

  
  

S3_S

  
  

S2_S

  
EAXSFR:扩展SFR访问控制使能
0:MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展RAM(XRAM)
1:MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展SFR(XSFR)
注意:若要访问PWM在扩展RAM区的特殊功能寄存器,必须先将EAXSFR位置为1
BIT6,BIT5,BIT4为内部测试使用,用户必须填0


PWM配置寄存器PWMCFG

地址:F1H
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

CBTADC

  
  

C7INI

  
  

C6INI

  
  

C5INI

  
  

C4INI

  
  

C3INI

  
  

C2INI

  
CBTADC:PWM计数器归零时(CBIF==1时)触发ADC转换
0:PWM计数器归零时不触发ADC转换
1:PWM计数器归零时自动触发ADC转换。(注:前提条件是PWM和ADC必须被使能,即ENPWM==1,且ADCON==1)
CnINI:设置PWM输出端口的初始电平
0:PWM输出端口的初始电平为低电平
1:PWM输出端口的初始电平为高电平


PWM控制寄存器PWMCR

地址:F5H
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

ENPWM

  
  

ECBI

  
  

ENC7O

  
  

ENC6O

  
  

ENC5O

  
  

ENC4O

  
  

ENC3O

  
  

ENC2O

  
ENPWM:使能增强型PWM波形发生器
0:关闭PWM波形发生器
1:使能PWM波形发生器,PWM计数器开始计数
ECBI:PWM计数器归零中断使能位
0:关闭PWM计数器归零中断(CBIF依然会被硬件置位)
1:使能PWM计数器归零中断
ENCnO:PWM输出使能位
0:相应PWM通道的端口为GPIO
1:相应PWM通道的端口为PWM输出口,受PWM波形发生器控制


PWM中断标志寄存器PWMIF

地址:F6H
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

CBIF

  
  

C7IF

  
  

C6IF

  
  

C5IF

  
  

C4IF

  
  

C3IF

  
  

C2IF

  
CBIF:PWM计数器归零中断标志位
PWM计数器归零时,硬件自动将此位置1。当ECBI==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。
CnIF:第n通道的PWM中断标志位
可设置在翻转点1和翻转点2触发CnIF(详见ECnT1SI和ECnT2SI)。PWM发生翻转时,硬件自动将此位置1。当EPWMnI==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。


PWM外部异常控制寄存器PWMFDCR

地址:F7H
初始值:xx00,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

ENFD

  
  

FLTFLIO

  
  

EFDI

  
  

FDCMP

  
  

FDIO

  
  

FDIF

  
ENFD:PWM外部异常检测功能控制位
0:关闭PWM的外部异常检测功能
1:使能PWM的外部异常检测功能
FLTFLIO:发生PWM外部异常时对PWM输出口控制位
0:发生WM外部异常时,PWM的输出口不作任何改变
1:发生WM外部异常时,PWM的输出口立即被设置为高阻输入模式。(注:只有ENCnO==1所对应的端口才会被强制悬空)
EFDI:PWM异常检测中断使能位
0:关闭PWM异常检测中断(FDIF依然会被硬件置位)
1:使能PWM异常检测中断
FDCMP:设定PWM异常检测源为比较器的输出
0:比较器与PWM无关
1:当比较器的输出由低变高时,触发PWM异常
FDIO:设定PWM异常检测源为端口P2.4的状态
0:P2.4的状态与PWM无关
1:当P2.4的电平由低变高时,触发PWM异常
FDIF:PWM异常检测中断标志位
当发生PWM异常(比较器的输出由低变高或者P2.4的电平由低变高)时,硬件自动将此位置1。当EFDI==1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。


PWM计数器的高字节PWMCH(高7位)

地址:FFF0H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWMCH[14:8]

  
PWM计数器的低字节PWMCL(低8位)

地址:FFF1H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWMCL[7:0]

  
PWM计数器位一个15位的寄存器,可设定1~32767之间的任意值作为PWM的周期。PWM波形发生器内部的计数器从0开始计数,每个PWM时钟周期递增1,当内部计数器的计数值达到[PWMCH,PWMCL]所设定的PWM周期时,PWM波形发生器内部的计数器将会从0重新开始开始计数,硬件会自动将PWM归零中断中断标志位CBIF置1,若ECBI==1,程序将跳转到相应中断入口执行中断服务程序。


PWM时钟选择寄存器PWMCKS

地址:FFF2H(XSFR)
初始值:xxx0,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

SELT2

  
  

PS[3:0]

  
SELT2:PWM时钟源选择
0:PWM时钟源为系统时钟经分频器分频之后的时钟
1:PWM时钟源为定时器2的溢出脉冲
PS[3:0]:系统时钟预分频参数。当SELT2==0时,PWM时钟为系统时钟/(PS[3:0]+1)


PWM2的第一次翻转计数器的高字节PWM2T1H

地址:FF00H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM2T1H[14:8]

  
PWM2的第一次翻转计数器的低字节PWM2T1L

地址:FF01H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM2T1L[7:0]

  
PWM2的第二次翻转计时器的高字节PWM2T2H

地址:FF02H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM2T2H[14:8]

  
PWM2的第二次翻转计时器的低字节PWM2T2L

地址:FF03H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM2T2L[7:0]

  
PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。


PWM2的控制寄存器PWM2CR

地址:FF04H(XSFR)
初始值:xxxx,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM2_PS

  
  

EPWM2I

  
  

EC2T2SI

  
  

EC2T1SI

  
PWM2_PS:PWM2输出管脚选择位
0:PWM2的输出管脚为PWM2:P3.7
1:PWM2的输出管脚为PWM2_2:P2.7
EPWM2I:PWM2中断使能控制位
0:关闭PWM2中断
1:使能PWM2中断,当C2IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
EC2T2SI:PWM2的T2匹配发生波形翻转时的中断控制位
0:关闭T2翻转时中断
1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C2IF置1,此时若EPWM2I==1,则程序将跳转到相应中断入口执行中断服务程序。
EC2T1SI:PWM2的T1匹配发生波形翻转时的中断控制位
0:关闭T1翻转时中断
1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C2IF置1,此时若EPWM2I==1,则程序将跳转到相应中断入口执行中断服务程序。


PWM3的第一次翻转计数器的高字节PWM3T1H

地址:FF10H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM3T1H[14:8]

  
PWM3的第一次翻转计数器的低字节PWM3T1L

地址:FF11H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM3T1L[7:0]

  
PWM3的第二次翻转计时器的高字节PWM3T2H

地址:FF12H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM3T2H[14:8]

  
PWM3的第二次翻转计时器的低字节PWM3T2L

地址:FF13H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM3T2L[7:0]

  
PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。


PWM3的控制寄存器PWM3CR

地址:FF14H(XSFR)
初始值:xxxx,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM3_PS

  
  

EPWM3I

  
  

EC3T2SI

  
  

EC3T1SI

  
PWM3_PS:PWM3输出管脚选择位
0:PWM3的输出管脚为PWM3:P2.1
1:PWM3的输出管脚为PWM3_2:P4.5
EPWM3I:PWM3中断使能控制位
0:关闭PWM3中断
1:使能PWM3中断,当C3IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
EC3T2SI:PWM3的T2匹配发生波形翻转时的中断控制位
0:关闭T2翻转时中断
1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C3IF置1,此时若EPWM3I==1,则程序将跳转到相应中断入口执行中断服务程序。
EC3T1SI:PWM3的T1匹配发生波形翻转时的中断控制位
0:关闭T1翻转时中断
1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C3IF置1,此时若EPWM3I==1,则程序将跳转到相应中断入口执行中断服务程序。


PWM4的第一次翻转计数器的高字节PWM4T1H

地址:FF20H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM4T1H[14:8]

  
PWM4的第一次翻转计数器的低字节PWM4T1L

地址:FF21H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM4T1L[7:0]

  
PWM4的第二次翻转计时器的高字节PWM4T2H

地址:FF22H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM4T2H[14:8]

  
PWM4的第二次翻转计时器的低字节PWM4T2L

地址:FF23H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM4T2L[7:0]

  
PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。


PWM4的控制寄存器PWM4CR

地址:FF24H(XSFR)
初始值:xxxx,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM4_PS

  
  

EPWM4I

  
  

EC4T2SI

  
  

EC4T1SI

  
PWM4_PS:PWM4输出管脚选择位
0:PWM4的输出管脚为PWM4:P2.2
1:PWM4的输出管脚为PWM4_2:P4.4
EPWM4I:PWM4中断使能控制位
0:关闭PWM4中断
1:使能PWM4中断,当C4IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
EC4T2SI:PWM4的T2匹配发生波形翻转时的中断控制位
0:关闭T2翻转时中断
1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C4IF置1,此时若EPWM4I==1,则程序将跳转到相应中断入口执行中断服务程序。
EC4T1SI:PWM4的T1匹配发生波形翻转时的中断控制位
0:关闭T1翻转时中断
1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C4IF置1,此时若EPWM4I==1,则程序将跳转到相应中断入口执行中断服务程序。


PWM5的第一次翻转计数器的高字节PWM5T1H

地址:FF30H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM5T1H[14:8]

  
PWM5的第一次翻转计数器的低字节PWM5T1L

地址:FF31H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM5T1L[7:0]

  
PWM5的第二次翻转计时器的高字节PWM5T2H

地址:FF32H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM5T2H[14:8]

  
PWM5的第二次翻转计时器的低字节PWM5T2L

地址:FF33H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM5T2L[7:0]

  
PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。


PWM5的控制寄存器PWM5CR

地址:FF34H(XSFR)
初始值:xxxx,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM5_PS

  
  

EPWM5I

  
  

EC5T2SI

  
  

EC5T1SI

  
PWM5_PS:PWM5输出管脚选择位
0:PWM5的输出管脚为PWM5:P2.3
1:PWM5的输出管脚为PWM5_2:P4.2
EPWM5I:PWM5中断使能控制位
0:关闭PWM5中断
1:使能PWM5中断,当C5IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
EC5T2SI:PWM5的T2匹配发生波形翻转时的中断控制位
0:关闭T2翻转时中断
1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C5IF置1,此时若EPWM5I==1,则程序将跳转到相应中断入口执行中断服务程序。
EC5T1SI:PWM5的T1匹配发生波形翻转时的中断控制位
0:关闭T1翻转时中断
1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C5IF置1,此时若EPWM5I==1,则程序将跳转到相应中断入口执行中断服务程序。


PWM6的第一次翻转计数器的高字节PWM6T1H

地址:FF40H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM6T1H[14:8]

  
PWM6的第一次翻转计数器的低字节PWM6T1L

地址:FF41H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM6T1L[7:0]

  
PWM6的第二次翻转计时器的高字节PWM6T2H

地址:FF42H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM6T2H[14:8]

  
PWM6的第二次翻转计时器的低字节PWM6T2L

地址:FF43H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM6T2L[7:0]

  
PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。


PWM6的控制寄存器PWM6CR

地址:FF44H(XSFR)
初始值:xxxx,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM6_PS

  
  

EPWM6I

  
  

EC6T2SI

  
  

EC6T1SI

  
PWM6_PS:PWM6输出管脚选择位
0:PWM6的输出管脚为PWM6:P1.6
1:PWM6的输出管脚为PWM6_2:P0.7
EPWM6I:PWM6中断使能控制位
0:关闭PWM6中断
1:使能PWM6中断,当C6IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
EC6T2SI:PWM6的T2匹配发生波形翻转时的中断控制位
0:关闭T2翻转时中断
1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C6IF置1,此时若EPWM6I==1,则程序将跳转到相应中断入口执行中断服务程序。
EC6T1SI:PWM6的T1匹配发生波形翻转时的中断控制位
0:关闭T1翻转时中断
1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C6IF置1,此时若EPWM6I==1,则程序将跳转到相应中断入口执行中断服务程序。


PWM7的第一次翻转计数器的高字节PWM7T1H

地址:FF50H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM7T1H[14:8]

  
PWM7的第一次翻转计数器的低字节PWM7T1L

地址:FF51H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM7T1L[7:0]

  
PWM7的第二次翻转计时器的高字节PWM7T2H

地址:FF52H(XSFR)
初始值:x000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

PWM7T2H[14:8]

  
PWM7的第二次翻转计时器的低字节PWM7T2L

地址:FF53H(XSFR)
初始值:0000,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

PWM7T2L[7:0]

  
PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。


PWM7的控制寄存器PWM7CR

地址:FF54H(XSFR)
初始值:xxxx,0000B

  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM7_PS

  
  

EPWM7I

  
  

EC7T2SI

  
  

EC7T1SI

  
PWM7_PS:PWM7输出管脚选择位
0:PWM7的输出管脚为PWM7:P1.7
1:PWM7的输出管脚为PWM7_2:P0.6
EPWM7I:PWM7中断使能控制位
0:关闭PWM7中断
1:使能PWM7中断,当C7IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。
EC7T2SI:PWM7的T2匹配发生波形翻转时的中断控制位
0:关闭T2翻转时中断
1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C7IF置1,此时若EPWM7I==1,则程序将跳转到相应中断入口执行中断服务程序。
EC7T1SI:PWM7的T1匹配发生波形翻转时的中断控制位
0:关闭T1翻转时中断
1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C7IF置1,此时若EPWM7I==1,则程序将跳转到相应中断入口执行中断服务程序。


PWM波形发生器中断控制

PWM波形发生器中断相关的寄存器

  

IP2

  
  

中断优先级控制

  
  

B5H

  
  

-

  
  

-

  
  

-

  
  

PX4

  
  

PPWMFD

  
  

PPWM

  
  

PSPI

  
  

PS2

  
  

xxx0,0000

  
  

PWMCR

  
  

PWM控制

  
  

F5H

  
  

ENPWM

  
  

ECBI

  
  

ENC7O

  
  

ENC6O

  
  

ENC5O

  
  

ENC4O

  
  

ENC3O

  
  

ENC2O

  
  

0000,0000

  
  

PWMIF

  
  

PWM中断标志

  
  

F6H

  
  

-

  
  

CBIF

  
  

C7IF

  
  

C6IF

  
  

C5IF

  
  

C4IF

  
  

C3IF

  
  

C2IF

  
  

x000,0000

  
  

PWMFDCR

  
  

PWM外部异常控制

  
  

F7H

  
  

-

  
  

-

  
  

ENFD

  
  

FLTFLIO

  
  

EFDI

  
  

FDCMP

  
  

FDIO

  
  

FDIF

  
  

xx00,0000

  
  

PWM2CR

  
  

PWM2控制

  
  

FF04H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM2_PS

  
  

EPWM2I

  
  

EC2T2SI

  
  

EC2T1SI

  
  

xxxx,0000

  
  

PWM3CR

  
  

PWM3控制

  
  

FF14H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM3_PS

  
  

EPWM3I

  
  

EC3T2SI

  
  

EC3T1SI

  
  

xxxx,0000

  
  

PWM4CR

  
  

PWM4控制

  
  

FF24H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM4_PS

  
  

EPWM4I

  
  

EC4T2SI

  
  

EC4T1SI

  
  

xxxx,0000

  
  

PWM5CR

  
  

PWM5控制

  
  

FF34H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM5_PS

  
  

EPWM5I

  
  

EC5T2SI

  
  

EC5T1SI

  
  

xxxx,0000

  
  

PWM6CR

  
  

PWM6控制

  
  

FF44H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM6_PS

  
  

EPWM6I

  
  

EC6T2SI

  
  

EC6T1SI

  
  

xxxx,0000

  
  

PWM7CR

  
  

PWM7控制

  
  

FF54H

  
  

-

  
  

-

  
  

-

  
  

-

  
  

PWM7_PS

  
  

EPWM7I

  
  

EC7T2SI

  
  

EC7T1SI

  
  

xxxx,0000

  



中断向量地址及中断控制


  

中断名称

  
  

入口地址

  
  

优先级设置

  
  

中断请求位

  
  

中断允许控制

  
  

中断标志清除方式

  
  

PWM中断

  
  

00B3H

  

(22)

  
  

PPWM

  
  

CBIF

  
  

ENPWM/ECBI/EA

  
  

需软件清除

  
  

C2IF

  
  

ENPWM/  EPWM2I/ EC2T2SI|| EC2T1SI/EA

  
  

需软件清除

  
  

C3IF

  
  

ENPWM/  EPWM3I/ EC3T2SI|| EC3T1SI/EA

  
  

需软件清除

  
  

C4IF

  
  

ENPWM/  EPWM4I/ EC4T2SI|| EC4T1SI/EA

  
  

需软件清除

  
  

C5IF

  
  

ENPWM/  EPWM5I/ EC5T2SI|| EC5T1SI/EA

  
  

需软件清除

  
  

C6IF

  
  

ENPWM/  EPWM6I/ EC6T2SI|| EC6T1SI/EA

  
  

需软件清除

  
  

C7IF

  
  

ENPWM/  EPWM7I/ EC7T2SI|| EC7T1SI/EA

  
  

需软件清除

  
  

PWM异常检测中断

  
  

00BBH

  

(23)

  
  

PPWMFD

  
  

FDIF

  
  

ENPWM/ENFD/EFDI/EA

  
  

需软件清除

  


在Keil C中声明中断函数
void PWM_Routine(void) interrupt 22;
void PWMFD_Routine(void) interrupt 23;


PWM波形发生器的结构框图




汇编示例代码1

假如要生成一个重复的PWM波形,波形如下:
PWM波形发生器的时钟频率为系统时钟/4,波形由通道4输出,周期为20个PWM时钟,占空比为1/3,由4个PWM时钟的相位延迟(波形如下图所示)


汇编代码可以如下设计:



;; +-------------------------+

;; | Global Configuration
|


;; +-------------------------+




; Set EAXSFR to enable xSFRwriting against XRAM writing



mov
A, P_SW2




orl
A, #10000000B



mov
P_SW2, A



;





; Set channel-4 outputregister start at LOW



mov
A, PWMCFG



anl
A, #11111011B
; channel-4 start at LOW


mov
PWMCFG, A



;




; Set a clock of thewaveform generator consists of 4 Fosc



mov
DPTR, #PWMCKS
; FFF2H


mov
A, #00000011B



movx
@DPTR, A




;



; Set period as 20


; {PWMCH,PWMCL} <= 19



mov
DPTR, #PWMCH
; FFF0H


mov
A, #00H
; PWMCH should be changed first


movx
@DPTR, A



mov
DPTR, #PWMCL
; FFF1H



mov
A, #13H
; Write PWMCL simultaneous update PWMCH


movx
@DPTR, A



;




;; +-------------------------+

;; | Channel-4 Configuration |

;; +-------------------------+




; Set toggle point 1 ofChannel-4 as 3



mov
DPTR, #PWM4T1H
; FF20H


mov
A, #00H



movx
@DPTR, A



;



mov
DPTR, #PWM4T1L
; FF21H


mov
A, #03H



movx
@DPTR, A



;




; Set toggle point 2 of Channel-4 as 16


mov
DPTR, #PWM4T2H
; FF22H


mov
A, #00H



movx
@DPTR, A



;



mov
DPTR, #PWM4T2L
; FF23H


mov
A, #10H



movx
@DPTR, A



;





; Set Channel-4 output pinas default, and disable interrupting



mov
DPTR, #PWM4CR
; FF24H


mov
A, #00H



movx
@DPTR, A



;





; Clear EAXSFR to disablexSFR, return movx-DPTR to normal XRAM access



mov
A, P_SW2



anl
A, #01111111B



mov
P_SW2, A



;




;; +-------------------------+

;; | Operate PWM output
|


;; +-------------------------+


; Enable counter counting,and enable Channel-4 output



mov
A, PWMCR



orl
A, #10000100B



mov
PWMCR, A


;



汇编示例代码2

假如要生成两个互补对称输出的PWM波形,波形如下:
PWM波形发生器的时钟频率为系统时钟/4,波形由信道4和信道5输出,,周期为20个PWM时钟,通道4的有效高电平为13个PWM时钟,通道5的有效低电平为10个PWM时钟,信道4和信道5前端死区为2个PWM时钟,末端死区为1个PWM时钟(波形如下图所示)


汇编代码可以如下设计:

;; +-------------------------+

;; | Global Configuration
|


;; +-------------------------+




;;;



;;; Set EAXSFR to enablexSFR writing against XRAM writing



;;;



mov
A, P_SW2



orl
A, #10000000B



mov
P_SW2, A



;





; Set channel-4 outputregister start at LOW, channel-5 at HIGH



mov
A, PWMCFG



anl
A, #11111011B
; channel-4 start at LOW


orl
A, #00001000B
; channel-5 start at HIGH


mov
PWMCFG, A



;





; Set a clock of thewaveform generator consists of 4 Fosc



mov
DPTR, #PWMCKS
; FFF2H


mov
A, #00000011B



movx
@DPTR, A



;





; Set period as 20



; {PWMCH,PWMCL} <= 19



mov
DPTR, #PWMCH
; FFF0H


mov
A, #00H
; PWMCH should be changed first


movx
@DPTR, A



mov
DPTR, #PWMCL
; FFF1H


mov
A, #13H
; Write PWMCL simultaneous update PWMCH


movx
@DPTR, A



;




;; +-------------------------+

;; | Channel-4 Configuration |

;; +-------------------------+




; Set toggle point 1 ofChannel-4 as 3



mov
DPTR, #PWM4T1H

;FF20H


mov
A, #00H



movx
@DPTR, A



;



mov
DPTR, #PWM4T1L
; FF21H


mov
A, #03H



movx
@DPTR, A



;



; Set toggle point 2 ofChannel-4 as 16



mov
DPTR, #PWM4T2H

;FF22H


mov
A, #00H



movx
@DPTR, A



;



mov
DPTR, #PWM4T2L
; FF23H


mov
A, #10H



movx
@DPTR, A



;





; Set Channel-4 output pinas default, and disable interrupting



mov
DPTR, #PWM4CR
; FF24H


mov
A, #00H



movx
@DPTR, A



;




;; +-------------------------+

;; | Channel-5 Configuration |

;; +-------------------------+




; Set toggle point 1 ofChannel-5 as 5



mov
DPTR, #PWM5T1H
; FF30H


mov
A, #00H



movx
@DPTR, A



;



mov
DPTR, #PWM5T1L
; FF31H


mov
A, #03H



movx
@DPTR, A



;



; Set toggle point 3 of Channel-5as 15



mov
DPTR, #PWM5T2H
; FF32H


mov
A, #00H



movx
@DPTR, A



;



mov
DPTR, #PWM5T2L
; FF33H


mov
A, #0FH



movx
@DPTR, A



;





; Set Channel-5 output pinas default, and disable interrupting



mov
DPTR, #PWM5CR
; FF34H


mov
A, #00H



movx
@DPTR, A



;




;;; Clear EAXSFR to disable xSFR, return movx-DPTR to normal XRAM access


mov
A, P_SW2



anl
A, #01111111B



mov
P_SW2, A



;




;; +-------------------------+

;; | Operate PWM output
|


;; +-------------------------+


; Enable counter counting,and enable Channel-4 and Channel-5 output



mov
A, PWMCR



orl
A, #10001100B



mov
PWMCR, A



;




两通道CCP/PCA/增强PWM相关SFR

  

符号

  
  

描述

  
  

地址

  
  

位地址及符号

  
  

初始值

  
  

B7

  
  

B6

  
  

B5

  
  

B4

  
  

B3

  
  

B2

  
  

B1

  
  

B0

  
  

CCON

  
  


  
  

D8H

  
  

CF

  
  

CR

  
  

-

  
  

-

  
  

-

  
  

-

  
  

CCF1

  
  

CCF0

  
  

00xx,xx00

  
  

CMOD

  
  


  
  

D9H

  
  

CIDL

  
  

-

  
  

-

  
  

-

  
  

CPS2

  
  

CPS1

  
  

CPS0

  
  

ECF

  
  

0xxx,0000

  
  

CCAPM0

  
  


  
  

DAH

  
  

-

  
  

ECOM0

  
  

CCAPP0

  
  

CCAPN0

  
  

MAT0

  
  

TOG0

  
  

PWM0

  
  

ECCF0

  
  

x000,0000

  
  

CCAPM1

  
  


  
  

DBH

  
  

-

  
  

ECOM1

  
  

CCAPP1

  
  

CCAPN1

  
  

MAT1

  
  

TOG1

  
  

PWM1

  
  

ECCF1

  
  

x000,0000

  
  

CL

  
  


  
  

E9H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

CH

  
  


  
  

F9H

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

CCAP0L

  
  


  
  

EAH

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

CCAP0H

  
  


  
  

FAH

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

CCAP1L

  
  


  
  

EBH

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

CCAP1H

  
  


  
  

FBH

  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  


  
  

0000,0000

  
  

PCA_PWM0

  
  


  
  

F2H

  
  

EBS0_1

  
  

EBS0_0

  
  

PWM0_B9H

  
  

PWM0_B8H

  
  

PWM0_B9L

  
  

PWM0_B8L

  
  

EPC0H

  
  

EPC0L

  
  

0000,0000

  
  

PCA_PWM1

  
  


  
  

F3H

  
  

EBS1_1

  
  

EBS1_0

  
  

PWM1_B9H

  
  

PWM1_B8H

  
  

PWM1_B9L

  
  

PWM1_B8L

  
  

EPC1H

  
  

EPC1L

  
  

0000,0000

  

STC15W4K32S4的两路CCP与STC12F2K60S2的CCP完全兼容,并在STC12F2K60S2的CCP的基础上对PWM的功能进行增强,不仅可将STC15W4K32S4的CCP设置为6/7/8位PWM,还可设置为10位PWM。10位PWM的低字节仍用CCAP0L/CCAP1L设置(CCAP0H/CCAP1H为重装值),10位PWM的高两位使用[PWM0_B9L,PWM0_B8L]/[PWM1_B9L,PWM1_B8L]进行设置([PWM0_B9H,PWM0_B8H]/ [PWM1_B9H,PWM1_B8H] 为重装值)。
[EBS0_1,EBS0_0]:
00:PWM0为8位PWM模式
01:PWM0为7位PWM模式
10:PWM0为6位PWM模式
11:PWM0为10位PWM模式
[EBS1_1,EBS1_0]:
00:PWM1为8位PWM模式
01:PWM1为7位PWM模式
10:PWM1为6位PWM模式
11:PWM1为10位PWM模式


10位PWM的比较值由{PWMn_B9L,PWMn_B8L,CCAPnL[7:0]}组成,10重装值由{PWMn_B9H,PWMn_B8H,CCAPnH[7:0]}组成

注意:在更新重装值时,必须先写高两位PWMn_B9H,PWMn_B8H,后写低八位CCAPnH
返回列表