本文檔主要講解在 iMX6 開發(fā)板設(shè)備樹內(nèi)核如何配置 pwm,文檔以蜂鳴器的 PWM 為
例,將默認(rèn)的 GPIO 配置設(shè)置為 PWM。
1 設(shè)備樹修改
這里選擇蜂鳴器的網(wǎng)絡(luò) CSI_PWN 來(lái)配置,對(duì)應(yīng)的 IO 為 SD1_DAT2。
打開“arch/arm/boot/dts/imx6qdl-sabresd.dtsi”設(shè)備樹文件,默認(rèn)的配置是
“MX6QDL_PAD_SD1_DAT2__GPIO1_IO19”,如下圖所示,將其注釋掉。
01.jpg (11.05 KB, 下載次數(shù): 55)
下載附件
2019-9-9 10:32 上傳
在設(shè)備樹代碼中,增加以下 PWM 配置。
02.jpg (4.74 KB, 下載次數(shù): 51)
下載附件
2019-9-9 10:32 上傳
如下圖所示。
03.jpg (6.92 KB, 下載次數(shù): 49)
下載附件
2019-9-9 10:32 上傳
增加 PWM2 的設(shè)備
04.jpg (5.3 KB, 下載次數(shù): 47)
下載附件
2019-9-9 10:32 上傳
增加之后如下圖所示。
05.jpg (13.87 KB, 下載次數(shù): 55)
下載附件
2019-9-9 10:32 上傳
重新編譯燒寫到開發(fā)板中。
2 sys 測(cè)試
這里我們不增加驅(qū)動(dòng)代碼,直接利用 sys 即可,默認(rèn) pwm 的 sys 已經(jīng)配置。
燒寫新的設(shè)備樹鏡像之后,使用命令
echo 0 > sys/class/pwm/pwmchip1/export 初始化 pwm,將其配置為 pwm
取消的話使用“echo 0 > sys/class/pwm/pwmchip1/unexport”命令。
配置為 pwm 之后,使用命令以下命令:
echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable 使能
echo 1000000 > /sys/class/pwm/pwmchip1/pwm0/period 配置 period 為
1000000
echo 500000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 為
500000,可以聽到蜂鳴器響
echo 100000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 為
100000,可以聽到蜂鳴器響
echo 0 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 為 0,蜂
鳴器停止響
06.jpg (61.4 KB, 下載次數(shù): 50)
下載附件
2019-9-9 10:32 上傳
|