・2016/03/26
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 11 | Bullseye | 2021/08/14~ | 2021/11からラズパイにリリース | Focal Fossa 20.04 LTS ? |
Debian 10 | Buster | 2019/06/20~ | 2019/06からラズパイ4対応 | Bionic 18.04 LTS |
Debian 9 | Stretch | 2017/08/16~ | 2018/03からラズパイ3B+対応 | Xenial 16.04 LTS |
Debian 8 | Jessie | 2015~ | 2016/02からラズパイ3対応 | Trusty 14.04 LTS |
Debian 7 | Wheezy | 2013~2016 | | |
Debian 6.0 | Squeeze | 2011~2014 | | |
Debian GNU/Linux 5.0 | Lenny | 2009~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を有効にする Software Configuration Toolを起動する

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

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

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

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

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

・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を生かしつつシリアル通信を有効にする方法(コンソール通信でログイン可能)
ラズパイ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を使ってみる
Bluetooth Low Energyの SensorTagや iBeacon、CC Debuggerの使い方など
同様の製品は秋月やアマゾンでも購入できます。
※注意:注意点として 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の接続概念図
緑チーム = パソコン側
赤チーム = ラズパイ側
・ラズパイ3で UART通信をする為に、GPIO端子に線を接続する方法

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

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

●ラズパイ3で UART通信を用いてログイン及びコンソール操作ができる様になりました。
以上で、ラズパイ3で UART通信を用いてログイン及びコンソール操作ができる様になりました。めでたしです。
ttyAMA0と言うのは GPIO端子 GPIO14(TXD)と GPIO15(RXD)を使用した 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コンソール上で使用する各種コマンドまとめ
ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も
Tags: [Raspberry Pi], [電子工作]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
STM32 STM32F103C8T6の USB CDC Virtual COM portドライバを Windows 7に組み込む方法
Windows 7で VCPドライバを組み込む時に「INFファイルが無効です」の解決方法、COMポート増殖を防ぐ方法(増えすぎた COMポートを削除)
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ
Raspberry Pi関連はこちらへまとめました
下記以外にも多数のラズパイ関係の記事が有ります。
(I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102
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/