e-yamada
2018年3月1日 17時55分
お世話になっております。
拡張I/FのPWMの使用方法について質問させて頂きます。
PWM1 から 9600Hz のパルスを出力するため、arch/arm/boot/dts/imx7d-sdb.dts を参考に
以下の様な設定を追加しました。
/* PWM1 */
/*
* CON8_40: PWM1_OUT
*/
&iomuxc {
x1_ext {
pinctrl_pwm1: pwm1grp {
fsl,pins = <
MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x110b0
>;
};
};
};
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
status = "okay";
};
カーネルビルド後、実機でカーネルとDTBを入れ替え再起動後以下の操作を
行いましたが、ポート出力に変化が無く目的の波形を得るに至っておりません。
# echo 0 > /sys/class/pwm/pwmchip0/export # echo 104167 > /sys/class/pwm/pwmchip0/pwm0/period
# echo 52083 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
# grep . /sys/class/pwm/pwmchip0/pwm0/* 2>/dev/null
/sys/class/pwm/pwmchip0/pwm0/duty_cycle:52083
/sys/class/pwm/pwmchip0/pwm0/enable:1
/sys/class/pwm/pwmchip0/pwm0/period:104167
/sys/class/pwm/pwmchip0/pwm0/polarity:normal
DTSの表記について、何か間違っているところがあるのでしょうか?
間違っているとすれば、MX7D_PAD_GPIO1_IO01__PWM1_OUT と共に与えているパラメータかと思います。これに関して値の意味するところを調べたいのですが、何か資料があればご教示をお願い致します。
なお、PWM1(ピン番号40)に対して、プルアップ抵抗10KΩを実装しております。
以上よろしくお願いいたします。
コメント
at_mizo
e-yamada
溝渕様
お世話になっております。
ご回答いただき誠にありがとうございます。
前回と今回、ご指摘があった点を以下の様に修正したところ、パルス出力を確認することが出来ました。
ご教示頂き、ありがとうございます。
/* PWM1 */
/*
* CON8_40: PWM1_OUT
*/
&iomuxc_lpsr {
x1_ext {
pinctrl_pwm1: pwm1grp {
fsl,pins = <
MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x04
>;
};
};
};
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
status = "okay";
};
また、不明点がありましたら質問させていただきたいと思いますので、今後ともよろしくお願いいたします。
以上よろしくお願いいたします。
at_mizo
2018年3月2日 9時56分
> DTSの表記について、何か間違っているところがあるのでしょうか?
> 間違っているとすれば、MX7D_PAD_GPIO1_IO01__PWM1_OUT と共に与えているパラメータかと思います。これに関して値の意味するところを調べたいのですが、何か資料があればご教示をお願い致します。
このパラメータは、bit[31-30]とbit[7-0]しか使われないのでおかしいと思い
ます。この設定だと5kΩ pull upされますが、波形が全く出ない程pull upが
強いかどうかは疑問です。
パラメータの意味については、以下の情報を参考にしてください。
https://users.atmark-techno.com/blog/53/2629