- 本课程为精品课,您可以登录eeworld继续观看:
- UCD3138数字PWM(DPWM)模块:设置PWM周期
- 登录
- 课程目录
- 课程笔记
在 DPWM模块中央
是 DPWM 周期寄存器和 DPWM 计数器
两个寄存器均为 14 位
DPWM 计数器数值递增,直至
其等于周期寄存器中的值
当出现此情况时,DPWM 计数器
会复位并再次启动
DPWM 计数器可从 PCLK 计时
PCLK 以 250 MHz 运行
因此,DPWM 计数器数值每 4 ns 按一定增量递增
在开关式电源控制上下文中
周期值表示一个开关周期
现在,我将演示如何设置周期
四个 DPWM 模块中,每个模块均有称作 DPWM PRD 的
周期寄存器
该寄存器中的相关字段称作 PRD
它存在于位 17(含)至位 4(含)
寄存器中保留了四个最低有效位
因此,不应使用除 0 以外的任何值
加以覆盖
现在,我将演示如何将 DPWM 模块的周期
设置为 0 至 10 ms
要获取 14 位值以置于 PRD 字段
将周期(秒)除以时基(秒)
并将结果取整为最近的整数
在我们的例子中,周期是 10 ms
并且时基是4 ns
所以结果是 2,500
要将该值直接至于DPWM PRD 寄存器中
我们需要计入周期字段的位 0 与
寄存器的位 4 对齐这一事实
因此,我们需要将结果
左移 4 位,这相当于乘以 16
即,2 的 4 次方
在 C 代码中语句将是这样的
这些寄存器本身及其内部的字段
在 C 代码中将以结构体的形式组织
第一条语句将寄存器中的所有位
设置为常量值
以获得 10 ms 的开关周期
第二条语句仅设置寄存器内
PRD 字段中的位
它计入寄存器内部 PRD 字段的对齐
且不修改任何其他位
第一条语句灵活度较低,但是
在处理生成的 ARM 汇编代码方面更高效
它仅是单注册器写入
第二条语句将产生更多的汇编码
因为其涉及将寄存器的内容复制到
ARM 内核,使用逻辑操作
修改与 PRD 字段关联的位,然后将修改的值
写回寄存器
因此,与第一个操作相比,第二个操作将占用更多字节
并耗费更多处理器时钟周期
但是,第二条 C语言更易支持
因为您无需担心寄存器中
其他字段的内容
好的做法是,在开发过程中使用 .bit 结构
然后,当需要更高效的代码时
将其改为 .all 结构
课程介绍
共计6课时,25分31秒
UCD3138数字PWM(DPWM)模块
在本教程中,我将 介绍数字电源 外设, 尤其着重介绍 数字脉冲宽度调制, 或者说 DPWM 模块。 此讲演 随实验练习二一起提供。 在上一教程中,我们已简要 介绍了 ARM 内核、 闪存以及 PMBus 接口。 现在,我们将着重介绍 DPWM 模块及其两个 关联的输出引脚。 UCD3138 系列 每个成员产品的内核 是数控 环路外设, 也称作数字 电源外设, 或简称 DPP。 这些器件用于 控制电源中的 高速电压和 电流环路。 它们旨在 替代基于 模拟电压管理 控制器 IC 的电源中 采用的模拟 补偿网络和 PWM 生成系统, 并向系统 添加增强的 数字功能。
猜你喜欢
换一换
推荐帖子
- 【TI首届低功耗设计大赛】焊接完成,第一个程序,LED流水灯
- 【TI首届低功耗设计大赛】焊接完成,第一个程序,LED流水灯 为了验证焊接是否成功,我只焊了复位电流和几个LED灯,先是用EXP430G2开发板下载程序,下了很多次都在downloading时提示通信错误,只有一次成功,平时下MSP430G2553都没有问题,怀疑是仿真器版本过低导致,后来换成EXP430FR5969的开发板问题解决了。跑了一个LED流水灯程序,证明单片机焊接良好。我焊好的最最小系...
-
littleshrimp
微控制器 MCU
- 为何学C2000的人这么少?
- 最近要用到2802X才学这个,发现学的人比较少,几个论坛大多都是12年13年发了点帖子,后面就不多了,现在已经被M3 M4搞成这样了么。。。。...
-
still89
微控制器 MCU
- 【TI首届低功耗设计大赛】智能手表之无线控制智能家居
- void GUI_Buletooth( void ) { WM_HWIN hButton0; WM_HWIN hButton1; WM_HWIN hButton2; ...
-
zhanghuichun
微控制器 MCU
- 谁有6678开发板上面那个560仿真器小板子的原理图?
- 谁有6678开发板上面那个560仿真器小板子的原理图啊 谁做过这个的测试也行,上面有好多的测试点,都是什么含义呢,哪里能找文档? eeworldpostqq...
-
梧桐雨
DSP 与 ARM 处理器