DA14531 PWM频率

了解更多常见问题解答教程

6个帖子/ 0新
最后一篇
洋星
离线
最后一次露面:1个月4周前
加入:2020-05-26 18:20
DA14531 PWM频率

你好

我试图了解如何使用模块DA14531的外设并使用该示例。

我设法生成一个PWM并删除了更改PWM DC的循环并固定为50%,但频率是问题

我无法理解它使用的公式,在数据表中说:

timer2_clk_freq_hz / cressing_freq_hz - 1

该示例具有以下功能:

timer2_pwm_freq_set();

但我无法获得所需的频率

我可以移动参数以获得一些关闭,但重点是要知道确切的公式而不是猜测......

有什么东西我做错了吗?

PM_DIALOG.
在线的
最后一次露面:17分17分钟前
职员
加入:2018-02-08 11:03
嗨,马格加,

嗨,马格加,

感谢您在线的问题,并符合我们的微小模块解决方案。timer2_pwm_freq_set()配置triple_pwm_frequency寄存器。请参见DA14531数据表中的表327:Triple_pwm_frequency(0x50003408),以检查它应该是如何配置的。

我猜你正在使用SDK的Timer2示例。我可以问你想要完成什么,什么应该是PWM输出信号?你想改变占空比吗?

关于频率,还请在Timer2,H头文件中读取timer2_pwm_freq_set()上面的注释。

谢谢,PM_DIALOG.

洋星
离线
最后一次露面:1个月4周前
加入:2020-05-26 18:20
你好,

你好,

是的,我正在使用SDK for Timer2(PWM)中的示例

我想要做的是获得1kHz,只需更改0-100%之间的占空比

就在现在,我将它设置为50%a没有任何问题,我的问题仍然是频率

在该示例中是这样的

//系统时钟,除以8,是Timer2输入时钟源(根据
//到上面的clk_div_config结构).pwm_frequency
timer2_pwm_freq_set(500,1600000/8);

它是因为提供500Hz

但我注意到该示例基于DA14585设备(我读取的,使用16MHz的工作),我的设备与32MHz合作说数据表

所以我改了

ttimer2_pwm_freq_set(1000,4000000);

我得到的频率是3.676Hz ......

数据表表示Triple_pwm_frequency注册表具有以下公式:

PWM FREQ =模块频率/(值+ 1)

这是此函数中的确切公式 - > timer2_pwm_freq_set()

我仍然不知道为什么我得到如此低的频率,甚至没有一个圆形的数字3.676Hz甚至有点奇怪

要获得1khz的频率,我将值更改为此

timer2_pwm_freq_set(6700U,100000);

我在示波器中获得1.053khz,但对我来说真的很奇怪

Waiteyang.
离线
最后一次露面:3周5天前
加入:2017-02-17 09:19
要使使用系统的型

要使使用系统的型

static tim2_config_t config =
{
.clk_source = tim2_clk_sys,
.hw_pause = tim2_hw_pause_off.
};

洋星
离线
最后一次露面:1个月4周前
加入:2020-05-26 18:20
这完全有效地谢谢

这完全谢谢你的回复

示例代码没有这一行:“.clk_source = tim2_clk_sys,”

有了我的设置:

//系统时钟除以8,是Timer2输入时钟源(根据上面的CLK_DIV_CONFIG结构)

timer2_pwm_freq_set(pwm_frequncy,2000000);//在我的情况下pwm_frequncy = 1000

我完全得到了我的习惯

PM_DIALOG.
在线的
最后一次露面:17分17分钟前
职员
加入:2018-02-08 11:03
嗨waiteyang,谢谢你的

嗨waiteyang,谢谢你的建议!对其他社区来说非常有用。

嗨扬子糖。很高兴你讨论了这个问题。

谢谢,PM_DIALOG.