ゲームコンソールにもなるROCK64だが、GPIOやSPIの信号を入出力するためのコネクタピンに
ハードロジックを接続してLinuxから制御したいと思っていたので、その検証をしてみることに。
まずはGPIOの制御方法だが、知りたい情報は下のサイトにほとんど書いてあった。
https://www.cnx-software.com/2017/08/07/rock64-board-review-part-2-quick-start-guide-with-ubuntu-16-04-3-mate-multimedia-features-some-benchmarks/
| コネクタ | ピン番号 | GPIO名称 |
| PI2 | 15 | GPIO3_A4 |
| PI2 | 16 | GPIO3_A5 |
| PI2 | 18 | GPIO3_A6 |
| PI2 | 22 | GPIO3_A7 |
仮に上の表のGPIOを出力制御をするとするなら、スクリプトで操作をまとめると以下のようになる。
試しにピンから信号を引き出してテスタで電圧を見たところ、いずれのピンもうまく動いているようなので
GPIOを動かすための手続きは比較的簡単であることがわかった。
# GPIO3_A4 OUTPUT echo 100 > /sys/class/gpio/export # GPIO NUM:32*3+8*0(A)+4=100 echo out > /sys/class/gpio/gpio100/direction # OUTPUT echo 1 > /sys/class/gpio/gpio100/value # OUT:High(3.3V) echo 0 > /sys/class/gpio/gpio100/value # OUT:Low(0.0V) # GPIO3_A5 OUTPUT echo 101 > /sys/class/gpio/export # GPIO NUM:32*3+8*0(A)+5=101 echo out > /sys/class/gpio/gpio101/direction # OUTPUT echo 1 > /sys/class/gpio/gpio101/value # OUT:High(3.3V) echo 0 > /sys/class/gpio/gpio101/value # OUT:Low(0.0V) # GPIO3_A6 OUTPUT echo 102 > /sys/class/gpio/export # GPIO NUM:32*3+8*0(A)+6=102 echo out > /sys/class/gpio/gpio102/direction # OUTPUT echo 1 > /sys/class/gpio/gpio102/value # OUT:High(3.3V) echo 0 > /sys/class/gpio/gpio102/value # OUT:Low(0.0V) # GPIO3_A7 OUTPUT echo 103 > /sys/class/gpio/export # GPIO NUM:32*3+8*0(A)+7=103 echo out > /sys/class/gpio/gpio103/direction # OUTPUT echo 1 > /sys/class/gpio/gpio103/value # OUT:High(3.3V) echo 0 > /sys/class/gpio/gpio103/value # OUT:Low(0.0V)
GPIOに加えSPIも使えるようにしておくと外部接続のペリフェラルをほとんどを操作することができるようになるので
次回はSPIの操作手続きを確認してみることにする。
