2007年12月21日金曜日

NetBSDでGPIOを使う(for ALIX) (4)

実はNetBSDでgpioを使おうと思ったのは今回が初めてだったので、どうやればアクセスできるのか?というあたりから調べないといけなかった。Unixということで、とりあえず man -k gpioなどと打ち込んでみると、

  • gpio (4) - General Porpose Input/Output
  • gpioctl (8) - control GPIO device
  • gpioow (4) - 1-Wire bus bit-banging through GPIO pin
が引っかかった。取り急ぎ動作確認のためのコマンドがほしかったのでgpioctlのmanを読んでみると、これでgpioの各pinの値を制御できるらしい。ALIX.2/3のマニュアルをみるとLED D1-3あたりがGPIOで制御されているとのこと。
LED2,3を操作して点灯すれば、GPIOはまあ動いていることにしても良いだろう、ということでやってみた。





# gpioctl
/dev/gpio0: 32pin
# gpioctl -d /dev/gpio0 25 0
pin 25: state 1 -> 0
# gpioctl -d /dev/gpio0 27 0
pin 27: state 1 -> 0

無事に両方ついてくれた。あとは、必要に応じてgpio(4)のAPIをつかって制御すれば動くだろう、ということで、GPIOサポートは一通り終了。本当はLPCポートに配線されているgpioポートを利用できるか?というあたりを試してみないといけないのだが、実際にgpioを使う気になるまでは放置しておくことにしよう。

0 件のコメント: