Raspberry Pi の GPIO でシリアル通信
GPIO に UART があるけど、デフォルトではシリアルコンソールとして使うことが想定されていて、カーネルメッセージとかが流れる。これを無効にして、普通のシリアルポートとして使う。
/etc/inittab を書きかえる。ttyAMA0 の行をコメントアウトする
#Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
/boot/cmdline.txt を書きかえる。デフォルトだと以下のようになっているので
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
- console=ttyAMA0,115200 を削除 (シリアルコンソールのオプション)
- kgdboc=ttyAMA0,115200 を削除 (カーネルデバッグ用のオプション ref. kgdboc
して以下のように
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
で reboot すると普通にユーザレベルで自由に使えるようになる。
3.3V なので、RS-232C レベルにするなら 3.3V でも使えるドライバICを使う必要がある。ICL3232 だと100円ぐらい。
回路
FET らへんは GPIO 25 (22pin) をオンにしているときだけスイッチを入れるための仕組みなので RS-232C のためには必須ではない (GND を普通に繋ぐだけ)
関連エントリー
- Rasberry Pi で使える2000円ぐらいのTFT液晶モジュール http://www.wvshare.com/product/3.2inch-RPi-LCD-B.htm これっぽいものを ebay から買...
- Raspberry Pi 3 で、シリアル経由でシェルを使うには 基本 Raspberry Pi 3 からはデフォルトで UART にシェル割当されなくなったので設定する必要がある。 sudo raspi-...
- Raspberry Pi 3 で自動ログイン systemd になって inittab が消滅したので途方にくれましたが以下のようにするとできました。 serial ログイン UART ...
- Node.js の fs モジュールだけで GPIO の割込みを扱うには? 以下のようにすれば動くことが確認できた。 select や poll を明示的に呼び出すことができないが、edge を設定しさえすれば fs...
- Ruby で sysfs 経由での GPIO 操作 GPIO の操作はいろいろやる方法があるみたいだけど、LL からだと sysfs への IO を行うのが一番簡単っぽい。以下のような感じでか...
