今回は簡単にアナライザでラズベリーパイ(raspberry pi)のUART通信のシリアル波形を確認するまでの手順を紹介していきます。
I2CやSPIも同様にアナライザで波形確認していますのでよろしければ下記記事もご覧ください。
ラズベリーパイ(raspberry pi)でUART通信する
まずはUART通信環境をラズベリーパイを使って作っていきます。今回の接続先はPCです。
ラズベリーパイとPC間のUART接続の動かし方は何も設定しなくても可能で非常に簡単です。
実際につなげた写真が下記となります。
ラズベリーパイとPCの接続には「UART-USB変換モジュール」を使っています。
ラズベリーパイの接続も簡単で下記4本(5V,GND,TX,RX)をそのままピンに差し込むだけでUART接続が可能です
※赤_5Vに関してはラズベリーパイ側の電源を使うならば接続しなくても大丈夫です)
筆者のは少し型が古いラズベリーパイですが、UARTをつなぐのは新旧ともに簡単にできます。
回路図的には下記の形になります。
「5V」「GND」「TX」「RX」繋げるだけです。
点線箇所のUART-USB変換IC(PC)は必要箇所だけ切り取った概要のブロック図となっています。(20180814時点での参考データシートはこちらから)
※1_ラズベリーパイのGPIOピン配置は新しい型に合わせています
※2_GND配線が見やすさ優先したため実配線箇所と異なっています
※3_TXD,RXD配線名はPC側視点で書いています。
TereTermを使ってPCからラズベリーパイにUART通信する
そしてPCからコンソール接続するソフトを起動していきます
※Teretermの詳細に関してはググってもらえればすぐダウンロードサイトが出てきますので省略します。ダウンロードすればすぐに使えます
Teretermを動かした手順
下記がTeretermを動かした際の手順です。
①UART-USB変換モジュールをPCのUSBポートに挿す。ドライバが自動的にインストールされます
※WindowsのVerによっては手動でドライバをインストール必要があるようです。(筆者のは「7」です)ググれば直ぐに手順が分かる記事が沢山ありますので省略します
②最初の選択でシリアルを選択して、UART-USB変換のポートを選択します
③設定⇒ボーレートで115200を選択します。
※ボーレートというのは通信速度のことでラズベリーパイのデフォルト設定は115200となっているはずです。
④「Enter」を押してみましょう。ログイン画面が出てきます(もし電源投入時は初期のカーネルログが出てくると思います。)これで無事UART通信ができました。
アナライザを使って④の箇所のUART波形を次章から紹介してきたいと思います
アナライザを用意する
今回はUARTの「TX」「RX」を見ますのでアナライザを使って確認していきます。
最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。
筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。
(※値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですのでマイコン初心者は少し難しいかもしれません)
本当にマイコン(サイプレス製CY7C68013A)が載っているだけのボードです。PCとUSB経由で接続して解析することができます。詳細は下記になります
MiniUSBケーブルとジャンパーワイヤは別で購入が必要です
但し数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。
PCとUSB接続してI2C,UART,SPIなど多くの通信を解析できます。
USBケーブル、ジャンパーワイヤまで付いてきますので単に解析するだけならば筆者的には下記をおススメします
アナライザを使ってUARTの波形を確認する
最初の配線より少し手間になりますがアナライザにも配線する必要がありますので下記のようにブレッドボードで中継していきます
アナライザを使って「TX」「RX」の箇所にジャンパー接続します。
そしてEnter押してラズベリーパイのログイン画面を表示した波形を確認していきます。
実際に回路図ベースでイメージすると下記のような手順になります
①URT-USB変換モジュール(PC)側から「Enter」のキー入力がラズベリーパイ側に送信されます
②ラズベリーパイ側からログイン画面の表示がUART-USB変換モジュールに送信されます
そして実際にとれた波形の一部が下記です。無事「TX」「RX」の波形を取れました。(この波形では①②の全体波形を示しています)
※TX,RXは上記回路図の信号シンボル通りUSB-UART変換モジュール側の視点です
これだけだと何のデータか分からないので解析の設定でUARTを選択します。正しい波形が取れていれば勝手に解析をしてくれます
これで、無事アナライザでUARTの解析ができました。下記のように各bit、[Start bit][Stop bit]のデータが視覚的に分かるようになります。
では次の章からUART解析した結果を詳細に確認してきます
ASCII文字の改行コードのCRからUARTを解析していく
では今回のUART波形を詳細に見ていきたいと思いますが、今回はASCII文字コード表を見ながら確認していきます。
下記①②の送信内容はすべてASCII文字で明確にできます(ASCII文字とググればいろんなサイトが出てきます)
ではまず①から詳細に見ています。まず今回の設定で「Enter」キー入力はASCII文字でいうと改行「CR」という意味で送信されています。
ASCII表をみると「CR」は16進表記で「0x0d」になっており、今回の波形でも「0x0d」=「CR」の信号がTXから送信されているので問題ありません。
「CR」+「LF」にしてUART波形を見てみた
少し余談になりますが「「CR」に加えて「LF」も送りたい!」という方がいればTertermの設定で変更できます。(「LF」についての詳細の説明は省略させてください)
例えば送信設定を「CR+LF」変更すると下記のように先ほど波形に加えて「0x0d」=「LF」が追加されてTXから送信されます
ラズベリーパイのログイン画面をUARTで解析する
②ログインの画面表示①のキー入力が済んだあとに②のログイン画面が表示されますが、これを4段階に分けてみます。
「②-1_改行する」「②-2_「Rasp・・・」文字表示」「②-3_2回改行する」「②-4_「rasp・・・」文字表示」
波形のタイミングとしては下記になります。RXの信号を個別に見ていきます。
②-1_改行のUART波形
ラズベリ-パイ側から「CR」+「LF」の信号がUARTのRXを経由して出力されており問題無しです。連続するデータだと各8bitおきに[Start bit]と[Stop bit]があることがよく分かります
②-2_「Rasp・・・」文字のUART波形
改行された後はOS名の「Raspbian・・・」と表示されます。UART波形を全部表示すると文字数分の8bitデータが並ぶ形になります。下記のように分かりづらいです
そのため最初の5文字だけをアップします
ラズベリーパイ側からUARTを通じて出力されたデータは[0x52][0x61][0x73][0x70][0x62]でASCIIの16進より文字に直すと[R][a][s][p][b]となります。
無事文字のデータが送られてきていることが解析できました
②-3_2回改行するのUART波形
②-2で示したOS名の表示列の[・・・ttyAMA0]の改行が2回連続でラズベリーパイから出力されています
②-4_「raspberry login:」の表示のUART波形
2回改行の後はログインの「raspberry login:」が表示がされます。下記の波形を確認するとASCII16進表示[72 61 73 70 62 65 72 72 79 70 69 20 6C 6F 67 69 6E 3A 20]ですので無事問題なく解析できています
まとめ・感想
どうでしたでしょうか、最近では1000円足らずでUARTを測定・解析することができます。前回記事のI2C・SPIと同様にUARTでも波形解析を行うことが問題なく可能です。
データシート見て確認するのもいいですが、やはり実物の波形見ることでよりUARTの理解が深まると思います。よろしければ皆様もアナライザを購入して確認してみてください。
また別記事にてUARTとは別にRS232CのTX,RX波形を見てみた下記記事をアップしています。よろしければこちらもご覧ください。
今日はここまでにしたいと思います。どうもありがとうございました
コメント