エンジニアの電気屋さん

現役エンジニアが電気のトピックについて現物交えてご紹介します。

どうもミソジです。

今回は筆者が持っているラズベリーパイとUSB-SDデバイスをつなげてSDカードにアクセスするコマンド・波形を解析してみたが…」を紹介します

簡単にアナライザでSDカードでの波形を確認するまでの手順を紹介しています。
※ただし結果はアナライザのサンプリングが足りずに最後まで解析できなかった記事です

失敗の教訓という意味で「自分でSDカード・SDIO信号を色々解析してみたい!」という方におススメな記事となっています

過去記事の「I2CのACKとNACKの波形を見てみる」でI2Cでも同様に解析しましたので、I2Cのことも調べたいという方はこちらからどうぞ
sP_20180512_095551.jpg

目次
1.SDカードを解析できる環境を用意する(準備編)
2.SDカードを解析できる環境を用意する(改造編)
3.アナライザを用意する
4.アナライザを使ってSDの波形を解析する
5.SDを測定するのにサンプリングが足りなかった
6.少しだけでも解析してみる(mount,umount)
7.まとめ・感想

1.SDカードを解析できる環境を用意する(準備編)
まずはSDカードを解析する環境を用意していきます。

本来ラズベリーパイにはMicroSDかSDカードが挿せるようになっていますが、2個目のMicroSDかSDカードを直接動かせる信号は用意されていません。
※SPIモードでは可能ですが、通常のデータ線4本使うSDモードは用意されていません

※筆者のは古い型のためSDのIFとなっています
sP_20180818_222825.jpg

「ラズベリーパイでSDカードの波形を何としても測定したい・・・」という方は1つめのMicroSD,SDのIF箇所にはんだづけするのも手段としてはありますが、正直あまりしたくないんですよね…。

あと最新のMicroSDだとピッチが狭く、未経験の方は「はんだ付け」が難しいかと思います
sP_20180818_222825a.jpg

そのため今回は100均のUSB-SDカードリーダを使います!

(最近の100均はすごいです。USB-SDカードリーダまで100円で売っています。)
これならピッチ幅が広いSD_IFがありますし、はんだ付け失敗しても安心です。

sP_20180817_153253.jpg

いざ開封してみても形状はシンプルながらも、SD,MicroSD,MSなど様々なカードに対応してます
sP_20180817_153319.jpg

sP_20180817_153406.jpg

今回はSD_IFの波形を見るための改造をしたいですので分解します。
(プラスチックのカバー外すだけで簡単に分解できました。)
sP_20180817_153632.jpg

今回必要なのは基板です。基板にジャンパー接続して波形・タイミング測定できるようにします。

表面を見ますとSDカードコネクタ箇所があり、ピンも外に出ていますので比較的に楽にはんだ付けが可能です
sP_20180817_153719.jpg

sP_20180818_200241a.png

ちなみに裏面にUSB-SD_IF変換ICがありました。ただし表面モールドされていましたので何処のICかは不明でした。
sP_20180817_153708.jpg

次の章からは波形測定できるように基板を改造していきます


2.SDカードを解析できる環境を用意する(改造編)
まずはSDの波形を測定できるように信号線をジャンパー接続していきます。
「データ_D0~D3」「コマンド_CMD」「クロック_CLK」と最後に「グランド_GND」をジャンパー接続してあげましょう
sP_20180818_200241a.png

「半田ごて」と「はんだ」と「ジャンパー線」を用意します。SDの波形を測定できるように信号線をジャンパー接続していきます
sP_20180818_201554.jpg

筆者のはんだごてセットは下記の入門セットですが、これぐらいのジャンパー接続ならば特に不自由なく「はんだづけ」が可能です。



ジャンパー線に関しては、筆者は大量にあるブレッドボード用のジャンパーワイヤーをカットして繋げていきましたが特に指定はありません。
sP_20180819_165121.jpg

ワイヤーストリッパーで被膜を剥がしてあげましょう。簡単に剥がせます。
sP_20180823_041650.jpg
sP_20180823_041711.jpg

少し前の記事でワイヤーストリッパーの記事「徹底比較! ホーザン製とベッセル製ワイヤーストリッパーを使い比べてみた」も書きましたのでよろしければこちらもご確認ください



はんだづけ・改造した後は下記のようになります。はんだ付けが終わったらSDカードを挿します
sP_20180818_204518.jpg

最後にジャンパー線をブレッドボードに接続すれば完了です
これで無事SDカードから波形測定できるように改造が終了しました
sP_20180818_204505.jpg


3.アナライザを用意する
SDの波形を見たいと思いますが、今回は「データ_D0~D3」「コマンド_CMD」「クロック_CLK」を見ますのでアナライザを使って確認していきます。

最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。

筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。

(値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですのでマイコン初心者は少し難しいかもしれません)
sP_20171104_120005.jpg

本当にマイコン(サイプレス製CY7C68013A)が載っているだけのボードです。PCとUSB経由で接続して解析することができます。詳細は下記になります
MiniUSBケーブルとジャンパーワイヤは別で購入が必要です



但し数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。

PCとUSB接続してSD,I2C,UART,SPIなど多くの通信を解析できます。
USBケーブル、ジャンパーワイヤまで付いてきますので単に解析するだけならば筆者的には下記をおススメします





「スポンサーリンク」


4.アナライザを使ってSDの波形を確認する

アナライザを「データ_D0~D3」「コマンド_CMD」「クロック_CLK」の箇所に接続してプログラムを実行しているときの波形を確認します。ジャンパー接続すればOKです
実際行ったときの写真が下記です
sP_20180818_205255.jpg 


そして実際にとれた波形の一部が下記です。「D0~D3」「CLK」「CMD」の波形を取れました。(しっかり見たい方は画像をクリックして拡大をお願いします)

※CMDの表記がなくSS表記で使用しています
 SD1.png

これだけだと何のデータか分からないので解析の設定でSDを選択します
SD2.png

SDはデータ線が複数あるのでどの信号線で解析するか選択してあげます
SD3.png

これで、アナライザでSDの解析ができました。
下記のように各bit、データが視覚的に分かるようになります。

SD6.png

SD解析まで含めると下記が結果例となります。
SD7.png

では次の章から各信号とSD解析した結果が正しいのかを確認してきます

5.SDを測定するのにサンプリングが足りなかった
まずSDのCLKがどれぐらい出ているのかを確認しました
今回の100均のSDカードリーダライターが何処までのSD規格に対応しているかは不明のためです

規格が進むにつれ12.5MB/s,25MB/sと速くなっていき。最近の最新のUHS-?だと数百MB/sまでの速度があるようです

「今回の100均のSDリーダぐらいだったら何とか筆者が持っているアナライザでも測定できるかも・・・」と思いきや、結果は測定できていませんでした。m(_ _ )m

今回の測定器はサンプリングレートが最大12MHzでしたが・・・

SD10.png

それに対して波形を見てみると、サンプリングが12MHz上にあり、これではサンプリングが足りておらずNGです

SD8.png 

下記は先日I2C(100kbps)で1MHzのサンプリングで測定したものですが、1周期の間に10回ほどサンプリングできていて十分にサンプリングできています
SD9.png


今回のSDを測定する上でサンプリングが足りない件について少し下記2案を考えましたが、どちらもお手上げ状態となりました。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
①SDカードの周波数を落とす
 ⇒今回USB-SDリーダとなっており、どうやってUSBドライバ経由でSDの周波数を落とせばいいのか(そもそも出来るのかが)筆者の知識経験では「?」でした

②サンプリングレートを上げる
 ⇒現状筆者のプライベートの測定器ではこれ以上のものは無し。もし測定するならば下記のような100MHzぐらいは測定できるアナライザ必要そうです

(※6chでは50MHzのサンプリングになるようですので、これでも怪しいかもしれません)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


「スポンサーリンク」

6.少しだけでも解析してみる(mount,umount)
残念ながら今回の測定ではクロックがまともに取れていない以上、正しい波形でありません。

しかしせっかく測定したデータがありますので、少しだけでも確認できそうなデータを紹介していきます。

①mount
ラズベリーパイでSDをマウントするときに使うコマンドの「mount」の波形を見ていきます。
その時のコマンドは下記です。
~~~~~~~~~~~~~~~~~~~~~~
pi@raspberrypi:~$ sudo mount /dev/sda1 /media
~~~~~~~~~~~~~~~~~~~~~~

mountする前がデータ0~3がLowとなっており、mount後がHighとなっていることが分かります
SD11.png

②umount
次はラズベリーパイでSDをアンマウントするときに使うコマンドの「umount」の波形を見ていきます。
その時のコマンドは下記です。
~~~~~~~~~~~~~~~~~~~~~~
pi@raspberrypi:/home$ sudo umount /media
~~~~~~~~~~~~~~~~~~~~~~

先ほどとは逆にumountする前がデータ0~3がHighとなっており、umount後がLowとなっていることが分かります

SD12.png


7.まとめ・感想
残念ながら、今回はSDを正しく測定できず、満足いく解析ができませんでした。
やはり遊びに近いアナライザだとI2C,SPI,UART辺りが限界かなと言った感じです。

もしサンプリングがより良いアナライザが手に入ることがあればまた試してみたいとは思います

今日はここまでにしたいと思います
どうもありがとうございました


1000円足らずでアナライザが購入できます
HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]
HiLetgo






筆者のはんだごてセットは下記の入門セットですが、これぐらいのジャンパー接続ならば特に不自由なく「はんだづけ」が可能です。

どうもミソジです。

今回は筆者が持っているラズベリーパイとRS232Cを接続してRS232CとUARTの違いをアナライザで確認してみた」を紹介します

RS232CとUART通信の差を比較するまでの手順を紹介しています。

「自分でRS232Cを色々解析してみたい!」という方におススメな記事となっています

過去記事の「UART通信のシリアル波形をアナライザで解析してみた」でUARTでも同様に解析しました。

UARTのことも調べたいという方はこちらからどうぞ

sP_20180814_064517.jpg


目次
0.RS232CとUARTの違い
1.ラズベリーパイとRS232C接続をしてみる
2.アナライザを用意する
3.アナライザを使ってRS232Cの波形を確認する
4.RS232CとUARTの信号論理の違いを見てみる
5.余談_改造後のコンソール表示
6.まとめ・感想


0.RS232CとUARTの違い
RS232CとUARTの違いに関しては既にネットの先人たちが多くの記事を書いてくださっているので大分省略しますが、大きな違いとして2点あります。

①出力電圧レベルが異なる
RS232C ・・・出力電圧がH_+5V~+15V、L_-5V~-15V
UART ・・・出力電圧がH_2.8V~3.3V、L_0V~0.5V

※RS232C・UARTともにIC次第で電圧レベルが差がありますので詳細は使用するICのデータシートをご確認ください。上記はあくまで1例です。

②信号論理が逆
RS232C ・・・アクティブHi
UART ・・・アクティブLow

この違いを踏まえて記事を紹介していきます

1.ラズベリーパイとRS232C接続をしてみる
まずはRS232C通信環境をラズベリーパイを使って作っていきます。

ラズベリーパイとPCをRS232C接続はUARTと違いひと手間あります。電圧レベル・信号論理が異なるためインバータ(バッファ)を噛ます必要があります


実際につなげた写真がこちらとなります。
「ラズベリーパイ」「USB-RS232C変換モジュール」「インバータ(バッファ)」PCを接続しています。

sP_20180817_155735.jpg

インバータ(バッファ)はDIP形状のためブレッドボード上で接続をしています。
sP_20180817_170250.jpg

使用したICは「TC74HC4049AP」で汎用ICです電子部品パーツ店行けばどこにでも置いてあるようなインバータ(バッファ)です。

このICで電圧レベル・信号論理を変換します
sP_20180817_154212.jpg


USB-RS232C変換モジュールも一般的なものです。最近はAmazon経由で中国製品が安く買えるので助かっています。
sP_20180524_081741.jpg

コネクタになっているので、ピンに直接ジャンパー接続してあげましょう
sP_20180818_093942.jpg

筆者のは少し型が古いラズベリーパイですが、UART(RS232C)をつなぐのは新旧ともに簡単にできます。

USB-RS232C変換モジュールは下記製品を使っています。非常に安くても機能的に問題無しです

TC74HC4049APも調べたらAmazonで一応売っていましたが、すごく高かったので安い電子パーツ店での購入をおススメします(20180817時点)


概要の回路図的には下記の形になります。インバータバッファを噛まして「3,3V」「GND」「TX」「RX」繋げるだけです。

点線箇所のUSB-RS232C変換IC(PC)は必要箇所だけ切り取った概要のブロック図となっています。

筆者のイメージで記載しているので省略・実際の回路と違うことがあることはご了承ください。(20180817時点での参考データシートはこちらから)
RS232C1.PNG
※1_ラズベリーパイのGPIOピン配置は新しい型に合わせています
※2_GND配線が見やすさ優先したため実配線箇所と異なっています
※3_TXD,RXD配線名はPC側視点で書いています


そしてPCからコンソール接続するソフト「Tereterm」を起動していきます
UART11.PNG
※Teretermの詳細に関してはググってもらえればすぐダウンロードサイトが出てきますので省略します。ダウンロードすればすぐに使えます


下記がTeretermを動かした際の手順です。
①USB-RS232C変換モジュールをPCのUSBポートに挿す。ドライバが自動的にインストールされます

※今回のドライバはCH340というものでした

②最初の選択でシリアルを選択してUSB-RS232C変換のポートを選択します
RS232C3.PNG 
③設定⇒ボーレートで115200を選択します。
※ボーレートというのは通信速度のことでラズベリーパイのデフォルト設定は115200となっていると思います。
RS232C4.PNG

④「Enter」を押してみましょう。ログイン画面が出てきます(もし電源投入時は初期のカーネルログが出てくると思います。)これで無事RS232C経由でUART通信ができました。
RS232C5PNG.PNG

アナライザを使ってRS232Cの波形を次章から紹介してきたいと思います

「スポンサーリンク」

2.アナライザを用意する
今回はRS232Cの「TX」「RX」を見ますのでアナライザを使って確認していきます。

最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。

筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。

(値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですのでマイコン初心者は少し難しいかもしれません)
sP_20171104_120005.jpg

本当にマイコン(サイプレス製CY7C68013A)が載っているだけのボードです。PCとUSB経由で接続して解析することができます。詳細は下記になります
MiniUSBケーブルとジャンパーワイヤは別で購入が必要です



但し数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。

PCとUSB接続してI2C,UART,SPIなど多くの通信を解析できます。
USBケーブル、ジャンパーワイヤまで付いてきますので単に解析するだけならば筆者的には下記をおススメします




3.アナライザを使ってRS232Cの波形を確認する

アナライザにも配線する必要がありますので下記のようにブレッドボードで中継していきます
sP_20180817_160414.jpg

アナライザを使ってラズベリーパイ側の「TX」「RX」の箇所に接続します。
最初に説明したようにRS232Cだと電圧レベルがUARTと違いアナライザ側の定格超える恐れがあるためです。
RS232C6.PNG

そしてEnter押してラズベリーパイのログイン画面を表示した波形を確認します。
UART2.PNG

実際に回路図ベースでイメージすると下記のような手順になります

①USB-RS232C変換モジュール(PC)側から「Enter」のキー入力がラズベリーパイ側に送信されます

②ラズベリーパイ側からログイン画面の表示がUSB-RS232C変換モジュールに送信されます

RS232C6.PNG

そして実際にとれた波形の一部が下記です。無事「TX」「RX」の波形を取れました。(この波形では①②の全体波形を示しています)
※TX,RXは上記回路図の信号シンボル通りUSB-RS232C変換モジュール側の視点です
 RS232C7.PNG

これだけだと何のデータか分からないので前回同様解析の設定でUARTを選択します
正しい波形が取れていれば勝手に解析をしてくれます
UART13.PNG

これで、無事アナライザでUARTの解析ができました。
下記のように各bit、[Start bit][Stop bit]のデータが視覚的に分かるようになります。

UART16.PNG


今回はRS232CとUARTの信号論理が本当に逆になっているかを次の章から確認してみます

4.RS232CとUARTの信号論理の違いを見てみる
信号論理をアナライザで測定したいのですが、前章で記述したように電圧レベルが異なりRS232Cを直接アナライザで測定できません。
RS232C6.PNG
※マイナス電圧域を測定できるオシロがあれば測定可能ですが、筆者含めてプライベートでオシロを持っている方は非常に少ないと思いますので今回は別案でいきます

従来の「インバータバッファ」を「バッファ」に改造してラズベリーパイ側でRS232Cの信号論理をそのままで測定します
RS232C6.PNG

RS232C8.PNG

ブレッドボード上の使うICを変更します。型番一つ違いのICです。これも電子パーツ店で安く入手できます。同じDIPの形状ですので置き換えるだけで改造も簡単です。

従来_インバータバッファ TC74HC4049AP
改造_     バッファ TC74HC4050AP

sP_20180817_125633.jpg


では実際に従来(UART)改造(RS-232C)の波形を並べてみました。

枠で囲っているTXの波形の信号論理が逆になっていることを確認できています
RS232C14.PNG

これで実際に信号論理がUARTとRS232Cで逆になっていることが十分に確認できました


「スポンサーリンク」


5.余談_改造後のコンソール表示
半分余談になりますがせっかくなので、改造状態の場合Teretermのコンソール上ではどのように表示されるのかを確認してみます。

Enterを押すと改行されず「C」が返ってきます。
RS232C9.PNG

従来のUARTでのEnterの改行は「CR_0x0d」ですので逆値の[0xF2]になると思いきや全く異なる値になっています。このカラクリについて少し考えてみます

これは「信号論理が逆」「Start bitが送信と受信で2回ずれる」と、「ASCII文字が「0x7f」で終わっている」ことが影響していそうです。フローとしては下記流れだと思います
RS232C8.PNG

①USB-RS232C側から0x0d(CR)が送信される
 0x0d= [10110000]

②ラズベリ-パイ側が受け取る際に「信号論理が逆」+「Start bitがずれる」0x79として受信する
 0x79= [_10011110]

③ラズベリ-パイ側から0x79が送信される
 0x79= [_10011110]

④USB-RS232C側が受け取る際に「信号論理が逆」+「Start bitがずれる」0xC3として受信する
 0xC3= [__11000011]
   さらにASCII文字は基本0x7fまでしかないので一番上のbitは無視され0x43として判断する
 0x43= [__?1000011]
 

例えば①⇒②の「信号論理が逆」+「Start bitがずれる」イメージとしては先ほどの下記波形で見ると分かりやすいです
RS232C14.PNG

RS232Cをつなげる際は信号論理が逆になっていることを気にしないとデータが簡単に壊れてしまうので注意しましょう。

6.まとめ・感想
結局のところRS232CとUARTの違いとしては
「①電圧レベルが異なること」「②信号論理が逆なこと」がメインだと思います。

この2つを忘れて接続するとICが壊れたり、データが壊れたりするので(筆者含めて)忘れないようにしないといけませんね。


どうでしたでしょうか、最近では1000円足らずでRS232C・UARTを測定・解析することができます。
前回記事のUARTと同様にRS232Cでも波形解析を行うことが問題なく可能です。

データシート見て確認するのもいいですが、やはり実物の波形見ることでよりUART・RS232Cの理解が深まると思います。よろしければ皆様もアナライザを購入して確認してみてください

<<20180823追記>>
SDの「データ_D0~D3」「コマンド_CMD」「クロック_CLK」波形を見てみた記事をアップしました。(但しサンプリングが足りない結果となっています)

SDカードにアクセスするコマンド・波形を解析してみたが…」
リンク先はこちらからです。よろしければこちらもご確認ください
sP_20180818_205255.jpg


今日はここまでにしたいと思います
どうもありがとうございました


1000円足らずでアナライザが購入できます
HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]
HiLetgo






ラズベリーパイでUART(RS232C)をつなぐのは新旧ともに簡単にできます。

USB-RS232C変換モジュールは下記製品を使っています。非常に安くても機能的に問題無しです

TC74HC4049AP,TC74HC4050APも調べたらAmazonで一応売っていましたが、すごく高かったので安い電子パーツ店での購入をおススメします(20180817時点)

どうもミソジです。

今回は筆者が持っているラズベリーパイとPCをUART接続してUART通信のシリアル波形をアナライザで解析してみた」を紹介します

簡単にアナライザでUART通信でのを確認するまでの手順を紹介しています。
「自分でUARTを色々解析してみたい!」という方におススメな記事となっています

過去記事の「I2CのACKとNACKの波形を見てみる」でI2Cでも同様に解析しましたので、I2Cのことも調べたいという方はこちらからどうぞ
sP_20180512_095551.jpg

目次
1.ラズベリーパイとUART接続をしてみる
2.アナライザを用意する
3.アナライザを使ってUARTの波形を確認する
4.CR含めてデータを見てみる
5.まとめ・感想

1.ラズベリーパイとUART接続をしてみる
まずはUART通信環境をラズベリーパイを使って作っていきます。

ラズベリーパイとPCをUART接続の動かし方は何も設定しなくても可能です。非常に簡単です。

実際につなげた写真がこちらとなります。
「ラズベリーパイ」「UART-USB変換モジュール」PCを接続しています。

sP_20180814_064517.jpg

ラズベリーパイの接続も簡単で下記4本(5V,GND,TX,RX)をそのままピンに差し込むだけでUART接続が可能です

※赤_5Vに関してはラズベリーパイ側の電源を使うならば接続しなくても大丈夫です)
sP_20180814_113943.jpg



筆者のは少し型が古いラズベリーパイですが、UARTをつなぐのは新旧ともに簡単にできます。

URT-USB変換モジュールは下記製品を使っています。

回路図的には下記の形になります。「5V」「GND」「TX」「RX」繋げるだけです

点線箇所のUART-USB変換IC(PC)は必要箇所だけ切り取った概要のブロック図となっています。(20180814時点での参考データシートはこちらから)
UART10.PNG
※1_ラズベリーパイのGPIOピン配置は新しい型に合わせています
※2_GND配線が見やすさ優先したため実配線箇所と異なっています
※3_TXD,RXD配線名はPC側視点で書いています

そしてPCからコンソール接続するソフト「Tereterm」を起動していきます
UART11.PNG
※Teretermの詳細に関してはググってもらえればすぐダウンロードサイトが出てきますので省略します。ダウンロードすればすぐに使えます


下記がTeretermを動かした際の手順です。
①UART-USB変換モジュールをPCのUSBポートに挿す。ドライバが自動的にインストールされます

※WindowsのVerによっては手動でドライバをインストール必要があるようです。(筆者のは「7」です)ググれば直ぐに手順が分かる記事が沢山ありますので省略します
UART1.PNG
②最初の選択でシリアルを選択して、UART-USB変換のポートを選択します
 UART3.PNG
③設定⇒ボーレートで115200を選択します。
※ボーレートというのは通信速度のことでラズベリーパイのデフォルト設定は115200となっていると思います。
UART5.PNG

④「Enter」を押してみましょう。ログイン画面が出てきます(もし電源投入時は初期のカーネルログが出てくると思います。)これで無事UART通信ができました。
UART2.PNG

アナライザを使って④の箇所のUART波形を次章から紹介してきたいと思います

2.アナライザを用意する
今回はUARTの「TX」「RX」を見ますのでアナライザを使って確認していきます。

最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。

筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。

(値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですのでマイコン初心者は少し難しいかもしれません)
sP_20171104_120005.jpg

本当にマイコン(サイプレス製CY7C68013A)が載っているだけのボードです。PCとUSB経由で接続して解析することができます。詳細は下記になります
MiniUSBケーブルとジャンパーワイヤは別で購入が必要です



但し数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。

PCとUSB接続してI2C,UART,SPIなど多くの通信を解析できます。
USBケーブル、ジャンパーワイヤまで付いてきますので単に解析するだけならば筆者的には下記をおススメします





「スポンサーリンク」


3.アナライザを使ってUARTの波形を確認する

最初の配線より少し手間になりますがアナライザにも配線する必要がありますので下記のようにブレッドボードで中継していきます
sP_20180814_070631.jpg

アナライザを使って「TX」「RX」の箇所に接続します。そしてEnter押してラズベリーパイのログイン画面を表示した波形を確認します。
UART2.PNG

実際に回路図ベースでイメージすると下記のような手順になります

①URT-USB変換モジュール(PC)側から「Enter」のキー入力がラズベリーパイ側に送信されます

②ラズベリーパイ側からログイン画面の表示がUART-USB変換モジュールに送信されます

UART10.PNG

そして実際にとれた波形の一部が下記です。無事「TX」「RX」の波形を取れました。(この波形では①②の全体波形を示しています)
※TX,RXは上記回路図の信号シンボル通りUSB-UART変換モジュール側の視点です
 UART12.PNG

これだけだと何のデータか分からないので解析の設定でUARTを選択します
正しい波形が取れていれば勝手に解析をしてくれます
UART13.PNG

これで、無事アナライザでUARTの解析ができました。
下記のように各bit、[Start bit][Stop bit]のデータが視覚的に分かるようになります。

UART16.PNG

では次の章からUART解析した結果を詳細に確認してきます

4.CR含めてデータを見てみる
では今回のUART波形を詳細に見ていきたいと思いますが、今回はASCII文字コード表を見ながら確認していきます。

下記①②の送信内容はすべてASCII文字で明確にできます(ASCII文字とググればいろんなサイトが出てきます)

UART14.PNG

ではまず①から詳細に見ています

①「Enter」のキー入力

まず今回の設定「Enter」キー入力はASCII文字でいうと改行「CR」という意味で送信されています。

ASCII表をみると「CR」は16進表記で「0x0d」になっており、今回の波形でも「0x0d」=「CR」の信号がTXから送信されているので問題ありません。
UART16.PNG


①'「CR」+「LF」にするには
少し余談になりますが「「CR」に加えて「LF」も送りたい!」送りたい方がいればTertermの設定で変更できます。(「LF」についての詳細の説明は省略させてください)
UART8.PNG

例えば送信設定を「CR+LF」変更すると下記のように先ほど波形に加えて「0x0d」=「LF」が追加されてTXから送信されます
UART18.PNG

「スポンサーリンク」



②ログインの画面表示
①のキー入力が済んだあとに②のログイン画面が表示されますが、これを4段階に分けてみます
「②-1_改行する」
「②-2_「Rasp・・・」文字表示」
「②-3_2回改行する」
「②-4_「rasp・・・」文字表示」

UART2.PNG

波形のタイミングとしては下記になります。RXの信号を個別に見ていきます。

UART14.PNG


②-1_改行する
ラズベリ-パイ側から「CR」+「LF」の信号がUARTのRXを経由して出力されており問題無しです。

連続するデータだと各8bitおきに[Start bit]と[Stop bit]があることがよく分かります
UART19.PNG


②-2_「Rasp・・・」文字表示
改行された後はOS名の「Raspbian・・・」と表示されます。

UART波形を全部表示すると文字数分の8bitデータが並ぶ形になります。下記のように分かりづらいです
UART20.PNG

そのため最初の5文字だけをアップします
UART21.PNG

ラズベリーパイ側からUARTを通じて出力されたデータは[0x52][0x61][0x73][0x70][0x62]でASCIIの16進より文字に直すと[R][a][s][p][b]となります。

無事文字のデータが送られてきていることが解析できました


②-3_2回改行する
②-2で示したOS名の表示列の[・・・ttyAMA0]最後の[0x30_0]後に[0x0d_CR][0x0A_LF]の改行が2回連続でラズベリーパイから出力されています

UART22.PNG

②-4_2回改行する
2回改行の後はログインの「raspberry login:」が表示がされます。

下記の波形を確認するとASCII16進表示[72 61 73 70 62 65 72 72 79 70 69 20 6C 6F 67 69 6E 3A 20]ですので無事問題なく解析できています
UART23.PNG

5.まとめ・感想
どうでしたでしょうか、最近では1000円足らずでUARTを測定・解析することができます。
前回記事のI2C・SPIと同様にUARTでも波形解析を行うことが問題なく可能です。

データシート見て確認するのもいいですが、やはり実物の波形見ることでよりUARTの理解が深まると思います。よろしければ皆様もアナライザを購入して確認してみてください

今日はここまでにしたいと思います
どうもありがとうございました

<<20180818追記>>
UARTとは別にRS232CのTX,RX波形を見てみた記事をアップしました。

RS232CとUARTの違いをアナライザで確認してみた
リンク先はこちらからです。よろしければこちらもご確認ください
sP_20180817_160414.jpg


1000円足らずでアナライザが購入できます
HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]
HiLetgo






ラズベリーパイで簡単にSPI通信ができます。





↑このページのトップヘ