RK3566 PWM调试避坑指南:从DTS到示波器的全链路问题排查
最近在调试RK3566的PWM功能时,遇到了一个令人抓狂的问题——明明按照手册修改了DTS文件,编译烧录后却死活测不到波形。这让我意识到,PWM调试远不止改个设备树那么简单。本文将分享我在解决这个问题过程中积累的经验,希望能帮你少走弯路。
1. 当PWM没有波形时,先检查这些基础项
很多开发者遇到PWM不工作时,第一反应是怀疑驱动有问题。但实际上,80%的问题都出在基础配置上。在深入调试前,请先确认以下基本项:
- 硬件连接:示波器探头是否接触良好?测量点是否正确?我就曾浪费两小时才发现是探头接触不良
- 电源供应:PWM模块的供电是否正常?用万用表测量VCC和GND
- 时钟使能:通过
cat /sys/kernel/debug/clk/clk_summary | grep pwm查看PWM时钟是否启用
# 查看PWM时钟状态示例
cat /sys/kernel/debug/clk/clk_summary | grep pwm
如果上述检查都正常,但依然没有波形,那么问题可能出在以下几个关键环节。
2. 管脚复用冲突:最容易被忽视的坑
RK3566的管脚复用非常灵活,这也意味着更容易出现配置冲突。我曾遇到一个案例:PWM14的管脚同时被配置为GPIO功能,导致PWM信号无法输出。
排查步骤:
-
检查pinctrl配置:
&pwm14 { status = "okay"; pinctrl-names = "active"; pinctrl-0 = <&pwm14m1_pins>; // 确认


339

被折叠的 条评论
为什么被折叠?



