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.

[参考译文] CCS/CC1310:具有 CC1310f128 PWM 的变频发生器--驱动程序库 NORTOS

Guru**** 2535150 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/753919/ccs-cc1310-variable-frequency-generator-with-cc1310f128-pwm----driver-lib-nortos

器件型号:CC1310

工具/软件:Code Composer Studio

您好!  
我一直在使用 NORTOS 中的 PWM0 Driverlib 示例和 CCS Studio 通过 CC1310F128的 PWM 生成可变频率发生器。 到目前为止、我只能使用 PWM 产生很多噪声的频率、我可以在频谱分析仪中看到谐波的振幅。 在40%的恒定占空比下、我具有以下特性:-

频率指数数组-  

const volatile int freqArray_son[]={16、17、18、19、20、23、26、21、35、15、22、27、18、 31、29、14、26、16、 21、20、27、28、15、 22、12、35、24、33、 17、27、19、21、26、 32、12、18、13、34、 33、31};

我有一个乘法因子- 172。 因此、我必须生成具有40个不同频率的音调[等于乘法因子* freqArray_soni[i]、每个频率的序列间隔为40ms。 因此它应该像:-

40ms 为16*172Hz,40ms 为17*172...... 到31*172,40毫秒

这是我的 PWM 函数:-

void pwm2 (int freq)

  PWM_Handle pwm2 =空;

  PWM_PARAMS 参数;

    /*以微秒为单位的周期和占空比*/

    uint16_t pwmPeriod = freq;    

    /*调用驱动程序初始化函数。 *

    PWM_init();

    PWM_PARAMS_INIT (params);

    params.dutyUnits = PWM_Duty_US;  

    params.dutyValue = 40;

    params.periodUnits = PWM_PERIOD_Hz;

    params.periodValue = pwmPeriod;

    pwm2 = PWM_OPEN (Board_PWM0、params);

    PWM_START (pwm2);

        usleep (40000);

        PWM_STOP (pwm2);

        PWM_CLOSE (pwm2);

在我的主线程中、我将调用如下函数:-

for (i=0;i<41;i++)

    {

     pwm2 (172*(freqArray_son[i]));

    }
如果我要生成可变频率、我的 PWM 功能是否正确? 问题是、当我播放这个频率阵列时、在关闭并停止 PWM 后切换到另一个频率之前、扬声器会产生奇怪的咔嗒声、我认为这是我无法获得精确输出的原因。 在这方面的任何帮助都将不胜感激。

谢谢、此致



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

    您无需在每次更改 PWM 频率时关闭/打开 PWM 驱动器。 查看 pwmled2示例及其如何使用"pwm_setDuty (pwm2、Duty);"来更新频率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     肯定会尝试它。 这个问题今天上午得到了解决。 显然、当我使用电路板设置重新路由至 DIO3时、尝试在引脚 DIO6上生成的音调产生了良好的效果。 我仍然不知道为什么某些引脚比其他引脚更适合使用 PWM。 总之、非常感谢您的输入。

    此致

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

    我尝试使用同一模块生成17-19khz 范围内的超声波频率。 我得到的频率不是那么精确。 例如、如果我将18000作为频率、它将生成一个大于或等于100Hz 的偏移。 如果我想在80Hz 的+/-偏移范围内获得接近18880hz 的精确频率、该怎么办? 为了实现这一点、我应该做些什么更改?

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

    您好、Gaurav、

    我需要更仔细地查看频率的确切原因(我可以重新生成)、这很奇怪。 到目前为止、我建议您改为以计数形式输入周期、并手动调整此值以获得正确的频率。