RT1052的EPWM

这篇具有很好参考价值的文章主要介绍了RT1052的EPWM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 EPWM介绍

RT1052 具有 4 个 eFlexPWM(eFlexWM1~eFlex_PWM4)。

  • 每个 eFlexPWM 可以产生四路互补 PWM即产生 8 个 PWM,也可以产生相互独立的 PWM 波。四路分别是模块0-3
  • 每个 eFlexPWM 具有各自的故障检电路,当故障发生时根据程序锁定 PWM 输出引脚的电平状态。

1.1 引脚

PWM_A 与 PWM_B 可以独立输出也可以作为互补对输出。

  • PWM_X 比较特殊,只有 eFlex PWM1 拥有 PWM_X 对应的外部输出引脚可直接输出 PWM。
  • eFlexPWM(eFlexWMM2~eFlex_PWM4) 只能通过 XBAR 映射到外部输出引脚才能输出 PWM。

1.2 时钟

RT1052的EPWM,NXP,fpga开发,单片机,嵌入式硬件 - FLEXPWM 子模块可选的时钟源有 IPBus clock、EXT_CLK。

  • FLEXPWM 子模块 0 还可以选择 AUX_CLK_input 作为时钟源。

1.3 比较寄存器

比较寄存器用于产生 PWM 波,每个 FLEXPWM 拥有 6 个比较寄存器
RT1052的EPWM,NXP,fpga开发,单片机,嵌入式硬件

  • 第一,只有eFlexPWM1拥有与PWMX直接对应的外部引脚,而其他FLEXPWM
    需要使用 XBAR 映射到相应的外部引脚才能输出 PWM。
  • 第二,比较寄存 0 和 1 可以输出 HalfComp 信号和 Mod Comp 信号,这两个信号可用作 eFlexPWM1 寄存器加载信号。
  • 比较寄存器 2 和 3 用于产生 PWM23
  • 比较寄存器 4 和 5 用于产生 PWM45
    • 根据寄存器配置不同,PWM23 和 PWM45 可以独立输出,也可以组成一对互补的 PWM 波

2 函数

CLOCK_SetDiv(kCLOCK_AhbDiv, 0x2); /* Set AHB PODF to 2, divide by 3 */
    CLOCK_SetDiv(kCLOCK_IpgDiv, 0x3); /* Set IPG PODF to 3, divede by 4 */

CLOCK_SetDiv

/* Set the PWM Fault inputs to a low value */
    XBARA_Init(XBARA1);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault0);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault1);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault2);
    XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault3);

XBAR函数

typedef enum _pwm_chnl_pair_operation
{
    kPWM_Independent = 0U,  /*!< PWM A & PWM B operate as 2 independent channels */
    kPWM_ComplementaryPwmA, /*!< PWM A & PWM B are complementary channels, PWM A generates the signal */
    kPWM_ComplementaryPwmB  /*!< PWM A & PWM B are complementary channels, PWM B generates the signal */
} pwm_chnl_pair_operation_t;

模式配置。 A产生信号,B互补等。

 PWM_Init(PWM2,kPWM_Module_3,&pwm2sm3_config);       //初始化PWM2模块3

模块初始化

 /* Call the init function with demo configuration */
    PWM_DRV_Init3PhPwm();

初始化PWM波的配置

//设置PWM2,中央对齐模式
PWM_SetupPwm(PWM2,kPWM_Module_3,&pwm_ignal,2,kPWM_CenterAligned,fre,sourceclock);//使用了两个通道

PWM_SetPwmLdok(PWM2,kPWM_Control_Module_3,true);    //设置PWM的load ok位
PWM_StartTimer(PWM2,kPWM_Control_Module_3);         //开启定时器

kPWM_CenterAligned 中央对齐模式


/* Update duty cycles for all 3 PWM signals */
        PWM_UpdatePwmDutycycle(BOARD_PWM_BASEADDR, kPWM_Module_0, kPWM_PwmA, kPWM_SignedCenterAligned, pwmVal);
        PWM_UpdatePwmDutycycle(BOARD_PWM_BASEADDR, kPWM_Module_1, kPWM_PwmA, kPWM_SignedCenterAligned, (pwmVal >> 1));
        PWM_UpdatePwmDutycycle(BOARD_PWM_BASEADDR, kPWM_Module_2, kPWM_PwmA, kPWM_SignedCenterAligned, (pwmVal >> 2));

        /* Set the load okay bit for all submodules to load registers from their buffer */
        PWM_SetPwmLdok(BOARD_PWM_BASEADDR, kPWM_Control_Module_0 | kPWM_Control_Module_1 | kPWM_Control_Module_2, true);

占空比更新。文章来源地址https://www.toymoban.com/news/detail-659648.html

到了这里,关于RT1052的EPWM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA的工作原理、组成结构、优点以及和单片机的区别

    注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料 ,将在公众号 CTO Plus 发布,请关注公众号: CTO Plus FPGA的工作原理、组成结构、优点以及和单片机的区别 FPGA (Field Programmable Gate Array,现场可编程门阵列) 是一种高度灵活的 https://mp.weixin.qq.co

    2024年02月03日
    浏览(55)
  • NXP-RT1176开发(一)——环境搭建(MCUXpressoIDE/VSCode)

    目录 1. 安装IDE 1.1 官方开发的IDE软件 1.2 Config工具下载 1.3 说明(需先有SDK)  2. 下载SDK 3. VScode环境下编译 3.1 安装插件 3.2  确保本地有交叉编译工具链和CMAKE 3.3 加载本地SDK 3.4 导入例程编译         该处理器编译规则可以MDK,IAR,官方的MCUXpresso,VSCode下也可以。这里安装MCU

    2024年01月19日
    浏览(37)
  • 001_区分单片机、arm、DSP、FPGA(零基础也能区分)

    单片机是指一个集成在一个芯片上的完整计算机系统,最早的单片机由微处理器核心、存储器、输入输出端口和计时电路等基本部分组成。例如,Intel公司推出的第一款单片机是Intel 8048,它于1976年发布,包括一个8位的中央处理器、ROM、RAM、输入输出端口和计时电路等基本模

    2024年02月08日
    浏览(44)
  • 单片机开发|基于单片机的婴儿睡眠监测系统设计

    作者简介:全栈开发工程,从事Java、Python、前端、小程序方面的开发和研究,对大数据应用与开发比较感兴趣, 主要内容:Java项目、前端项目、Python项目、小程序开发、大数据项目、单片机 收藏点赞不迷路  关注作者有好处 文末获取源码   感谢您的关注,请收藏以免忘记

    2024年02月10日
    浏览(50)
  • 单片机开发教程5——51单片机驱动TFT彩屏

    TFT.zip 开发资料中的例程有些瑕疵,上面是整理后的例程,修改了一些参数,也添加了不少函数,函数都有对应的注释,只要花心思去看一应该是能看懂怎么用的。此外,这个例程也可以作为你们工程的模板,往上面添加一些函数、完善一下内容,差不多就能做出一个作品了

    2023年04月23日
    浏览(47)
  • 雅特力单片机开发笔记

    目录 1.开发资源获取 2.硬件资源 2.1 硬件原理图pcb资源 2.2 数据手册 3.SDK软件资源 3.1 keil开发环境配置 3.2 软件开发包说明 3.3 jlink配置 3.4 jlink编程与仿真 3.5 程序相关例程说明 4. 单片机开发工具 5.雅特力单片机论坛         雅特力单片机所有资源都在官方发布,官网地址:雅特

    2023年04月11日
    浏览(39)
  • AVR单片机及其开发环境

    内容包括AVRStudio及WinAVR介绍,软件下载地址,编译环境设置,IAR for AVR的使用,AVR单片机的介绍。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 一、AVRStudio及WinAVR简介 1、使用AVR GCC做为编译器 2、选择仿真调试平台 3、选择Device,设置Frequency,代码优化

    2024年02月06日
    浏览(44)
  • 为STC32单片机搭建开发环境

            自去年起,STC推出了51内核的32位单片机,但是单纯的51内核已经驾驭不了32位总线了。因此STC32单片机才用的是251内核,多了一个2,使得底层指令从111条扩充到了268条,这或许意味着以后的STC单片机会有更广大的想象空间?         也因此,STC32的开发环境与传统

    2024年02月08日
    浏览(94)
  • STC宏晶单片机初始开发教程

    STC宏晶单片机开发教程(以STC15F101W为例),包括所需开发软件、烧录器与单片机的连线。 STC官网:http://www.stcmcudata.com/ 相关步骤: 下载开发软件:Keil uVision5(注意要注册C51内核).。 下载并安装芯片包:“keil5_c51v954a”。 到STC官网下载 “STC-ISP软件”。 根据“STC-ISP”软件上

    2024年02月02日
    浏览(51)
  • 单片机常用的开发软件有哪些?

    开发工具有很多,踩坑无数总结: 用得顺手、带仿真调试功能 的最重要。 特别是带仿真调试功能,用熟了,能让你找Bug效率直接起飞。 下面给大家盘点一些比较常用的单片机开发工具: 1.Keil μVision   这款开发工具相信是所有做单片机开发必用的了。 Keil是一种基于Windows系

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包