STC15W4K32S4PWM811.docx

上传人:b****2 文档编号:3541013 上传时间:2023-05-06 格式:DOCX 页数:43 大小:286.92KB
下载 相关 举报
STC15W4K32S4PWM811.docx_第1页
第1页 / 共43页
STC15W4K32S4PWM811.docx_第2页
第2页 / 共43页
STC15W4K32S4PWM811.docx_第3页
第3页 / 共43页
STC15W4K32S4PWM811.docx_第4页
第4页 / 共43页
STC15W4K32S4PWM811.docx_第5页
第5页 / 共43页
STC15W4K32S4PWM811.docx_第6页
第6页 / 共43页
STC15W4K32S4PWM811.docx_第7页
第7页 / 共43页
STC15W4K32S4PWM811.docx_第8页
第8页 / 共43页
STC15W4K32S4PWM811.docx_第9页
第9页 / 共43页
STC15W4K32S4PWM811.docx_第10页
第10页 / 共43页
STC15W4K32S4PWM811.docx_第11页
第11页 / 共43页
STC15W4K32S4PWM811.docx_第12页
第12页 / 共43页
STC15W4K32S4PWM811.docx_第13页
第13页 / 共43页
STC15W4K32S4PWM811.docx_第14页
第14页 / 共43页
STC15W4K32S4PWM811.docx_第15页
第15页 / 共43页
STC15W4K32S4PWM811.docx_第16页
第16页 / 共43页
STC15W4K32S4PWM811.docx_第17页
第17页 / 共43页
STC15W4K32S4PWM811.docx_第18页
第18页 / 共43页
STC15W4K32S4PWM811.docx_第19页
第19页 / 共43页
STC15W4K32S4PWM811.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

STC15W4K32S4PWM811.docx

《STC15W4K32S4PWM811.docx》由会员分享,可在线阅读,更多相关《STC15W4K32S4PWM811.docx(43页珍藏版)》请在冰点文库上搜索。

STC15W4K32S4PWM811.docx

STC15W4K32S4PWM811

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输出端口定义如下:

[PWM2:

P3.7,PWM3:

P2.1,PWM4:

P2.2,PWM5:

P2.3,PWM6:

P1.6,PWM7:

P1.7]

每路PWM的输出端口都可使用特殊功能寄存器位CnPINSEL分别独立的切换到第二组

[PWM2_2:

P2.7,PWM3_2:

P4.5,PWM4_2:

P4.4,PWM5_2:

P4.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相关的端口,则需要将相应的端口设置为准双向口或强推挽输岀口例如将端口均设置为准双向口的汇编代码如下:

MOVP0M0,#00H

MOVP0M1,#00H

MOVP1M0,#00H

MOVP1M1,#00H

MOVP2M0,#00H

MOVP2M1,#00H

MOVP3M0,#00H

MOVP3M1,#00H

MOVP4M0,#00H

MOVP4M1,#00H

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

符号

描述

地址

位地址及符号

初始值

B7

B6

B5

B4

B3

B2

B1

B0

EAXS

0000,000

P_SW2

端口配置寄存器

BAH

FR

0

0

0

S4_S

S3_S

S2_S

0

PWMC

PWM配置

F1H

CBTA

C7IN

C6INI

C5INI

C4INI

C3INI

C2INI

0000,000

FG

DC

I

0

PWMC

PWM控制

F5H

ENPW

ECBI

ENC

ENC6O

ENC5O

ENC4

ENC3O

ENC2O

0000,000

R

M

7O

O

0

x000,000

PWMIF

PWM中断标志

F6H

-

CBIF

C7IF

C6IF

C5IF

C4IF

C3IF

C2IF

0

PWMF

PWM外部异常控

F7H

ENF

FLTFLI

EFDI

FDCM

FDIO

FDIF

xx00,000

DCR

D

O

P

0

PWMC

FFF0

x000,000

PWM计数器高位

-

PWMCH[14:

8]

H

H

0

PWMC

FFF1

0000,000

PWM计数器低位

PWMCL[7:

0]

L

H

0

PWMC

FFF2

xxx0,000

PWM时钟选择

-

-

-

SELT2

PS[3:

0]

KS

H

0

PWM2

PWM2T1计数高

FF00

x000,000

-

PWM2T1H[14:

8]

T1H

H

0

PWM2

PWM2T1计数低

FF01

0000,000

PWM2T1L[7:

0]

T1L

H

0

PWM2

PWM2T2计数高

FF02

x000,000

-

PWM2T2H[14:

8]

T2H

H

0

PWM2

PWM2T2计数低

FF03

0000,000

PWM2T2L[7:

0]

T2L

H

0

PWM2

PWM2控制

FF04

PWM2

EPW

EC2T2

EC2T1

xxxx,000

CR

H

_PS

M2I

SI

SI

0

PWM3

PWM3T1计数高

FF10

x000,000

-

PWM3T1H[14:

8]

T1H

H

0

PWM3

PWM3T1计数低

FF11

0000,000

PWM3T1L[7:

0]

T1L

H

0

PWM3

PWM3T2计数高

FF12

x000,000

-

PWM3T2H[14:

8]

T2H

H

0

PWM3

PWM3T2计数低

FF13

0000,000

PWM3T2L[7:

0]

T2L

H

0

PWM3

PWM3控制

FF14

PWM3

EPW

EC3T2

EC3T1

xxxx,000

CR

H

_PS

M3I

SI

SI

0

PWM4

PWM4T1计数高

FF20

x000,000

-

PWM4T1H[14:

8]

T1H

H

0

PWM4

PWM4T1计数低

FF21

0000,000

PWM4T1L[7:

0]

T1L

H

0

PWM4

PWM4T2计数高

FF22

x000,000

-

PWM4T2H[14:

8]

T2H

H

0

PWM4

PWM4T2计数低

FF23

0000,000

PWM4T2L[7:

0]

T2L

H

0

PWM4

PWM4控制

FF24

PWM4

EPW

EC4T2

EC4T1

xxxx,000

CR

H

_PS

M4I

SI

SI

0

PWM5

PWM5T1计数高

FF30

x000,000

-

PWM5T1H[14:

8]

T1H

H

0

PWM5

PWM5T1计数低

FF31

0000,000

PWM5T1L[7:

0]

T1L

H

0

PWM5

PWM5T2计数高

FF32

x000,000

-

PWM5T2H[14:

8]

T2H

H

0

PWM5

PWM5T2计数低

FF33

0000,000

PWM5T2L[7:

0]

T2L

H

0

PWM5

PWM5控制

FF34

PWM5

EPW

EC5T2

EC5T1

xxxx,000

CR

H

_PS

M5I

SI

SI

0

PWM6

PWM6T1计数高

FF40

x000,000

-

PWM6T1H[14:

8]

T1H

H

0

PWM6

PWM6T1计数低

FF41

0000,000

PWM6T1L[7:

0]

T1L

H

0

PWM6

PWM6T2计数高

FF42

x000,000

-

PWM6T2H[14:

8]

T2H

H

0

PWM6

PWM6T2计数低

FF43

0000,000

PWM6T2L[7:

0]

T2L

H

0

PWM6

PWM6控制

FF44

PWM6

EPW

EC6T2

EC6T1

xxxx,000

CR

H

_PS

M6I

SI

SI

0

PWM7

PWM7T1计数高

FF50

x000,000

-

PWM7T1H[14:

8]

T1H

H

0

PWM7

PWM7T1计数低

FF51

0000,000

PWM7T1L[7:

0]

T1L

H

0

PWM7

PWM7T2计数高

FF52

x000,000

-

PWM7T2H[14:

8]

T2H

H

0

PWM7

PWM7T2计数低

FF53

0000,000

PWM7T2L[7:

0]

T2L

H

0

PWM7

PWM7控制

FF54

PWM7

EPW

EC7T2

EC7T1

xxxx,000

CR

H

PS

M7I

SI

SI

0

端口配置寄存器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:

MOVXA,@DPTR/MOVX@DPTR,A指令的操作对象为扩展RAM(XRAM)

1:

MOVXA,@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

B7

B6

B5

B4

B3

B2

B1

B0

-

CBIF

C7IF

C6IF

C5IF

C4IF

C3IF

C2IF

地址:

F6H

初始值:

x000,0000B

CBIF:

PWM计数器归零中断标志位

1。

当ECBI==1时,程序会跳转到相应中断入口执

当PWM计数器归零时,硬件自动将此位置行中断服务程序。

需要软件清零。

CnIF:

第n通道的PWM中断标志位

可设置在翻转点1和翻转点2触发CnIF(详见ECnT1SI和ECnT2SI)。

当PWM发生翻转时,硬

件自动将此位置1。

当EPWMnl==1时,程序会跳转到相应中断入口执行中断服务程序。

需要

软件清零。

PWM外部异常控制寄存器PWMFDCR

地址:

F7H初始值:

xxOO,OOOOB

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)初始值:

xOOO,OOOOB

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

B7

B6

B5

B4

B3

B2

B1

B0

-

PWM2T1H[14:

8]

地址:

FFOOH(XSFR)

初始值:

xOOO,OOOOB

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

B7

B6

B5

B4

B3

B2

B1

B0

PWM2T1L[7:

0]

地址:

FF01H(XSFR)

初始值:

0000,0000B

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

B7

B6

B5

B4

B3

B2

B1

B0

-

PWM2T2H[14:

8]

地址:

FF02H(XSFR)

初始值:

x000,0000B

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

B7

B6

B5

B4

B3

B2

B1

B0

PWM2T2L[7:

0]

地址:

FF03H(XSFR)

初始值:

0000,0000B

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,则程序将跳转到相应中

断入口执行中断服务程序。

EC2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2