MC9S12XS128 PWM输出配置

发布时间:2024-08-22  

一、PWM资源介绍

1.1 MC9S12 PWM特性

  • 8个具有可编程周期和占空比的独立PWM通道

  • 4个时钟源

  • 每个PWM通道具有专用计数器

  • 每个通道可以选择有效电平极性

  • 每个PWM通道可以使能 / 禁止

  • 每个通道可选择输出波形的对齐方式

  • 分辨率:8位(8通道);16位(4通道)

1.2 PWM 8通道8位引脚

芯片引脚分布如下:

image-20211003101230537

二、PWM寄存器介绍

介绍寄存器前先看一下,PWM 的模块框图

image-20211003101417437

从框图可以看到 PWM 的配置主要分为:时钟选择、使能、极性、对齐、PWM 通道等多个方面进行控制,下面一次介绍各个寄存器

2.1 时钟选择寄存器

2.1.1 时钟源

PWM 有四种时钟源,时钟源如下:

  • Clock A (Ch 0, Ch 1, Ch 4, Ch 5)

  • Clock SA (Scaled A; Ch 0, Ch 1, Ch 4, Ch 5)

  • Clock B (Ch 2, Ch 3, Ch 6, Ch 7)

  • Clock SB (Scaled B; Ch 2, Ch 3, Ch 6, Ch 7)

时钟源的选择通过 PWMCLK 寄存器来控制,寄存器位如下:

image.png

寄存器各个位功能

寄存器位 功能
PCLK7、6、3、2 — PWM通道 7、6、3、2 时钟选择 1 = 选择Clock SB 为PWM通道 7、6、3、2 的时钟源。
0 = 选择Clock B 为PWM通道 7、6、3、2 的时钟源。
PCLK5、4、1、0 — PWM通道 5、4、1、0 时钟选择 1 = 选择Clock SA 为PWM通道 5、4、1、0 的时钟源。
0 = 选择Clock A 为PWM通道 5、4、1、0 的时钟源。

2.1.2 分频器

时钟频率不能直接作为 PWM 定时器的时钟频率的,一般要经过分频才能使用,总线时钟到定时器时钟经过的分频器如下:

image-20211003102351701

PWMPRCLK 寄存器用于独立选择时钟源A、B的预分频系数,寄存器结构如下:

image.png

分频值与寄存器位的关系表为:

PCKx2 PCKx1 PCKx0 Value of Clock x
0 0 0 Bus Clock
0 0 1 Bus Clock / 2
0 1 0 Bus Clock / 4
0 1 1 Bus Clock / 8
1 0 0 Bus Clock / 16
1 0 1 Bus Clock / 32
1 1 0 Bus Clock / 64
1 1 1 Bus Clock / 128

PWMSCLA 和 PWMSCLB对应的 A、B的定时器分频

PWMSCLA寄存器

image.png

PWMSCLB寄存器

image.png

定时器频率计算公式:

image-20211003102954674

当 PWM 全为 0 时,分频值为 255 ;其他给多少值,分频多少

2.2 定时器通道寄存器

控制 PWM 输出波形占空比的寄存器主要有三个,

image-20211003104100831

PWM Channel Counter Registers (PWMCNTx):定时计数器,按照设定的时钟频率自加,写0复位

image.png

该寄存器任何时刻可以读写,但向计数器中写入任何值会引起计数器复位到$00,且计数器方向被设置为向上计数

PWM Channel Period Registers (PWMPERx):周期寄存器,设定 PWM 的占空比周期,写255复位

image.png

PWM Channel Duty Registers (PWMDTYx):占空比寄存器,设定 PWM 的占空比,写255复位

image.png

2.3 PWM 极性选择寄存器

PWM Polarity Register (PWMPOL)

image.png

PPOLx——Pulse Width Channel x Polarity

  • 1 = PWM 通道x 周期起始时输出为高电平,当到达占空比寄存器设定值时变为低电平。

  • 0 = PWM 通道x 周期起始时输出为低电平,当到达占空比寄存器设定值时变为高电平。

image-20211003104625163

补充 PWMDTYx 、PWMPERx、PPOLx 三个寄存器在临界条件下,PWM 的输出情况

PWMDTYx PWMPERx PPOLx PWMx 输出
$00 > $00 1 低电平
$00 > $00 0 高电平
xx $00 1 高电平
xx $00 0 低电平
>= PWMPERx xx 1 高电平
>= PWMPERx xx 0 低电平

2.4 PWM 使能/禁止寄存器

PWM Enable Register (PWME)

image.png

Channel x Enable

  • 1 = PWM 通道x 使能。

  • 0 = PWM 通道x 禁止。

2.5 PWM 输出对齐寄存器

MC9S12 的 PWM 输出有两者对齐方式,左对齐和中央对齐

左对齐

image-20211003112826601

在左对齐模式中,8位计数器配置为向上累加计数器,它和占空比寄存器和周期寄存器两个寄存器比较。当PWM 计数器和占空比计数器中的值相等,输出翻转,PWM 计数器和周期寄存器的值匹配时复位计数器并同时从双缓冲器中载入周期和占空比计数器值。计数器从0计数,到周期寄存器-1结束

中央对齐

image-20211003113020808

这种模式下8位计数器作为一个向上&向下计数器,当计数器值为0时,向上计数。计数器和占空比寄存器及周期寄存器比较,当PWM 计数器和占空比寄存器值相匹配时,输出翻转,PWM 计数器和周期寄存器匹配改变计数器方向,从向上计数变为向下计数,当PWM计数器递减,和占空比计数器再次匹配时,输出再次改变。当PWM计数器递减到0,计数方向从向下计数变为向上计数,并从双缓冲器中载入周期寄存器和占空比寄存器值。计数器从0加到周期寄存器中的值并减回0,因此有效周期为PWMPERx*2

PWM Center Align Enable Register (PWMCAE)

image.png

CAEx — Center Aligned Output Mode on channel x

  • 1 = 通道x 以中央对齐输出方式工作。

  • 0 = 通道x 以左对齐输出方式工作。

2.6 PWM 级联寄存器

2个8位PWM 通道可以被连接成一个16位 PWM通道,如下图

image-20211003173929837

级联后的 PWM 通道数以及对应寄存器如下

CONxx PWMEx PPOLx PCLKx CAEx PWMx OUTPUT
CON67 PWME7 PPOL7 PCLK7 CAE7 PWM7
CON45 PWME5 PPOL5 PCLK5 CAE5 PWM5
CON23 PWME3 PPOL3 PCLK3 CAE3 PWM3
CON01 PWME1 PPOL1 PCLK1 CAE1 PWM1

PWM Control Register (PWMCTL) 级联控制寄存器

image.png

CONxy——Concatenate channels x and y

  • 1 = 通道x和y被连接成一个16位PWM通道。

  • 0 = 通道x和y为两个独立的8位PWM。

三、PWM配置实例

配置 PWM 一般按照下面6步骤配置()内是相关的寄存器

  • 禁止PWM (PWME)

  • 选择PWM时钟,预分频和分频 (PWMPRCLK, PWMSCLA, PWMSCLB, PWMCLK)

  • 选择极性(PWMPOL)

  • 选择对齐方式 (PWMCAE)

  • 编程占空比和周期 (PWMDTYx, PWMPERx)

  • 使能PWM (PWME)

初始化子程序示例

  void PWM_Init(void)

  {

        PWME = 0x00;         //禁止PWM模块

        PWMPRCLK = 0x06;        //CLOCKA的预分频设置为6

        PWMSCLA = 125; //SA的分频因子设置为125

        PWMCLK = 0x01; //通道0选择SA作为PWM时钟

        PWMPER0 = 200;     //通道0周期寄存器设置为200

        PWMDTY0 = 0; //通道0占空比寄存器设置

        PWMPOL = 0x01; //PWM输出先为高电平,之后变为低电平

        PWMCAE = 0x00; //左对齐输出

        PWMCTL = 0x00;         //不级联

        PWME = 0x01; //使能PWM通道0

  } 


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    怒赞!华硕100系主板宣布全面升级兼容Kaby Lake;Intel第七代酷睿Kaby Lake已经开始出货低电压的Y和U系列产品,这一代在工艺上升级为14nm+,仅制程带来的性能提升就达到12......
    华硕100系主板将全面支持Kaby Lake处理器;近日,华硕宣布旗下所有100系主板将全面支持新一代英特尔Kaby Lake处理器。只需经过简便的UEFI BIOS更新,华硕100系主板......
    厂商的保修售后如何。 今天所选的品牌都是大众主流零售品牌,一些专做代工或者OEM之类的这里就不提啦~ ●华硕主板:一年换新三年保修 部分型号保五年! 作为世界级的一线品牌,华硕主板的售后也是非常给力的,一些......
    通信设备、工作站、服务器。 华硕曾是全球最大电脑 OEM 和 ODM 制造商,是当前全球第一大主板生产商、全球第三大显卡生产商,同时也是全球领先的 3C 解决方案提供商之一,致力......
    华硕预告Intel新一代主板:CES 2025发布;在CES 2025展会上,Intel和AMD双方都会发布新一代主流主板。其中Intel的是B860、H810,LGA1851接口支持酷睿Ultra......
    ,补全了该有的功能,其中最让人印象深刻的莫过于华硕ROG 10周年的那块超级主板—— 华硕 ROG Rampage V Edition 10 X99 纪念版参考价:¥5599图片[6]点评 报价参数......
    Intel逼你升级!华硕Z270高端主板全曝光:好帅但爱不起;随着传言1月5日发布日的临近,Intel七代酷睿Kaby Lake和200系(H/B/Z)新主板即将与消费者见面。 此前,我们......
    将推动市场复苏,新的主板设计是主要驱动力。 预计华硕、技嘉和微星在接下来的季度将出货约200-300万主板,年出......
    芝奇DDR5内存与华硕Z690主板携手创下超频世界纪录DDR5-8704;11月4日,世界知名超频内存及高端电竞设备领导品牌,芝奇国际荣幸宣布再次突破内存超频世界纪录。本次芝奇与华硕ASUS ROG......
    四大品牌主板出货量暴跌千万张!华擎跌幅高达55%!; 【导读】2月13日消息,随着全球PC市场的持续下滑,全球四大主板制造商华硕、技嘉、微星和华擎的销量也随之大幅下滑。根据......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>