查看原理图可知扩展板可用PWM7,PWM8,对应着GPIO4_IO19,GPIO4_IO20.
所以100ask_imx6ull-14x14.dts下的iomuxc设置如下:
pinctrl_pwm7: pwm7grp{ /*!< Function assigned for the core: Cortex-A7[ca7] */
fsl,pins = <
MX6UL_PAD_CSI_VSYNC__PWM7_OUT 0x000010B0
>;
};
pinctrl_pwm8: pwm8grp{
fsl,pins = <
MX6UL_PAD_CSI_HSYNC__PWM8_OUT 0x000010B0
>;
};
然后make dtbs 编译dtb文件并烧入开发板。
测试PWM8,这里PWM8对应着/sys/class/pwm/pwmchip7,
接着执行如下操作:
1.cd /sys/class/pwm/pwmchip7
2.echo 0 > export
3.echo 1000000 > pwm0/period
在执行第三步的时候就卡死,如下图
所以,想问下这到底是什么原因?我试了PWM7也是会卡死
1 个赞
clocks中pwm7/pwm8的值默认都是 IMX6UL_CLK_DUMMY,需要设置成IMX6UL_CLK_PWM8和IMX6UL_CLK_PWM8
sn.1
9
可以看这篇博客:https://blog.csdn.net/m0_74712453/article/details/139957676,我把解决过程写在上面了,你要进入设备树目录修改100ask_imx6ull-14x14.dts和imx6ull.dtsi文件,
100ask_imx6ull-14x14.dts文件:添加两部分:
(1)
&pwm7 {
pinctrl-names = “default”;
pinctrl-0 = <&pinctrl_pwm7>;
status = “okay”;
};
&pwm8 {
pinctrl-names = “default”;
pinctrl-0 = <&pinctrl_pwm8>;
status = “okay”;
};
(2)
pinctrl_pwm7: pwm7grp {
fsl,pins = <
MX6UL_PAD_CSI_VSYNC__PWM7_OUT 0x000010B0
>;
};
pinctrl_pwm8: pwm8grp {
fsl,pins = <
MX6UL_PAD_CSI_HSYNC__PWM8_OUT 0x000010B0
>;
};
imx6ull.dtsi文件:将pwm7中的时钟配置改成 CLK_PWM7, 将pwm8中的时钟配置改成 CLK_PWM8
然后重新编译设备树,上传到开发板,就可以解决了
1 个赞
你好,我想请问下你用的内核版本是多少?目前我下载用的是最新BSP下载的Linux-4.9.88,这里面imx6ull.dtsi里本身对pwm7和pwm8就设置了CLK_PWM7和CLK_PWM8,我试了下还是会卡死的