ときのメモメモ
(1)まずは、GPIOピンを確認する
gpio readall
と、コンソールから入力し、 TxDとRxD(BCMの14と15、右上にある)
のモードを確認。ALT0のように、Aで始まる言葉ならOK。
IN や OUT なら、UART(シリアル)の設定が出来ていないので、
raspi-configでシリアルの設定をする。
方法については、
Rubyを使ってRaspberry Pi3でシリアル通信(UART通信)をする
http://mcommit.hatenadiary.com/entry/2016/09/08/231607
の「raspi-configによるSerialの有効化」を参照のこと
(Rubyでなくても、これをする)
(2)/boot/cmdline.txtを確認する。
上記ブログの「cmdline.txtの編集」を参照のこと
console=serial0,115200を削除する。
これがあると、コンソールの文字列が流れてくる。ぶつかったり、おかしい文字が取れるときもある
なお、上記(1)を行うと、一度、console=serial0,115200を削除しても、また書き込まれるので、再度確認し、削除すること。
(3)/dev/ttyAMA0でなく、/dev/ttyS0を使う※
sudo cu -l /dev/ttyAMA0 -s 57600
とかすると、
Connectedになるのに、文字入力すると、cu:Line disconnectedになる場合、
(ls /dev等で確認した結果)/dev/ttyS0があるのであれば
sudo cu -l /dev/ttyS0 -s 57600
を試してみる。/dev/ttyS0でないと通信できないことがある
※このほか
・ stty -F /dev/ttyS0 57600
とか、ボーレートを設定する必要があるかも?
・getty対策が必要という説もある。このとき
Raspberry Pi 2(Raspbian Jessie) のGPIOのシリアルポートを使う
http://nuneno.cocolog-nifty.com/blog/2016/01/rasppbbery-pi-2.html
にあるように/etc/inittabを開いて修正しようとすると、ファイルがありません
という場合
Raspberry PIのGPIO上シリアルとArduinoの通信
http://qiita.com/ryugyoku/items/bf5fd10512c84a55d030
のSTEP2(Raspbian Jessie)にあるかたちで、消すみたい
※(12月21日に追加)
この現象、もしかすると、/etc/udev/rules.d/80-serialnames.rules関連?
dialoutのグループにpiが属していないと、piからttyAMA0で送信できない
とか、あるのかなあ(なら、piをdialoutに入れればつながる?)
【参考】
Why it use TTYAMA0 instead of TTYS0
https://www.raspberrypi.org/forums/viewtopic.php?t=88899&p=626042
(1)まずは、GPIOピンを確認する
gpio readall
と、コンソールから入力し、 TxDとRxD(BCMの14と15、右上にある)
のモードを確認。ALT0のように、Aで始まる言葉ならOK。
IN や OUT なら、UART(シリアル)の設定が出来ていないので、
raspi-configでシリアルの設定をする。
方法については、
Rubyを使ってRaspberry Pi3でシリアル通信(UART通信)をする
http://mcommit.hatenadiary.com/entry/2016/09/08/231607
の「raspi-configによるSerialの有効化」を参照のこと
(Rubyでなくても、これをする)
(2)/boot/cmdline.txtを確認する。
上記ブログの「cmdline.txtの編集」を参照のこと
console=serial0,115200を削除する。
これがあると、コンソールの文字列が流れてくる。ぶつかったり、おかしい文字が取れるときもある
なお、上記(1)を行うと、一度、console=serial0,115200を削除しても、また書き込まれるので、再度確認し、削除すること。
(3)/dev/ttyAMA0でなく、/dev/ttyS0を使う※
sudo cu -l /dev/ttyAMA0 -s 57600
とかすると、
Connectedになるのに、文字入力すると、cu:Line disconnectedになる場合、
(ls /dev等で確認した結果)/dev/ttyS0があるのであれば
sudo cu -l /dev/ttyS0 -s 57600
を試してみる。/dev/ttyS0でないと通信できないことがある
※このほか
・ stty -F /dev/ttyS0 57600
とか、ボーレートを設定する必要があるかも?
・getty対策が必要という説もある。このとき
Raspberry Pi 2(Raspbian Jessie) のGPIOのシリアルポートを使う
http://nuneno.cocolog-nifty.com/blog/2016/01/rasppbbery-pi-2.html
にあるように/etc/inittabを開いて修正しようとすると、ファイルがありません
という場合
Raspberry PIのGPIO上シリアルとArduinoの通信
http://qiita.com/ryugyoku/items/bf5fd10512c84a55d030
のSTEP2(Raspbian Jessie)にあるかたちで、消すみたい
※(12月21日に追加)
この現象、もしかすると、/etc/udev/rules.d/80-serialnames.rules関連?
dialoutのグループにpiが属していないと、piからttyAMA0で送信できない
とか、あるのかなあ(なら、piをdialoutに入れればつながる?)
【参考】
Why it use TTYAMA0 instead of TTYS0
https://www.raspberrypi.org/forums/viewtopic.php?t=88899&p=626042