投稿

1月, 2017の投稿を表示しています

Raspberry Pi 3 シリアルコンソール&シリアル通信

Raspberry Pi 3を購入しました。 Raspberry Pi は BとAと2を持っていたので、同様にシリアルケーブルをつないで、コンソールログインしようとしたら・・・ん??? なーんにもターミナルに表示されません。 世の中の人々に聞いて回ると・・・なんと!デフォルトではうまく接続できないとな!! しかも、いろいろ解決策があって、ゴチャゴチャしてます。 なので、私のRaspbian環境に合わせて、ここに記しておくことにします。 Raspbianは「2016-11-25-raspbian-jessie.img」を使っています。 まず、良くわからないことだらけなので、調べたことをまとめておきます。 ◆ Raspberry Pi 3 (RPi3) の UART(シリアル通信)について・・ 1. RPi3 では、 Bluetooth機能が加わった ため、その通信に従来のシリーズで利用していた URAT0(ttyAMA0)を割り当て た。 2. そのため、RPi3では シリアルコンソールがデフォルトで利用できなく なった。 3. また、RPi3には UART1(ttyS0)が加わった のだか、 UART1はソフトウェア制御 のため、 CPUのコアクロックに依存 してしまう。 4. RPiのコアクロックはデフォルトでは可変のため、CPUの負荷等で変化する。    それに依存している UART1 のボーレートも同様に変化してしまうため、通信が失敗する。 5. そこで、 解決方法が2つ ある。1つ目は Bluetoothを無効にしてしまう方法 、2つ目は CPUのコアクロックを固定してしまう方法 。 6. Bluetoothを利用しないなら1つ目の方法がよい。    両方利用したい場合は2つ目の方法になるが、コアクロックを固定するので、ちょっとだけパフォーマンス(性能)が落ちるらしい。 7. どちらのシリアル設定でも、GPIO14(TDX)とGPIO15(RDX)にシリアルポートはマッピングされる。 8. シリアル通信に使うデバイスファイルは    Bluetoothを無効にした場合:         /dev/serial0  -> /dev/ ttyAMA0         /de