回答

收藏

[评测分享] 【TL7218X开发板】四、初始化PWM(小坑)

#板卡评测 #板卡评测 1287 人阅读 | 0 人回复 | 2025-03-06

TL721X是一颗全新的芯片,网上相关资料非常少,没有比较优秀的资料,需要去试错。PWM是为了**开发的基本模块,本文记录初始化的相关代码,代码不难,就是有个小坑。
一、阅读例程、文档


参考T21X的PWM例程


参考B91M的PWM相关文档,理解代码,这份文档比较详细,有简单的代码

连接:https://doc.telink-semi.cn/doc/z ... e_connection_cn/#ir






二、测试实验


初始化代码
  1. void pwm_init(void)
  2. {
  3.     pwm_set_pin(GPIO_FC_PC3, PWM0);

  4.     pwm_set_pwm0_mode(PWM_NORMAL_MODE);

  5. //  pwm_set_clk((unsigned char)(sys_clk.pclk * 1000 * 1000 / PWM_PCLK_SPEED - 1));

  6.     pwm_set_tcmp(PWM0_ID, 200 * CLOCK_PWM_CLOCK_1US);

  7.     pwm_set_tmax(PWM0_ID, 2000 * CLOCK_PWM_CLOCK_1US);

  8.     pwm_start(FLD_PWM0_EN);

  9. }
复制代码


API 解析:
pwm_set_tcmp 设置有效电平持续时间
pwm_set_tmax 设置PWM频率

初始化完成后,发现,PWM能出来,但是PWM时不连续、没有固定间隔时间律的发出一段。



查了很久、并且将代码换到PWM Demo上,时可以成功运行的,说明PWM 初始化没问题。

最后突然想到了,现在大多数的蓝牙sdk默认是低功耗的,而且我们的PWM相关配置没有设置低功耗时保持运行,或者是间隔运行,所以会导致的PWM断断续续、没规律的开启与关闭。

如下图,关闭红框中两个涉及低功耗配置的宏即可。



实验效果:

最终的效果是如下图,发出了2k Hz 高电平10%的PWM





三、总结
目前的TL721X的相关文档比较少,需要去参考别的芯片的文档 和 查阅demo才可以开发,需要比较耗时,希望赶紧上传开发文档!!

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

229 积分
5 主题
+ 关注
热门推荐
关闭

站长推荐上一条 /3 下一条