TQIMX6UL PWM 使用方法

基于iMX6UL的PWM使用方法,这里将以PWM4作为示例,以下为PWM部分设置示例及解析:

  1. 修改内核源码imx6ul.dtsi:
    找到下面代码
 pwm3: pwm@02088000 {
				compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
				reg = <0x02088000 0x4000>;
				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks IMX6UL_CLK_DUMMY>,
					 <&clks IMX6UL_CLK_DUMMY>;
				clock-names = "ipg", "per";
				#pwm-cells = <2>;
			};

在其下面添加:

  pwm4: pwm@0208c000 {
				compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
				reg = <0x0208c000 0x4000>;
				interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks IMX6UL_CLK_PWM4>,
					 <&clks IMX6UL_CLK_PWM4>;
				clock-names = "ipg", "per";
				#pwm-cells = <2>;
			};

2.在imx6ul.dts搜索pinctrl_pwm1

pinctrl_pwm1: pwm4grp {
			fsl,pins = <
				MX6UL_PAD_GPIO1_IO08__PWM4_OUT   0x110b0
			>;
		};

在其下面添加:

pinctrl_pwm4: pwm4grp {
			fsl,pins = <
				MX6UL_PAD_GPIO1_IO05__PWM4_OUT   0x110b0
			>;
		};

3.因为添加PWM4使用的是GPIO1_IO5 所以搜索注释用到gpio1_io5的地方

pinctrl_hog_1: hoggrp-1 {
			fsl,pins = <
				MX6UL_PAD_UART1_RTS_B__GPIO1_IO19		0x17059 /* SD1 CD */
				//MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT		0x17059 /* SD1 VSELECT */
				MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01        	0x03029 /* SD1 RESET */
			>;
		};

4.测试

# echo 0 > /sys/class/pwm/pwmchip3/export    //设置PWM输出,调出pwm0目录下设备节点
# echo 1 > /sys/class/pwm/pwmchip3/pwm0/enable  //设置使能
# echo 1000000 > /sys/class/pwm/pwmchip3/pwm0/period   //设置周期
# echo 500000 > /sys/class/pwm/pwmchip3/pwm0/duty_cycle   //设置占空比

可用示波器或者led灯亮度来查看现象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值