查看: 4464|回复: 4

[原创] LPC55S69 PWM踩坑寄录

[复制链接]

该用户从未签到

6

主题

9

帖子

0

注册会员

Rank: 2

积分
81
最后登录
2024-4-28
发表于 2023-2-27 12:00:42 | 显示全部楼层 |阅读模式
LPC55S69 PWM踩坑寄录
在使用 lpc55s69_nxp_evk 开发板对接 rtduino 的过程,对接 PWM 部分的时候,遇到了不少坑,在此记录。
BSP 中 driver 的问题
  • 由于调用的 SDK 版本问题,kCLOCK_CTimer 需要更改为 kCLOCK_Timer,这个问题在与定时器相关的 drv_hwtimer 文件中同样存在。
  • 同样因为 SDK 的版本问题,CTIMER_SetupPwmPeriod 函数增加了一个参数
    /*!
    * brief Configures the PWM signal parameters.
    *
    * Enables PWM mode on the match channel passed in and will then setup the match value
    * and other match parameters to generate a PWM signal.
    * This function can manually assign the specified channel to set the PWM cycle.
    *
    * note When setting PWM output from multiple output pins, all should use the same PWM
    * period
    *
    * param base             Ctimer peripheral base address
    * param pwmPeriodChannel Specify the channel to control the PWM period
    * param matchChannel     Match pin to be used to output the PWM signal
    * param pwmPeriod        PWM period match value
    * param pulsePeriod      Pulse width match value
    * param enableInt        Enable interrupt when the timer value reaches the match value of the PWM pulse,
    *                         if it is 0 then no interrupt will be generated.
    *
    * return kStatus_Success on success
    *         kStatus_Fail If matchChannel is equal to pwmPeriodChannel; this channel is reserved to set the PWM period
    */
    status_t CTIMER_SetupPwmPeriod(CTIMER_Type *base,
                                   const ctimer_match_t pwmPeriodChannel,
                                   ctimer_match_t matchChannel,
                                   uint32_t pwmPeriod,
                                   uint32_t pulsePeriod,
                                   bool enableInt)
    新增的 param pwmPeriodChannel 指定一个定时器的通道控制 PWM 的 Period ,需要注意的是,其中提示:当使用一个定时器的多个通道输出 PWM 时,其 Period 均是一致的。通过对比之前版本的 SDK ,了解到之前是使用 kCTIMER_Match_3 通道作为 pwmPeriodChannel 。因此,在对应的参数位置填入 kCTIMER_Match_3 。
  • 还有一个问题,已经被解决。相关PR

引脚配置问题
解决上述的那些问题之后,就已经可以正常使用 PWM 了。但是在对接 RTduino 的过程中又出现了新的问题。
在 RTduino 框架下一直不能正常使用 PWM 功能,最后发现,是需要将引脚配置为对应的功能,具体对应到的是 RT-Thread\rtthread\bsp\lpc55sxx\lpc55s69_nxp_evk\board\MCUX_Config\board\pin_mux 相关文件,可以通过 NXP 官方工具进行配置 MCUXpresso Config Tools
修改引脚功能后,rtduino 框架下的 PWM 还是对接不上,debug 发现在 drv_pwm 中定时器2对应的是 pwm1 ,而 RT-Thread 的设备框架下应该对应的是 pwm2 ,导致识别不到。于是将 drv_pwm 中定时器2改为 pwm2 ,呼吸灯正常。

之后优化的方向
使用 bsp 时注意到,drv_pwm 中只考虑了定时器2一种情况,并且只有一个通道。接下来需要对 PWM 设备进一步的抽象,更好的对接到 RT-Thread 的设备框架下。

回复

使用道具 举报

  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3946

    主题

    7567

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    40302
    最后登录
    2025-9-12
    发表于 2023-2-27 12:39:11 | 显示全部楼层
    这记录不错
    qiandao qiandao
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10105
    最后登录
    2025-9-11
    发表于 2023-2-27 14:48:43 | 显示全部楼层
    从楼主的描述上看,RTduino 的实现好不成熟。
    不过,这也是使用开源框架所要经历的调试阶段
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2025-2-21 12:40
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    11

    主题

    1711

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3809
    最后登录
    2025-9-13
    发表于 2023-2-27 19:04:17 | 显示全部楼层
    jobszheng5 发表于 2023-2-27 14:48
    从楼主的描述上看,RTduino 的实现好不成熟。
    不过,这也是使用开源框架所要经历的调试阶段 ...

    BUG解多了,自然就成熟了
    ~~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10105
    最后登录
    2025-9-11
    发表于 2023-2-27 20:26:46 | 显示全部楼层
    oxlm 发表于 2023-2-27 19:04
    BUG解多了,自然就成熟了

    您这心态倒是真好
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-13 19:56 , Processed in 0.087693 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表