Other Parts Discussed in Thread: LAUNCHXL-F280049C, C2000WARE, TIDA-010054
主题中讨论的其他器件: C2000WARE、 TIDA-010054
大家好、我叫 Iulian Popa。
我是´m 萨拉戈萨大学的学生。 我´m 您的开发板'LAUNCHXL-F280049C'、当我尝试控制某些 PWM 信号时、我有一些问题和疑问。
首先、我使用:
- CodeComposer 版本9.3
- C2000Ware 版本3.1.0.00
最后、在我的帖子(e2e.ti.com/.../954853)中得到 Nima Eskandari 的支持后 、我实现了相移控制、在该控制中、我能够更新相移和高分辨率相移。 但是、我已经进行了几次测试来验证 MEP 模块的正确运行(我已经通过论坛帖子了解如何使用此模块)。
我正在使用频率为10MHz 的 MCU 内部振荡器、并使用 PLL 定义如下:
#define DEVICE_OSCSRC_FREQ 10000000U
#define DEVICE_SETCLOCK_CFG (SYSCTL_OSCSRC_OSC2 | SYSCTL_IMULT (40)|
SYSCTL_FMULT_NONE | SYSCTL_SYSDIV (2)|
SYSCTL_PLL_ENABLE)
#define DEVICE_SYSCLK_FREQ ((DEVICE_OSCSRC_FREQ * 40 * 1)/ 2)
这样、我就能够以5ns 的分辨率生成100KHz PWM 信号(TBPRD = 2000;测量频率= 100KHz;分辨率为5ns)。
使用库"SFO_v8.h"的函数、5ns 的粗步长中的每一步将其分为33个细步长(150ps 分辨率)。 但是、在实践中、当我尝试手动配置 EPwmxRegs.TBPHS.bit.TBPHPHSHR 寄存器时、该寄存器的倍数为256*1、256*2、256*3、256*4…256*33、得到的相移不是150ps * 33微步进= 5ns、实际上结果接近2.5ns。
为什么 MEP 模块指示的33个步长不扫描所有粗步长?
问候语。 Iulian。
使用 www.DeepL.com/Translator 翻译(免费版)







