| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 再说说EPWM模块的全局加载 -> 正文阅读 |
|
[嵌入式]再说说EPWM模块的全局加载 |
之前总结了EPWM模块的影子寄存器及其加载机制。
下面再来详细说说EPWM模块的全局加载机制。 为什么要有全局加载为什么要有“全局加载”呢? PRD和CMP的影子寄存器,解决的是单个EPWM模块内部的同步问题。因为在中断里面更新PRD和CMP是有先后顺序的,不是同时的,但硬件又希望它们同时生效。所以,先让软件把值写到影子寄存器里,当硬件满足一定的条件后,由硬件同时刷新到活动寄存器中。 但是,随着EPWM模块的功能越来越多,影子寄存器也越来越多。在280025中,有以下影子寄存器:
软件更新这些寄存器也是需要时间的,如果刚好在PRD=0前后,分别更新两个寄存器,则它们生效的时间就不同步了。 为了解决这一问题,引入了“全局加载”。 全局加载的机制使能全局加载机制后,特别是One-shot模式后,就可以先把值写入寄存器,然后再由软件统一“发号施令”,然后再由硬件统一加载。 原理框图如下: ? 具体配置方法如下: 1,配置哪些寄存器使能全局加载在“全局加载配置”寄存器中(GLDCFG) ?这里面的每一个位都控制某一个寄存器是否使能“全局加载”。 比如:TBPRD: Global load event configuration for TBPRD_TBPRDHR 注意:如果这些位没有设置,则相应的寄存器仍然遵循原来的加载机制。这样可以实现部分寄存器全局加载,其他寄存器局部加载(local?reload)。 2,配置全局加载模式并使能再配置加载时机(加载模式GLDMODE)、是否One-shot模式等。 然后再使能全局加载(GLD=1) ? 3,自动全局加载或者触发全局加载在One-shot全局加载模式下,需要软件开启加载。软件每控制一下,只生效一次。 这个是在GLDCTL2寄存器中。 ?OSHTLD和GFRCLD都是“写1生效”。 OSHTLD写1后,等待GLDCTL.GLDMODE所对应的时机到来。到来后即触发一次加载,加载后OSHTLD被硬件清零。下一次又需要由软件开启。 GFRCLD是软件强制触发加载。写一次1,则触发一次加载。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:48:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |