
根据您的描述,以下是可能的原因及解决方案,按优先级排序:
&flexpmux {
tpm_pwm_pins: tpm-pwm-pins {
pinmux = <
IMX8ULP_PAD_PTF19__TPM0_CH4 // 确认TPM实例和通道号
>;
drive-strength = <5>;
bias-pull-up;
};
};i.MX8ULP参考手册 确认PTF19支持的TPM实例(如TPM0/1/2)及通道号(CH0~CH5)。 &tpm0 {
pinctrl-names = "default";
pinctrl-0 = <&tpm_pwm_pins>;
status = "okay";
assigned-clocks = <&pcc2 IMX8ULP_CLK_TPM0>;
assigned-clock-parents = <&clk_1b>;
};assigned-clock-parents指向有效时钟源(如clk_1b对应1分频的PERCLK)。IMX8ULP_CLK_TPM0)。dmesg | grep tpm查看内核日志,确认时钟注册无错误。(2^16-1)/48e6 ≈ 1.366ms。 echo "normal" > polarity # 或尝试 "inversed"在启用PWM前设置极性。
lsmod | grep pwm_imx_tpm 确认驱动加载。sudo 执行命令,确保对sysfs的写入权限。# 确认TPM驱动状态
dmesg | grep -i tpm
# 查看PWM设备树节点
cat /sys/class/pwm/pwmchip0/device/of_node/name
# 快速测试:设置极短周期观察响应
echo 1000 > period
echo 500 > duty_cycle
echo 1 > enable请按上述步骤逐一排查,重点检查设备树中的引脚复用和时钟配置。如果问题仍然存在,请提供具体的设备树片段及dmesg日志以便进一步分析。
举报
更多回帖