0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LPC55S69 PWM踩坑寄录

冬至子 来源:螺丝松掉的人 作者:螺丝松掉的人 2023-10-11 15:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在使用 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 。

引脚配置问题

解决上述的那些问题之后,就已经可以正常使用 PWM 了。但是在对接 RTduino 的过程中又出现了新的问题。

在 RTduino 框架下一直不能正常使用 PWM 功能,最后发现,是需要将引脚配置为对应的功能,具体对应到的是 RT-Threadrtthreadbsplpc55sxxlpc55s69_nxp_evkboardMCUX_Configboardpin_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 的设备框架下。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LPC
    LPC
    +关注

    关注

    8

    文章

    137

    浏览量

    79087
  • 定时器
    +关注

    关注

    23

    文章

    3361

    浏览量

    121772
  • RT-Thread
    +关注

    关注

    32

    文章

    1544

    浏览量

    44299
  • PWM输出
    +关注

    关注

    1

    文章

    68

    浏览量

    6755
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32 5 个容易的外设使用技巧

    STM32是嵌入式开发领域的热门MCU,功能丰富到几乎可以完成所有常见控制任务:GPIO、ADC、UART、定时器、DMA……应有尽有。但是,正因为功能强大,开发中的机会也随之增多。很多初学者
    的头像 发表于 11-24 19:04 526次阅读
    STM32 5 个容易<b class='flag-5'>踩</b><b class='flag-5'>坑</b>的外设使用技巧

    为什么360°镜头容易“”?

    视场角来更直观地描述其视野范围。如何选择与避?明确你的FOV需求:全视野(360°x180°):镜头正上方的半球形全景。这是最常见的360°镜头,能一次性覆盖机器
    的头像 发表于 11-18 11:29 188次阅读
    为什么360°镜头容易“<b class='flag-5'>踩</b><b class='flag-5'>坑</b>”?

    JLink、RV Debugger及串口下载使用体验和

    自己搭配调试器或串口工具来进行,虽然造成了一定麻烦,却也是学习()的好机会。 以下将以调试器为顺序,简单叙述使用感受及过程中过的 0x01 Sipeed RV-Debugger
    发表于 11-05 12:04

    UWB自动跟随技术原理、算法融合优化和实录

    UWB为什么是最靠谱的自动跟随技术?原理是什么?需要做什么算法融合、优化?我们在开发过程中过的
    的头像 发表于 08-14 17:45 1138次阅读
    UWB自动跟随技术原理、算法融合优化和<b class='flag-5'>踩</b><b class='flag-5'>坑</b>实录

    PLC工业智能网关:功能解析、场景落地与选型避攻略

    如何避免选型?本文从技术原理、核心价值、典型场景、避指南四大维度,结合真实案例与行业趋势,为您彻底拆解PLC工业智能网关的“真面目”。
    的头像 发表于 07-16 13:21 478次阅读
    PLC工业智能网关:功能解析、场景落地与选型避<b class='flag-5'>坑</b>攻略

    【PCA9958HN-ARD】GUI工具的使用

    :PCA9958HN-ARD评估板快速入门 | NXP 半导体),里面包含GUI上位机软件的安装包和LPC55S69开发板的固件。 然后,点击setup.exe,进行GUI上位机软件的安装,安装
    发表于 06-29 10:07

    MCUX SDK FreeRTOS I2C驱动程序中没有超时选项是怎么回事?

    在将项目从不可用MK22FN1M0移植到 LPC55S69时,我正在尝试更多地使用 MCUX SDK 功能,我遇到的一个问题是提供的 FreeRTOS 感知 I2C 驱动程序
    发表于 04-11 08:05

    LPC55 USB端点rx数据无响应是哪里出了问题?

    我使用 LPC55S69 开发了一个 MIDI 键盘,USB MIDI 设备基于 SDK 的 USB 串行协议,我相应地对其进行了修改。 在 PC 上可以正确地枚举为 MIDI 设备,数据传输和接收
    发表于 04-09 08:09

    LPC55S69-EVK无法加载安全启动是怎么回事?

    我已按如下方式配置了我的 LPC55S69-EVK 板:   此外,我还配置了: TrustZone disabled image Authentication key: ROT1
    发表于 04-09 06:34

    SwdRead等待response_“LPC55s28” 超时了怎么解决?

    当我尝试锁定 MCU LPC55sXX 时,我遇到了以下问题。 我正在按照以下步骤锁定 MCU: 1.- 在 ISP 模式下配置 MCU。 2.- 将 bin 文件写入 CFPA。 3.- 将 bin 文件写入 CMPA。 4.- 验证 MCU 是否被锁定并预期出现以下结果: 此问题间歇性发生。
    发表于 04-08 06:52

    使用NXP控制器LPC55S69JBD100E,编程都需要SWD和JTAG吗?

    1. 在我们的项目中,我们使用 NXP 控制器LPC55S69JBD100E。编程都需要 SWD 和 JTAG 吗? 2. 您能解释一下 Flash 编程吗?
    发表于 03-27 07:23

    使用ConfigTools for USB创建新项目时遇到的问题求解

    使用 ConfigTools for USB 创建新项目时,存在缺少资源的问题,无法添加它: 该问题从 SDK 24.12.00 开始出现。适用于 macOS 的 MCUXpresso。经过 LPC55s69、MCX A153 和 MCX N947 测试。
    发表于 03-26 08:06

    LPC55S69JBD100通过SPI连接到WM02C时,是否支持通过bootloader进行OTA更新?

    该恩智浦-LPC55S69JBD100通过 SPI 连接到 WM02C (nRF7002) 时,是否支持通过 bootloader 进行 OTA 更新?请解释一下 OTA 更新过程。
    发表于 03-26 07:39

    EVK-LPC55S28的负载上限是多少?

    EVK-LPC55S28 使用晶CX3225GA16000D0PTVCC,在数据表中指定负载上限为 8pf。在 capbank appnote 中,它给出了一个示例,其中具有 8pF 值的 xtal
    发表于 03-26 06:25

    在ISP模式下无法在LPC55S69 EVK上升级应用程序怎么解决?

    我在使用 flash magic 工具升级 LPC55s69 evk 上的固件时看到问题。 在验证过程中,我看到失败。 请找到随附的快照作为参考, 有人可以告诉我,这是怎么回事吗? 一些其他信息
    发表于 03-26 06:00