HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2016/03/26

Raspberry Pi 3でシリアル通信で接続してコンソールにログインする方法 Raspberry Pi 3でシリアル通信で接続してコンソールにログインする方法

(ラズパイ3で UART通信を有効にするには既存のとは違う設定方法が必要です。)

Tags: [Raspberry Pi], [電子工作]





● Raspberry Pi 3 Model Bを遂に購入

 Raspberry Pi3 Model B RPI2 RPI3

 大人気の CPUボードの Raspberry Piに WiFiと Bluetoothが搭載されたモデルが新発売となりました。
 以前から Raspberry Pi 2を買おうかどうか迷っていましたが、Raspberry Pi 3 Model Bの発売を機に購入を決意してラズベリアンになる事にしました。

 ※ ラズパイの OS Raspbianはバージョンが上がる毎に過去の版と OSの内部の作りが変わり、過去に書かれた製作記事(例えば Raspbian Wheezyの時代の記事)がそのままではエラーが出たりして動かない事が有ります。
 ※ 当方のホームページのラズパイ記事は全て Raspberry Pi 3 Model Bと Raspbian Jessieの組み合わせで動作確認をしております。
(ただし、将来的に新しい Raspbian OSが出た場合に、当方の Raspbian Jessieを基にした内容がそのままでは動かない可能性が有ります。)
 ※ 2017/08/16から Raspbian OSは Raspbian Jessieから Raspbian Stretchに変わりました。
 ※ 2019/06/20から Raspbian OSは Raspbian Stretchから Raspbian Busterに変わりました。

Download Raspbian for Raspberry Pi

ちなみに、歴代のバージョンと名称は
Debianコードネーム年月備考(参考)Ubuntuでの該当名称
Debian 11Bullseye2021/08/14~2021/11からラズパイにリリースFocal Fossa 20.04 LTS ?
Debian 10Buster2019/06/20~2019/06からラズパイ4対応Bionic 18.04 LTS
Debian 9Stretch2017/08/16~2018/03からラズパイ3B+対応Xenial 16.04 LTS
Debian 8Jessie2015~2016/02からラズパイ3対応Trusty 14.04 LTS
Debian 7Wheezy2013~2016
Debian 6.0Squeeze2011~2014
Debian GNU/Linux 5.0Lenny2009~2012


● Raspberry Pi3の UART端子が使えない?

 Raspberry Pi3を適当にいじくっている過程で sudo raspi-configで色々な設定を変えられる事が分かりました。
 そこで、下記の手順で sudo raspi-configを実行して Software Configuration Toolを起動して Serialを Enableにして UART通信の実験をしようとしましたが、全く通信しませんでした。

・Raspberry Piで UARTを有効にする sudo raspi-config
Raspberry Piで UARTを有効にする sudo raspi-config


・Raspberry Piで UARTを有効にする Software Configuration Toolを起動する
Raspberry Piで UARTを有効にする Software Configuration Toolを起動する


・Raspberry Piで UARTを有効にする Advanced Optionsを選択する
Raspberry Piで UARTを有効にする Advanced Optionsを選択する


・Raspberry Piで UARTを有効にする Serialを選択する
Raspberry Piで UARTを有効にする Serialを選択する


・Raspberry Piで UARTを有効にする Yesを選択する
Raspberry Piで UARTを有効にする Yesを選択する


・Raspberry Piで UARTを有効にする Okを選択する
Raspberry Piで UARTを有効にする Okを選択する


・Raspberry Piで UARTを有効にする Finishを選択する
Raspberry Piで UARTを有効にする Finishを選択する


・Raspberry Piで UARTを有効にする Yesを選択して再起動する
Raspberry Piで UARTを有効にする Yesを選択して再起動する


Raspberry Pi3の場合、この方法では UARTが実質使えない。

● Raspberry Pi3の UART端子にシリアルアダプタを接続して UART通信をする方法

 そこでググッたら Raspberry Pi3で UARTが使えないとの同様の情報が沢山出てきました。

 Raspberry Pi3ではPI2時代に使用していた PL011と言う名称のシリアル通信機能を Bluetoothモジュールとの通信に割り当てており、代わりに mini UARTと言う名称のシリアル通信機能を割り当てています。(BCM2835 datasheet記載 One mini UART and one PL011 UART)
 この mini UARTのシリアル通信機能は CPUの動作周波数を元に通信速度(ボーレート)を生成しており、Raspberry Piでは負荷状況に応じて動作周波数が変化するので実質使い物になりません。

 と言う訳で、Raspberry Pi3の場合は通常の方法ではシリアル通信ができない事が分かりました。



●ラズパイの公式フォーラムでは既に 3月 1日の時点で UART動作の奇妙な点の報告が上がっています。

Tue Mar 01, 2016 1:50 pm - Raspberry Pi 3 login via UART on GPIO Baud Rates broken
 「いつもはシリアルコンソールの通信速度は 115200bpsで動作してます。 ~略~ 通信速度の設定値を 115200bpsにしているのに実際は 72000bpsで動作しているぞ!。9600bpsを設定すると 6002bpsで動いていて、それは 1.6倍遅い。」

Raspberry Pi 3 model B Serial console does not use correct baudrate #553

●ラズパイの公式フォーラムでの UART関係の投稿

Tue Mar 01, 2016 9:20 am - Raspberry Pi 3 - Bluetooth PL011 UART (9bit on mini-UART)?

Mon Mar 07, 2016 1:54 pm - Overlay to remap Pi 3 UART

Mon Mar 21, 2016 9:21 pm - Pi3 UART stopped working? Read this.
 「If you want to use the UART console during booting on a Pi3 then you need to add `enable_uart=1` to config.txt. Also, you can use the normal UART pins for other functions without pinctrl getting in the way.」
 「ブート時に UARTコンソールを使いたいなら enable_uart=1を config.txtに追加しろ。~略~ 以下 mini-UARTや PL011や core_freq コア周波数の固定等についての補足説明」
結果:駄目でした。(ボーレートが安定しない感じで実質使用できませんでした。)



●ラズパイ3で UART通信を安定して確実に使える様にする方法

 下記のページに書いてある方法を参考にして UARTが安定して確実に使えるようになり ラズパイ3の UARTが使えない問題が解決しました。
Raspberry Pi 3 Serial Port Usage
 「For Raspbian Jessie releases after 18th March 2016」を参考にした。

 なお、OSは Raspbian Jessie 2016/03/18版を使用しています。
RASPBIAN JESSIE Version:March 2016 Release date:2016-03-18

 Step1) SDカードに Raspbian Jessie 2016/03/18版を書き込む。
  ※ Windowsの場合は Win32DiskImagerを使用して imgファイルを SDカードに書き込む

 Step2) SDカードを一旦取り出し操作して、再度パソコンに差して認識させる

 Step3) SDカードのファイル config.txtの最後に dtoverlay=pi3-miniuart-btを追加する
※ラズパイ上では sudo nano /boot/config.txtで編集できる。

 Step4) SDカードをラズパイ3に差して起動する

 Step5) TeraTerm等の通信ソフトで COMポートを 115200bpsで開いてラズパイ3と通信を行なう。

 私の環境では下記の 2つの手順は不要でした。
[For Raspbian Jessie releases after 18th March 2016]
$ sudo raspi-config
 で、serialを enableにする。(上記の「Raspberry Pi3の UART端子が使えない?」で行なった操作)

[Enabling the Serial Console Rasbian Jessie after 18th March 2016 release]
$ sudo nano /boot/cmdline.txt
 で、内容を下記に変更
$ dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

 ※上記の dtoverlay=pi3-miniuart-btの方法でシリアル通信を有効にしている場合は、Bluetooth機能が使用している PL011をシリアルで使用する事になるのでオンボードの Bluetooth機能を使えなくなる。

 下記の方法であればシリアル通信と Bluetooth機能を両立できる。

2016/03/31
Raspberry Pi 3で Bluetoothを生かしつつシリアル通信を有効にする方法(コンソール通信でログイン可能)
Raspberry Pi 3で Bluetoothを生かしつつシリアル通信を有効にする方法(コンソール通信でログイン可能)

  ラズパイ3で Bluetoothと UART通信の両方を使える様にする設定方法のまとめ。


●ラズパイ3で UART通信をする為に、GPIO端子にジャンパー線を接続する方法

 USB to UARTアダプタを使用してラズパイ3とシリアル通信を行ないます。

 USB to UARTアダプタは TIの CC2540 BLEモジュールをタオバオ通販で購入する時に一緒に買った物を使用しました。(Silicon Labs CP2102を使用)


2014/08/01
TIの 8051マイコン内蔵の BLE CC2540/CC2541を使ってみる
TIの 8051マイコン内蔵の BLE CC2540/CC2541を使ってみる

  Bluetooth Low Energyの SensorTagや iBeacon、CC Debuggerの使い方など

 同様の製品は秋月やアマゾンでも購入できます。


Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル
ASIN: B00K7YYFNM

SODIAL(R)FT232RLモジュール5V 3.3V FTDI USB TTL変換アダプタレッド
ASIN: B00YMJVSIS
秋月電子通商
[AE-FT234X] 超小型USBシリアル変換モジュール

※注意:注意点として USBシリアル変換は出力が +3.3Vロジックレベルの物を使用してください。+5V出力や RS-232C出力の物は Raspberry Piにダメージを与えます。(最悪ラズパイを破壊する)
※出力が +3.3Vロジックレベルであれば、Silicon Labs CP2102、FTDI FT232R、Prolific PL2303等々の使用している USBシリアル変換 ICの種類は問いません。

 結線方法は下記の様に 3本使用してそれぞれ接続します。
 (1) USB to UARTアダプタの TXD(送信)を ラズパイの GPIOの RXD(受信)
 (2) USB to UARTアダプタの RXD(受信)を ラズパイの GPIOの TXD(送信)
 (3) USB to UARTアダプタの GNDを ラズパイの GPIOの GND
 VCCや +3.3V等は何も接続しません。(接続したら壊れるので駄目)
 (送信を相手の受信側に接続するのは意味が分かると思います。野球に例えるとピッチャー(送信)とキャッチャー(受信)の関係になります。ピッチャー(送信)同士を接続するとボールが衝突してしまい、キャッチャー(受信)同士だとボールを投げる人が居ません。)
・UARTシリアル通信の Txと Rxの接続概念図
UARTシリアル通信の Txと Rxの接続概念図
 緑チーム = パソコン側
 赤チーム = ラズパイ側

・ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法
ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法


・ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法
ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法


・ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法
ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法




●ラズパイ3で UART通信を用いてログイン及びコンソール操作ができる様になりました。

 以上で、ラズパイ3で UART通信を用いてログイン及びコンソール操作ができる様になりました。めでたしです。

 ttyAMA0と言うのは GPIO端子 GPIO14(TXD)と GPIO15(RXD)を使用した UARTを意味します。

・ラズパイ3で UART通信を用いてログイン及びコンソール操作する方法
ラズパイ3で UART通信を用いてログイン及びコンソール操作する方法


・ラズパイ3で UART通信を用いてログイン及びコンソール操作する方法
ラズパイ3で UART通信を用いてログイン及びコンソール操作する方法




● USBシリアル変換の Windows用のドライバ

 Prolific PL2303 UART Serial Windows Driver
Prolific PL2303 USB to UART/Serial Windows Driver Download
 PL2303_Prolific_DriverInstaller_v1.12.0.zip
 ※ Prolific PL2303の一部の型番は公式アナウンスで Windows 8/8.1/10をサポートしません。
NOTE:
Windows 8/8.1/10 are NOT supported in PL-2303HXA and PL-2303X EOL chip versions.
Run PL2303 CheckChipVersion tool program in Windows XP/Vista/7 to check chip version.
Windows XP, 2000, 98 and Windows ME driver technical support is discontinued.
Prolific recommends to use PL-2303HXD (HX Rev D) or PL2303TA chip.
 自己責任で "This Device cannot start (Code 10)"に対応するドライバ。
Prolific USB To Serial Driver Fix!
 本来、サポート外の Windows 8, Windows 8.1 and Windows 10でも古い PL2303が使える様になる。

 Silicon Labs CP2102 UART ブリッジ VCP ドライバ
Silicon Laboratories CP210x USB - UART ブリッジ VCP ドライバ
 CP210x_Windows_Drivers.zip

 FTDI FT232R Virtual COM Port Drivers WHQL Certified VCP
FTDI Virtual COM Port Drivers
 CDM v2.12.16 WHQL Certified.zip
 FTDI FT232H、FT2232H、FT4232H、FT2232D/C/L、FT232B等も使える。

 WCH CH340G CH341

WSH CH340G USB COM Port Drivers
 CH341SER.EXE 2016-09-28 V3.4
 WSH CH340G,CH340C,CH340B,CH340E,CH340T,CH340R,CH341A,CH341T,CH341H等も使える。
 Windows 10/8.1/8/7/VISTA/XP,SERVER 2016/2012/2008/2003,2000/ME/98
 Microsoftの WHQL認証済み。


●ラズパイ雑感

 ラズパイ3を購入するに当たって、予備知識をつけて置こうとして事前に色々な資料や情報を探したのですが、ちょっとした設定方法や TIPSもユーザー自身が思考錯誤して情報交換して共有していると言う感じで、公式からの正式なドキュメントで提供されている情報があまりにも貧弱、もしくは全くのブラックボックスの様に思います。

 今回の UART問題でも dtoverlay=pi3-miniuart-btなんて通常では絶対に分からない解決方法に思えます。公式からもアナウンスが無いし。



● Raspberry Piのコンソール上で使用する各種コマンド

 Raspberry Piのコンソール上で使用する各種コマンドは下記にまとめました。

2016/03/26
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も


Tags: [Raspberry Pi], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

STM32 STM32F103C8T6の USB CDC Virtual COM portドライバを Windows 7に組み込む方法
STM32 STM32F103C8T6の USB CDC Virtual COM portドライバを Windows 7に組み込む方法

  Windows 7で VCPドライバを組み込む時に「INFファイルが無効です」の解決方法、COMポート増殖を防ぐ方法(増えすぎた COMポートを削除)

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法

  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳

  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳

Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法

  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ


Raspberry Pi 3、シングルボードコンピュータ ラズパイ3 Raspberry Pi関連はこちらへまとめました
 下記以外にも多数のラズパイ関係の記事が有ります。
 (I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
Raspberry Pi 3に HDMI接続の 800x480 5インチ TFT液晶を接続して使用する方法
Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi 3の WiFiを広告ブロック機能付きの無線LANアクセスポイント化 hostapd + dnsmasq編
Raspberry Pi 3の Bluetoothで ブルテザで通信する方法(Bluetooth編)
Raspberry Pi 3で日本語音声を合成して喋らせる方法(OpenJTalk編)
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)
Raspberry Pi 3の GPIOに LEDとスイッチを接続して Lチカする方法
Raspberry Pi 3の GPIOに LEDとスイッチを接続してシャットダウンボタンを実装する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3の GPIOに I2C通信方式の気圧計 BMP280を接続する方法
Raspberry Pi 3に I2C通信方式の NFCリーダライタ PN532を接続して NFC FeliCaカードを読む方法
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 Motion編
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 MJPG-streamer編
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
Raspberry Pi3の X-Window Systemに Windowsのリモートデスクトップから接続する方法
Raspberry Pi3に WebRTCの STUN/TRUNサーバと PeerJSサーバをインストールする方法


Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2016 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_uart_tips/