Armadilloフォーラム

CON10でのPWM出力の設定について

fktakagi

2024年1月10日 10時34分

お世話になります。
armadillo-640のマルチプレクス表を確認したところcon10を使ってPWM信号の出力が出来るようでしたので、設定を変更したいのですが、at-dtwebの他に拡張インターフェース以外のデバイスツリーをカスタマイズするパッケージはありますでしょうか。
専用のパッケージがない場合は.dtsi形式のファイルを記述することになるかと思うのですが、可能でしたらサンプルを頂けないでしょうか。。

加えてになりますが、もしPWM信号をpython3で制御する方法などありましたら、そちらもお教え頂けますと幸いです。

コメント

佐藤です。

> at-dtwebの他に拡張インターフェース以外のデバイスツリーをカスタマイズするパッケージはありますでしょうか。
すいません、at-dtwebの他には提供しておりません。

> 専用のパッケージがない場合は.dtsi形式のファイルを記述することになるかと思うのですが、可能でしたらサンプルを頂けないでしょうか。。
例としまして、CON10の2番ピン(PWM8) を有効にする場合は以下のようになります。
arch/arm/boot/dts/armadillo-600-customize.dts に追記してビルドしてください。

&iomuxc {
	pinctrl_pwm8: pwm8grp {
		fsl,pins = <
			MX6UL_PAD_JTAG_TRST_B__PWM8_OUT	0x110b0 // CON10_2
		>;
	};
};
 
&pwm8 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm8>;
	status = "okay";
};

ビルド後、armadillo-600-customize.dtbo を armadillo へ書き込み
/boot/overlays.txt に armadillo-600-customize.dtbo を追記してください。

その後コンテナ内などで以下のようにすれば使用できるかと思います。

echo 0 > /sys/class/pwm/pwmchip1/export
echo 1000000000 > /sys/class/pwm/pwmchip1/pwm0/period
echo 500000000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle
echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable

> 加えてになりますが、もしPWM信号をpython3で制御する方法などありましたら、そちらもお教え頂けますと幸いです。
pythonプログラム内から /sys/class/pwm/pwmchip1/pwm0/period 等を操作することになると思います。

佐藤様

遅くなりましたが、いただいた例のとおり現在の.dtsファイルに追記した後、
pythonからクラス内のpwmに対して出力の有効化が確認できました。

ご回答いただきありがとうございました。