目录

  • 专栏
  • PWM基本概念
    • 脉冲宽度调制器PWM工作原理
      • PWM控制技术·引言
      • PWM控制的基本思想
        • 重要理论基础——面积等效原理
        • 等幅PWM波
        • 不等幅PWM波
        • PWM逆变电路及其控制方法
  • MSP432的PWM实现模式
    • MSP432中的PWM
    • 增计数模式
    • 连续计数模式
    • 增减计数模式
  • PWM编程实例
  • 资料

专栏

基于MSP432的嵌入式系统实践

PWM基本概念

脉冲宽度调制器PWM工作原理

PWM产生一个在高电平和低电平之间重复交替的输出信号,这个信号被称为PWM信号,也叫脉宽调制波。通过制定所需的时钟周期和占空比来控制高电平和低电平的持续时间。

PWM控制技术·引言

  • PWM(Pulse Width Modulation)控制就是脉宽调制技术:即通过对一系列脉冲的宽度进行调制,来等效的获得所需要波形(含形状和幅值)。
  • PWM控制的思想源于通信技术,全控型器件的发展使得实现PWM控制变得十分容易。
  • PWM技术的应用十分广泛,它使电力电子装置的性能大大提高,因此它在电力电子技术的发展史上占有十分重要的地位。
  • PWM控制技术正是有依赖于在逆变电路中的成功应用,才确定了它在电力电子技术中的重要地位。现在使用的各种逆变电路都采用了PWM技术。

PWM控制的基本思想

重要理论基础——面积等效原理

​ 冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。

​ 冲量 -> 窄脉冲的面积

​ 效果基本相同 -> 环节的输出响应波形基本相同

​ 如何用一系列等幅不等宽的脉冲来代替一个正弦半波

​ 对于正弦波的负半周,采取同样的方法,得到PWM波形,因此正弦波一个完整周期的等效PWM波为:

根据面积等效原理,正弦波还可以等效为下图中的PWM波,而且这种方式在实际应用中更为广泛。

等幅PWM波

输入电源是恒定直流

  • 直流斩波电路
  • PWM逆变电路
  • PWM整流电路

不等幅PWM波

输入电源是交流或不是恒定的直流

  • 斩控式交流调压电路
  • 矩阵式变频电路

PWM逆变电路及其控制方法

  • 目前中小功率的逆变电路几乎都采用PWM计数。
  • 逆变电路是PWM控制技术最为重要的应用场合。
  • PWM逆变电路也可分为电压型和电流型两种,目前实用的PWM逆变电路几乎都是电压型电路。

MSP432的PWM实现模式

MSP432中的PWM

  • 在MSP432中,PWM可以由TimerA产生。
  • 在TimerA的每个捕获/比较区块都包含一个输出单元,该输出单元可以用于产生输出信号,比如PWM信号。

7种模式

增计数模式

连续计数模式

增减计数模式

PWM编程实例

在CCS中导入所安装的SDK的目录下C:\ti\simplelink_msp432p4_sdk_3_40_01_02\examples\nortos\MSP_EXP432P401R\driverlib\timer_a_pwm_mode\ccs 的工程文件

导入后打开timer_a_pwm_mode.c文件:

/* DriverLib Includes */
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>/* Standard Includes */
#include <stdint.h>
#include <stdbool.h>//![Simple Timer_A Config]
/* Timer_A PWM Configuration Parameter */
Timer_A_PWMConfig pwmConfig =
{TIMER_A_CLOCKSOURCE_SMCLK,TIMER_A_CLOCKSOURCE_DIVIDER_1,32000,TIMER_A_CAPTURECOMPARE_REGISTER_1,TIMER_A_OUTPUTMODE_RESET_SET,3200
};
//![Simple Timer_A Config]int main(void)
{/* Halting the watchdog */MAP_WDT_A_holdTimer();//![Simple Timer_A Example]/* Setting MCLK to REFO at 128Khz for LF mode* Setting SMCLK to 64Khz */MAP_CS_setReferenceOscillatorFrequency(CS_REFO_128KHZ);MAP_CS_initClockSignal(CS_MCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1);MAP_CS_initClockSignal(CS_SMCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_2);MAP_PCM_setPowerState(PCM_AM_LF_VCORE0);/* Configuring GPIO2.4 as peripheral output for PWM  and P6.7 for button* interrupt */MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN4, GPIO_PRIMARY_MODULE_FUNCTION);MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1);MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1);/* Configuring Timer_A to have a period of approximately 500ms and* an initial duty cycle of 10% of that (3200 ticks)  */MAP_Timer_A_generatePWM(TIMER_A0_BASE, &pwmConfig);//![Simple Timer_A Example]/* Enabling interrupts and starting the watchdog timer */MAP_Interrupt_enableInterrupt(INT_PORT1);MAP_Interrupt_enableSleepOnIsrExit();MAP_Interrupt_enableMaster();/* Sleeping when not in use */while (1){MAP_PCM_gotoLPM0();}
}/* Port1 ISR - This ISR will progressively step up the duty cycle of the PWM* on a button press*/
void PORT1_IRQHandler(void)
{uint32_t status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1);MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status);if (status & GPIO_PIN1){if(pwmConfig.dutyCycle == 28800)pwmConfig.dutyCycle = 3200;elsepwmConfig.dutyCycle += 3200;MAP_Timer_A_generatePWM(TIMER_A0_BASE, &pwmConfig);}
}
#endif

资料

MSP432P401R官方手册

MSP432的PWM功能实现相关推荐

  1. 基于AVR单片机PWM功能的数控恒流源研制

    随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对电源的要求也越来越高.现今,电源设备有朝着数字化方向发展的趋势.然而绝大多数数控电源设计是通过高位数的A/D和D/A芯片来实现的 ...

  2. 使用STM8S003定时器的PWM功能输出PWM波

    一.使用定时器TIM2的CH1.CH2.CH3通道PWM输出 1. 在使用stm8s系列的单片机的时候,使用的头文件大部分都是通用的stm8s.,第一步修改头文件: /* Uncomment the ...

  3. 博图程序需要手动同步_西门子博途S7-1200 PWM 功能组态及编程方法

    本文档以DC/DC/DC类型的S7-1200 CPU为例进行说明.在Portal 软件中插入S7-1200 CPU(DC输出类型),在"设备视图"中配置PWM. 1. 进入CPU& ...

  4. 【CH559L单片机】PWM功能和示例介绍

    [CH559L单片机]PWM功能和示例介绍 ✨在官方CH559单片机手册中,在定时器(Timer)这一章节介绍PWM.

  5. apm32f103c8t6 通过定时器1的PWM功能输出频率3mhz占空比50%的方波

    利用apm32f103c8t6 定时器1的PWM功能输出频率3mhz占空比50%的方波,实际效果却达不到,频率大概3mhz左右,占空比在54%左右,或者占空比50%左右,频率就3.2mhz左右了,总有 ...

  6. STM8学习笔记---利用PWM功能输出SPWM波

    要生成SPWM波,其关键是要生成一组正弦规律变化的数字,然后将数字对应成PWM输出的占空比,按照顺序输出占空比就行.生成正弦波的方法在 使用C语言产生正弦波数据 这篇博客有详细说明,这里就不说了. 本 ...

  7. 【瑞萨RA_FSP】GPT—— PWM功能详解

    文章目录 一.GPT比较匹配功能详解 1. 锯齿波PWM模式(普通PWM模式) 2. 三角波PWM模式1(波谷32位传输) 3. 三角波PWM模式2(波峰和波谷32位传输) 4. 三角波PWM模式3( ...

  8. ST17H26之pwm功能

    1.设置io口为pwm工作模式: #define GPIO10_FUNC AS_PWM #define GPIO10_OUTPUT_ENABLE 0 #define PULL_WAKEUP_SRC_G ...

  9. STM32F407-高级定时器输出指定个数PWM功能

    高级定时器输出指定个数PWM只需要设置好重复计数器寄存器RCR的值并打开更新中断即可. 一般情况下的更新中断是在CNT计数到ARR的时候产生,而在设置了RCR后,更新中断将会延迟,比如设置RCR的值为 ...

最新文章

  1. Mysql DBA 高级运维学习之路-mysql数据库入门知识
  2. ironbot智能编程机器人_视频 | 多模式编程机器人,“程序猿”培养从小抓起
  3. pip安装时报错:以一种访问权限不允许的方式做了一个访问套接字的尝试
  4. IDEA中pom.xml中导入spring-boot-starter-thymeleaf报错的解决方案
  5. 闷热夏日这个空调太疯狂!
  6. 【实用】表维护视图SM30增加自定义按钮的实现
  7. 政策推动加速5G发展 全球统一标准成大势所趋
  8. 编程机器人哪家好?灵跃模组机器人硬核评测!
  9. 数组中只出现一次的数字(python解法)
  10. 小学计算机专业说课稿模板,小学信息技术说课稿模板汇总八篇
  11. ligerUI的dialog
  12. 机器学习之logistic 回归
  13. average函数python_在Python3 numpy中mean和average的区别详解
  14. 中职计算机图形图像课程标准,计算机图形与图形图像处理技术的相互结合
  15. 手动解除fail2ban的ip
  16. VVC帧内预测(一)
  17. 算法与数据结构07:前缀树,计数排序与桶排序
  18. python span标签的text属性_如何使用python selenium单击span元素
  19. Chrome的Performance面板
  20. php把unicode转化成中文实用方法

热门文章

  1. hexo自用黑色主题
  2. Hexo分类及标签显示
  3. 【Leetcode】213. 打家劫舍II(House Robber II)
  4. java不定义数组长度_在JAVA中定义数组时,可不可以一开始不设定数组的长度?...
  5. mysql反弹shell_mysql mof+metasploit反弹shell
  6. 【学习笔记】| Java多线程基础
  7. 用aceEditor和new Function制作简单的echarts编辑器
  8. 蓝海与红海--有感于软件创新
  9. javaWeb-Eclipse中如何安装Tomcat插件(三只小猫)
  10. uniapp nvue map组件