junp
2017年3月16日 12時51分
Armadillo-X1拡張インターフェース(CON8)のGPIOを使おうと思ったのですが、
使い方がわからなかったので教えてください。
Armadillo-400シリーズと同じように/sys/class/gpioの中にGPIO9_1/のようなディレクトリが
あるかと思いましたが無いので、GPIOの使い方はArmadillo-400シリーズとは違うのでしょうか。
Armadillo-X1の製品マニュアルの「拡張インターフェースを使う」のところでは
I2C等を使うときにDevice Treeの変更が必要との記述がありますが、
GPIOを使うときにもDevice Treeの変更が必要なのでしょうか?
よろしくお願いします。
コメント
junp
at_mizo
溝渕です。
> > PAD設定(Pull-Up/Down等)の変更や、GPIO Inputとして利用する場合には変更
> > が必要です。Outputとして利用する場合には不要です。
上記、DeviceTreeの変更が必要か否かについて記載しました。
> gpioディレクトリのdirectionファイルに
> inを書きこめば入力として使用でき、
> outを書き込めば出力として使用できているようですが、
gpio sysfsの利用方法については上記ご認識で合っています。
> GPIO Inputとして利用する場合というのはそれとは違う利用方法なのでしょうか?
いえ。利用方法については違いません。DeviceTreeを変更しなければ、Input
については正しい値の取得ができないという意味で記載しました。
以上です。
at_mizo
2017年3月16日 13時02分
溝渕です。
> Armadillo-400シリーズと同じように/sys/class/gpioの中にGPIO9_1/のようなディレクトリが
> あるかと思いましたが無いので、GPIOの使い方はArmadillo-400シリーズとは違うのでしょうか。
Armadillo-400シリーズとの違いは、gpioをexportしているかどうか
(/sys/class/gpioの中にgpioディレクトリがあるかないか)です。
Armadillo-400シリーズでは、起動時に自動的にexportされていましたが、
Armadillo-X1ではされません。そのため、明示的にexportする必要があります。
gpioのexportは次のように行います。
[ax1]# echo [GPIO番号] > /sys/class/gpio/export
GPIO番号は次の式より導くことができます。
GPIOx_IOy -> (x - 1) * 32 + y
例えば、GPIO4_IO8(GON8 20ピン)の場合は、
(4 - 1) * 32 + 8 = 104
となります。
> Armadillo-X1の製品マニュアルの「拡張インターフェースを使う」のところでは
> I2C等を使うときにDevice Treeの変更が必要との記述がありますが、
> GPIOを使うときにもDevice Treeの変更が必要なのでしょうか?
PAD設定(Pull-Up/Down等)の変更や、GPIO Inputとして利用する場合には変更
が必要です。Outputとして利用する場合には不要です。
以上です。