本文檔主要講解在 iMX6 開(kāi)發(fā)板設(shè)備樹(shù)內(nèi)核如何配置 pwm,文檔以蜂鳴器的 PWM 為 例,將默認(rèn)的 GPIO 配置設(shè)置為 PWM。 1 設(shè)備樹(shù)修改 這里選擇蜂鳴器的網(wǎng)絡(luò) CSI_PWN 來(lái)配置,對(duì)應(yīng)的 IO 為 SD1_DAT2。 打開(kāi)“arch/arm/boot/dts/imx6qdl-sabresd.dtsi”設(shè)備樹(shù)文件,默認(rèn)的配置是 “MX6QDL_PAD_SD1_DAT2__GPIO1_IO19”,如下圖所示,將其注釋掉。 ![]() 在設(shè)備樹(shù)代碼中,增加以下 PWM 配置。 ![]() 如下圖所示。 ![]() 增加 PWM2 的設(shè)備 ![]() 增加之后如下圖所示。 ![]() 重新編譯燒寫(xiě)到開(kāi)發(fā)板中。 2 sys 測(cè)試 這里我們不增加驅(qū)動(dòng)代碼,直接利用 sys 即可,默認(rèn) pwm 的 sys 已經(jīng)配置。 燒寫(xiě)新的設(shè)備樹(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,可以聽(tīng)到蜂鳴器響 echo 100000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 為 100000,可以聽(tīng)到蜂鳴器響 echo 0 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle 配置 duty_cycle 為 0,蜂 鳴器停止響。 ![]() |