pwm无法输出我预期的频率( 设定38khz, 输出2khz)

2021-11-213152
AI 快速预览详细 收起
本文讨论了在K210上移植红外遥控器库时遇到的PWM频率问题。作者设定了38kHz的PWM频率,但实际输出仅为2kHz。通过详细的代码示例和逻辑分析仪测试结果,文章展示了问题的现象、排查过程及解决方案。对于新手来说,这篇文章提供了宝贵的调试经验和实用建议,帮助他们更好地理解和解决类似问题。

我是刚入门的新手,正打算移植一个红外遥控器库到k210上. 使用的是C语言开发, 后面打算添加到maixpy中.
我的pwm配置如下:

void irsend_enableIROut(double khz, double duty) {
  // 设置pwm功能的输出引脚为 PWM_IO_OUT
  // timer_toggle从1开始算, toggle2对应定时器的timer_channal1
  fpioa_set_function(PWM_IO_OUT, FUNC_TIMER0_TOGGLE2);

  // 初始化pwm0
  pwm_init(PWM_DEVICE_0);

  // 设置pwm的频率和占空比
  int fre = pwm_set_frequency(PWM_DEVICE_0, PWM_CHANNEL_1, 38000, duty);
  char str[30];
  itoa(fre, str, 10);
  uart_send_data(UART_DEVICE_3, str, strlen(str));
  uart_send_data(UART_DEVICE_3, "\n", 1);
}

pwm输出波形

串口的打印输出是38000, 也就是38khz, 但是我用逻辑分析仪测试后发现只输出了2kh的pwm波.

我又测试了频率为2khz以下pwm波, 都能正确输出.

所以我猜测k210 pwm的最高频率是否是只能达到2khz?

有人清楚这个问题吗? 不胜感激!!!      : )


SunNovember-202111212424..png (29.39 KB, 下载次数: 5118)

逻辑分析仪 pwm输出波形

K210 PWM频率问题解决 · 新手入门_image_3.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
reihold
reihold
作者
已解决,是我的软件采样率设置不够高,导致没办法采集出来。
用的pulseview软件,设置的参数如图所示。主要是采样率得设置成38khz以上
anydy
anydy
你是用显波器冫
reihold
reihold
作者
回复anydy
用的逻辑分析仪
reihold
reihold
作者
开发环境: kendryte ide
板卡:speed maix dock M1W
- 没有更多了 -