This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/CC3220:CC3220中的频率不匹配

Guru**** 2538955 points
Other Parts Discussed in Thread: CC3220S

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/646552/compiler-cc3220-frequency-mismatch-in-cc3220

器件型号:CC3220

工具/软件:TI C/C++编译器

尊敬的 TI 团队:

我 需要通过 PWM 在 CC3220上生成8MHz、并且我已成功实现它、但仅在 PWM 初始化期间频率设置为8.5MHz 时才实现。

导致这种变化的原因是什么?

在 PWM 初始化中、频率更新为8MHz 时、PWM 输出也为7.2MHz。

下面是代码的代码片段。

PWM 初始化

PWM_init();

//初始化 PWM 参数
PWM_PARAMS_INIT (&pwmParams);
pwmParams.idleLevel = PWM_IDLE_LOW;// PWM 未运行时输出低电平
pwmParams.periodUnits = PWM_PERIOD_Hz;//周期以 Hz 为单位
pwmParams.periodValue = 8500000;// 8MHz
pwmParams.dutyUnits = PWM_Duty_fraction;//占空比为小数百分比
pwmParams.dutyValue = 0;// 0%初始占空比

//打开 PWM 实例
PWM = PWM_OPEN (Board_PWM0、&pwmParams);

if (PWM == NULL){
// PWM_open()失败
while (1);

PWM_START (PWM);//以0%占空比启动 PWM

 while (1)

PWM_setDuty (PWM、(PWM_Duty_Frite_MAX / 2));//将占空比设置为50%

PWM 驱动器

/*
*========================================= PWM ================================================
*
#include
#include

PWMTimerCC32XX_Object pwmTimerCC3220SObjects[CC3220S_LAUNCHXL_PWMCOUNT;

CONST PWMTimerCC32XX_HWAttrsV2 pwmTimerCC3220SHWAttrs[CC3220S_LAUNCHXL_PWMCOUNT ={
{/* CC3220S_LAUNCHXL_PWM6 *
pwmPin = PWMTimerCC32XX_PIN_01
}、
{* CC3220S_LAUNCHXL_PWM7 */
pwmPin = PWMTimerCC32XX_PIN_02

};

用于 PWM 的引脚


#define PWMTimerCC32XX_PIN_01 (PWMTimerCC32XX_T3A | PWMTimerCC32XX_GPIO10 | 0x0300)/*!<@hidealizer */

计时器驱动器


/*
*========================================= 计时器=========================================
*
#include
#include

TimerCC32XX_Object timerCC3220SObjects[CC3220S_LAUNCHXL_TIMERCOUNT];

const TimerCC32XX_HWAttrs timerCC3220SHWAttrs[CC3220S_LAUNCHXL_TIMERCOUNT]={

baseAddress = TIMERA0_BASE、
.subTimer = TimerCC32XX_timer32、
.intNum = INT_TIMERA0A、
.intPriority =~0
}、

baseAddress = TIMERA1_base、
.subTimer = TimerCC32XX_timer16A、
.intNum = INT_TIMERA1A、
.intPriority =~0
}、

baseAddress = TIMERA1_base、
.subTimer = TimerCC32XX_timer16B、
.intNum = INT_TIMERA1B、
.intPriority =~0
}、
};

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此、它看起来像是漂移。

    如果您选择使用 PWM_PERIOD_US 和 PWM_Duty_US 并自行定义周期和占空比、则会发生什么情况?

    您使用的是 LaunchPad 还是您自己的定制板?

    Shlomi