ラズパイゼロを使って思ったのですが、、、
ラズパイゼロを使った装置(作品)を完成させて、いざ初回起動開始!のときに、「あれれ?うごかないぞ。。。」ってなった時や、「いままで動いてたのに急に動かなくなったぞ!?」って時に、無線LAN接続が使えればいいのですが、往々にして動かない時は、繋がらないもの。
なので、USBハブ+マウス+キーボード+HDMIモニタを接続して状況を確認・対処するということになるのですが、
それが自宅外とすると、そんなに機材を持ち歩くことは、しんどい!というか無理。
そこで、以前につい衝動買いで秋月で購入したUSB->RS232シリアル変換ケーブル「FTDI TTL-232R-3V3」(USB to TTL Serial Cable(3.3V)-1.8m)を使って、ラズパイとLinux(Debian)端末をシリアル接続する方法を以下に示す。
まずは、変換ケーブルの接続端子のピンアサインは、以下の通り。
黒=GND 黄=RXD 橙=TXD 赤=Vcc(+5V) 茶=CTS# 緑=RTS#
この内、接続に必要なものは、黒と黄と橙の3つ。
一方、ラズパイのシリアル接続用のGPIOのピン番号は、
8番(TXD)、10番(RXD)、14番または6番(GND)
私のラズパイは、6番ピンをクーラーファンに使用しているため、14番としました。
6番ピンを使えれば、縦3つで横並びとなるので、3端子のコネクタがあれば、
変換ケーブルに既存の6端子コネクタから、うまい具合に端子を抜き取って※移植すれば、
ハンダ付けや工具や端子を購入する必要もなくなるかと思います。
※端子の抜き取り方法は、千枚通しとかシャーペン(壊れてもよいもの。要領が解れば壊すこともない)を使って、
コネクタ側面の端子金具が見える窓(=金具の出っ張りを引っ掛けるところ)に上記の道具の先を押し付けながら、
ケーブル方向に押し出すと、金属端子ごときれいに抜けるので、3端子のコネクタにそのまま差し込めると思います。
変換ケーブルとGPIOの接続は、以下の通りクロス接続させます。 <変換ケーブル> | <GPIO> 黒(GND) <=> 14番または6番(GND) 黄(RXD) <=> 8番(TXD) 橙(TXD) <=> 10番(RXD)
次に、ラズパイの方は、
/boot/cmdline.txtをエディタで開き、下記の箇所を確認の上修正。
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
修正ないし確認した後、シリアルコンソール接続するため、ラズパイをシャットダウンしておく。
接続するDebian端末において、
変換ケーブルをUSBポートに接続させた後、コンソールプログラムを立ち上げて、以下のコマンドを実行し、変換ケーブルのデバイスファイルを確認する。
$> dmesg [201786.992092] usb 5-1: new full-speed USB device number 2 using uhci_hcd [201787.188131] usb 5-1: New USB device found, idVendor=0403, idProduct=6001 [201787.188142] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [201787.188150] usb 5-1: Product: TTL232R-3V3 [201787.188156] usb 5-1: Manufacturer: FTDI [201787.188162] usb 5-1: SerialNumber: FTA3BBZ5 [201788.243386] usbcore: registered new interface driver usbserial [201788.243444] usbcore: registered new interface driver usbserial_generic [201788.243491] usbserial: USB Serial support registered for generic [201788.247032] usbcore: registered new interface driver ftdi_sio [201788.247089] usbserial: USB Serial support registered for FTDI USB Serial Device [201788.247346] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected [201788.247458] usb 5-1: Detected FT232RL [201788.247465] usb 5-1: Number of endpoints 2 [201788.247472] usb 5-1: Endpoint 1 MaxPacketSize 64 [201788.247478] usb 5-1: Endpoint 2 MaxPacketSize 64 [201788.247484] usb 5-1: Setting MaxPacketSize 64 [201788.252298] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0 以上の出力結果から、変換ケーブルのデバイスファイルは、”/dev/ttyUSB0”
さらに、Debian端末にて、シリアルポートがサポートされたターミナルプログラム(cuなど)をインストールする。
シリアル通信するデバイスを接続後、シリアル通信プログラムを実行して、シリアル通信が可能かを確認する。
参考)以下、シリアル通信プログラムとして、”cu”を使用して通信を確認する場合
% sudo chmod 666 /dev/ttyUSB0
補足)ラズパイのGPIOのシリアルポートは、”/dev/ttyUSB0”である。
% sudo cu -s 115200 -l /dev/ttyUSB0
と入力する(ボーレートとデバイス名は、接続機器にあわせて指定のこと)。
上記コマンド実行後,/dev/ttyUSB0に接続が成功すると,
Connected.
が表示され、ラズパイ待ち状態になるので、ラズパイの電源をONする。
しばらくすると、ラズバイのOS起動時のコンソール出力が、Debian端末のシリアル通信プログラムのウィンドウに表示される。
pi@debian:~$ cu -s 115200 -l /dev/ttyUSB0 Connected. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.9.35+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1014 Fri Jun 30 14:34:49 BST 2017 [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] OF: fdt:Machine model: Raspberry Pi Model B Plus Rev 1.2 [ 0.000000] cma: Reserved 8 MiB at 0x17400000 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 97440 [ 0.000000] Kernel command line: bcm2708_fb.fbwidth=1360 bcm2708_fb.fbheight=768 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) ・・・・省略・・・・
ログインプロンプトが表示されるので、ラズパイのアカウント情報を入力してログインし、間違いなくシリアル接続したラズパイであることを確認する。
・・・・省略・・・・ b1/1-1/1-1.5/1-1.5:1.0/0003:093A:2521.0003/input/input2 [ 4.981346] hid-generic 0003:093A:2521.0003: input,hidraw2: USB HID v1.11 Mouse [USB OPTICAL MOUSE] on usb-20980000.usb-1.5/input0 [ 5.017712] fuse init (API version 7.26) [ 5.061482] i2c /dev entries driver Raspbian GNU/Linux 8 raspberrypi ttyAMA0 raspberrypi login: pi Password: Last login: Mon Oct 8 22:27:33 JST 2018 on tty1 Linux raspberrypi 4.9.35+ #1014 Fri Jun 30 14:34:49 BST 2017 armv6l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. pi@raspberrypi:~$
以上