バナナパイゼロM2の「ドキュメント」は混乱しても楽しいです。目標:PWMが正しく機能するようにします。
そのため、インストールしてarmbian
USB OTGケーブルが来るまで1週間待ってから(デフォルトのSSHが失敗するため)、SSHを設定して次の手順に従いました。ここにあります。修正された配線pi --utilityをインストールしますgpio
。 L / H設定ピンが有効であることを確認できます。
次のステップは、PWMがどのように機能するかを確認することですので、ここから楽しみが始まります。ピンアウトはRaspberry Piと同じように見え、次のように主張します。
私は最後のRPI 0でボードを設計し、ピンGPIO 12(wiringPi 1)を使って次のようにしました。
# gpio mode 1 pwm
the pin you choose is not surport hardware PWM
you can select PA6 for PWM pin
or you can use it in softPwm mode
したがって、読んだように、これは「ウルトラ」ではなく、PA6を試してみる必要があります。
PA6が何であるかわからないので検索して発見しました。このトピックのトピック。
だから、次のように設定しました。
# gpio mode 7 pwm
you choose the hardware PWM:1
これは私がPWM:1を選択したことを意味します。 (1 on?)もちろん、デューティサイクルを設定してLEDが点灯するのを待っていましたが、前述のスレッドの紳士のように、次のような結果が得られました。
# gpio pwm 7 100
val pwmWrite 0 <= X <= 1024
Or you can set new range by yourself by pwmSetRange(range
入力したデューティサイクルの値によってエラーは変わりません。
私が見つけた次善策PWMオーバーレイを追加し、PWMを有効にし、期間とデューティサイクルを設定します。コマンドはエラーなく通過しましたが、LEDは点灯しません。制限の始まりで提案されているように、PWMラインはGPIO 15(UART_TXD)に接続されました。- そうなんですか? ?。
これは私のものです。armbianEnv.txt
# cat /boot/armbianEnv.txt
verbosity=1
bootlogo=false
console=both
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
rootdev=UUID=986b3dcb-01f8-4965-8a16-03b55c7341fd
rootfstype=ext4
overlays=i2c0 pwm w1-gpio
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
気づいたばかりで、i2c0
ユーティリティで追加できるのでw1-gpio
大丈夫でしょう。overlays
armbian-config
しかし、私に尋ねるなら:
root@bananapim2zero:~# ls /boot/dtb/ | grep pwm
root@bananapim2zero:~# ls /boot/dtb-6.1.11-sunxi/ | grep pwm
そのようなオーバーライドは表示されないのでわかりません。
最後に、すべての略語を理解したいと思いますPA
。GPIO ピン名はここにリストされています。CON2-
私の言葉は、そこにいくつかのロジックがあるようですが、なぜこれらの名前の前に2つの別々のテーブルがあり、2つの異なるGPIOCON3-
があるのかわかりません。P{0-24}
UARTとは何ですか、なぜセーター?
主に:PWMを操作する方法は? i2c と w1 がその後をきちんと追いついています。
私はその答えが、RPIの代替案を探すより多くの失われた魂にインスピレーションを与えると信じています。
ありがとうございます!
答え1
はい、わかりました。
昨夜遅く、私はGPIO 40ピンヘッダーの外側にベンダーからUARTというラベルが付けられた3つの個々のピンがあることに気づかなかった。
gpio
ユーティリティは次のいずれかを通知します。
ただし、これはビジュアルに過ぎず、PWM:7に設定したピンにはラベルが付けられていません。少なくとも出力にはありません。そしてそれはうまくいきません。だから葉巻はありません。私はそれがなぜ起こるのか知りたいです。なぜなら私が見ることができるからです。dev bontagoは、このボードの目的に合わせてこのユーティリティを特別に調整しました。。
ピンアウトの混乱を解消するために、カード側のRx UARTピンは、最初の図のようにPWMです。
ここでは、OSレベルでPWMを有効にして使用する方法を確認できます。
# activate the PWM. On H3 only 1 PWM is supported, so exporting PWM 0
echo 0 > /sys/class/pwm/pwmchip0/export
# set period to 10ms
echo 10000000 > /sys/class/pwm/pwmchip0/pwm0/period
# set normal polarity. needs to be reset explicitly. Bug?
echo "inversed" > /sys/class/pwm/pwmchip0/pwm0/polarity
echo "normal" > /sys/class/pwm/pwmchip0/pwm0/polarity
# enable the PWM
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
# set duty cycle to 1ms
echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
- はい、PWMは1から始まるので、それをエクスポートして「一般」極性を最初に設定してから、慣れた方法で実行できます。
# uname -a Linux bananapim2zero 6.1.11-sunxi #23.02.2 SMP Sat Feb 18 05:52:53 UTC 2023 armv7l GNU/Linux