一:imx6ul datasheet pwm
阅读imx6ul datasheet 可知imx6ul支持8路pwm,各路pwm的寄存器地址。
- pwm5
- pwm6
二:设备树修改
- pwm5
2. pwm6设备树
- clocks:时钟
pwm设备树中clocks默认为IMX6UL_CLK_DUMMY,需要修改为对应时钟IMX6UL_CLK_PWM6。IMX6UL_CLK_PWM6为时钟索引,用于从clks数组中选择对应时钟。 - clock-names 时钟名称
- interrupts 中断
- reg 寄存器首地址和长度
- compatible 用于匹配驱动程序
三:pwm使能
编译设备树并加载最新设备树文件。会在/sys/class/pwn/目录下生成对应文件。 pwmchip0 对应 pwm5 pwmchip1 对应 pwm6 可以看到pwm对应的设备文件名生成顺序和uart并不一样。在设备树文件前面的为0,依次递加。
四:pwm测试
- 导出
echo 0 > /sys/class/pwm/pwmchip0/export
- 使能
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
- 设置周期
echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period
- 设置占空比
echo 500000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
- 取消导出
echo 0 > /sys/class/pwm/pwmchip0/unexport
修改占空比值,在示波器上可以看到波形的变化。
|