ガジェット 情報技術

PINE64のGPIOでLEDを点灯させる

PINE64のGPIO()でLEDを点灯させるための手順をまとめました。

Raspberry PIシリーズと同様にファイルシステムからの出力が可能です。
しかし、ファイルシステムのGPIOポートを特定するのは、いくつかの手順が必要です。

 

[ad#ad-1]

GPIOポートの特定

PINE64のRPI2互換ポートは、以下のピンアサインになっています。
http://files.pine64.org/doc/Pine%20A64%20Schematic/Pine%20A64%20Pin%20Assignment%20160119.pdfより抜粋

PINE64 RPI2互換ポート ピンアサイン

PINE64 RPI2互換ポート ピンアサイン

 

linux-sunxi.orgによれば、以下計算式でGPIOポートの特定が可能です。

(position of letter in alphabet - 1) * 32 + pin number

今回は、PI-2connectorのPIN11(GPIO PC7ポート)を使用します。
となると、GPIOポートの特定は、以下の通りとなります。

(3 - 1) * 32 + 7 =  71

Cは、アルファベット順で3番目です。
ピンナンバーは7なので、上の式で求められます。

GPIOポートの番号は、以下の通りになります。

GPIO-Ch RPI2 Connector GPIO-Ch
3.3V - 1 2 - 5V
PH3 227 3 4 - 5V
PH2 226 5 6 - GND
PL10 362 7 8 32 PB0
GND - 9 10 33 PB1
PC7 71 11 12 72 PC8
PH9 233 13 14 - GND
PC12 76 15 16 77 PC13
3.3V - 17 18 78 PC14
PC0 64 19 20 - GND
PC1 65 21 22 79 PC15
PC2 66 23 24 67 PC3
GND - 25 26 231 PH7
PL9 361 27 28 360 PL8
PH5 229 29 30 - GND
PH6 230 31 32 68 PC4
PC5 69 33 34 - GND
PC9 73 35 36 70 PC6
PC16 80 37 38 74 PC10
GND - 39 40 75 PC11

GPIOポートへのアクセス

シェル上でGPIOポートを出力させる方法

シェル上で以下の通りに入力します。

sudo -i
cd /sys/class/gpio
echo 71 > export
cd gpio71
echo "out" > direction
echo 1 > value

入力したコマンドの意味を順序ごとに示します。

・rootへ切り替え
・gpioへディレクトリ移動
・GPIOポート71を/sys/class/gpioへエクスポートする。
・gpio71へディレクトリ切り替え
・入出力方向を「出力」へ切り替え
・Hiレベルに設定

なお、Loレベルへの設定は、

echo 0 > value

です。

 

PINE64からLEDを点灯

PINE64からLEDを点灯

PINE64のGPIO PC7から、3.3Vで出力されますので、LEDを制限抵抗(このときは1Kohmを接続)をつけてGNDに接続します。
制限抵抗は必ず接続してください。
PINE64の定格を超えるとPINE64を破損する可能性があります。

出力電流の定格

GPIOの吐き出し電流出力は、最大で100mAです。

GND引き込める最大電流量は調べていません。Loサイドで設計されるなら確認を忘れないでくださいね。

GPIOポートの最大出力電流

GPIOポートの最大出力電流

 

GPIO 入力ポートのレベル取得方法

もし、入出力方向を入力にし、そのレベルを確認したい場合は以下のように入力します。

echo "in" > direction
cat value

 

結果は以下のように出力されます。

/sys/class/gpio/gpio71# cat value
1

 

シェルスクリプトでの活用方法

簡単ですが、以下のように記載すると、およそ1秒ごとにLEDが点滅することになります。

!/bin/sh
GPIO_PORT=/sys/class/gpio/gpio71
GPIO_VALUE=$GPIO_PORT/value

while true
do
        echo Turn on $GPIO_PORT
        echo 1 > $GPIO_VALUE
        sleep 1
        echo Turn off $GPIO_PORT
        echo 0 > $GPIO_VALUE
        sleep 1
done

情報元

GPIOポートの使用方法について

linux-sunxi.org
http://linux-sunxi.org/GPIO

 

PINE64ピンアサインについて

PINE64 WIKI
http://wiki.pine64.org

 

 

-ガジェット, 情報技術

© 2024 日々生活を楽しむ Powered by AFFINGER5