エンジニアの電気屋さん

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

どうもミソジです。

今回は筆者が持っているラズベリーパイと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の理解が深まると思います。よろしければ皆様もアナライザを購入して確認してみてください

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


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通信ができます。





どうもミソジです。

今回は筆者が持っているラズベリーパイとSPIデバイスをつなげてSPIのCS,MOSI,MISO,SCLKの波形を見てみた」を紹介します

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

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

目次
1.ラズベリーパイとSPIデバイスをつなげてみる
2.アナライザを用意する
3.アナライザを使ってSPIの波形を確認する
4.CS,MOSI,MISO,SCLKを見てみる
5.まとめ・感想

1.ラズベリーパイとSPIデバイスをつなげてみる
まずはSPI通信環境をラズベリーパイを使って作っていきます。

ラズベリーパイでのSPIの動かし方は既に先人たちにより多くの記事がありますので省略したいと思います。

※「ラズベリーパイ SPI」とググれば多くの参考になる記事がありますので、そちらを参考にしてください

実際につなげた写真がこちらとなります。
「ラズベリーパイ」「AD変換素子+温度センサ」「アナライザ」を接続しています。(AD変換ICはMCP3008、温度センサはMCP9700を使用しています。)

sP_20180715_014939.jpg

sP_20180715_015018.jpg

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

AD変換ICと温度センサは下記のキットから使いました。





回路図的には下記の形になります。「3.3V」「GND」「CS」「MOSI」「MISO」「SCLK」をブレッドボードにジャンパー接続するだけで簡単にできます。

※ラズベリーパイのGPIOピン配置は新しい型に合わせています
※「CS」はアクティブローの意味で所々で「_N」を付けています
spi1.PNG

そしてラズベリーパイを設定・起動して無事SPI通信で温度センサの値を読み取れました
Pythonのプログラムで確認できました。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi@raspberrypi ~ $ cd python_apps/
pi@raspberrypi ~/python_apps $ cd spidev-spike/
pi@raspberrypi ~/python_apps/spidev-spike $ python spi_tmp36.py
adc  :      244 
volts:     0.79
temp :    28.71
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下記が結果の概要です。
①現在の温度を読み取り温度センサが0.79Vを出力する
②AD変換ICが0.79Vのアナログ値を読み取りデジタルの244と変換して出力する
③ラズベリーパイがデジタル244を読み取り換算して28.71℃と分かる
spi1.PNG

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

2.アナライザを用意する
SPIの波形を見たいと思いますが、今回は「CS」「MOSI」「MISO」「SCLK」を見ますのでアナライザを使って確認していきます。

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

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

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

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



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

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





「スポンサーリンク」


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

アナライザを「CS」「MOSI」「MISO」「SCLK」の箇所に接続してプログラムを実行しているときの波形を確認します。ジャンパー接続すればOKです
実際行ったときの写真が下記です
sP_20180715_015018.jpg 


そして実際にとれた波形の一部が下記です。無事「CS」「MOSI」「MISO」「SCLK」の波形を取れました。(しっかり見たい方は画像をクリックして拡大をお願いします)
 spi8.PNG

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

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

spi10.PNG

SPI解析まで含めると下記が結果となります。
spi6.PNG

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

4.CS,MOSI,MISO,SCLKを見てみる
①CS(Chip select)
まずCSに関してはSPIが通信する間はLow(1⇒0)になっており問題ありません
(本来は一つのSPIにデバイスを複数接続しているときに使う信号です) 
※デバイス側視点ではSS(Slave Select)と表記されているケースも多いです
spi6.PNG


②SCLK(Serial Clock)
今回のプログラムはネットから拾ってきており、特にクロックについては指定していなかったので実際どうなっていたかを現物確認します。

下記のように各データ幅8bit単位で適切なクロックが出ており、データシート通りの形となっており問題無しです。

※20180813時点のデータシートのリンク先はこちらから。「FIGURE 6-1: SPI Communication with the MCP3004/3008 using 8-bit segments」 の図が一番見やすいかと思います
spi6.PNG


今回のSPIクロックは約480KHzになっていることが下記の波形からも分かります。
(サンプリング含めてある程度適当に測定しましたので「約」となっています)
spi11.PNG


③MOSI,MISO
何の略後というと「MISO: Master In Slave Out」 「MOSI: Master Out Slave In」となっており名前の通りの信号となっています。今回はMasterがラズベリーパイで、SlaveがAD変換ICとなっています
spi1.PNG

実際どのようなデータを送っているかというと下記概要の①②③内容になります
※詳細のデータシートのリンク先はこちらから。「FIGURE 6-1: SPI Communication with the MCP3004/3008 using 8-bit segments」を参考にしてください)

今回は3つの8bitデータでMater・Slave間でSPI通信をしています。3つのブロック事に内容を説明していきます
spi6.PNG


最初に「1」ではSPI通信を始める合図をMater側からSlave側にMOSI信号を出しています
spi12.PNG


次に「2」でSlave側にAD変換ICの「何処のCH」「差動かシングル」とスレーブ側に読み取りたい情報をMaster側のラズベリーパイからMOSIで伝えます
spi13.PNG

最後に「3」でSlave側のAD変換ICから現在の読み取っている値「0xF4」をMater側のラズベリーパイにMISO信号で伝えます。これで完了です
spi14.PNG


そして今回読み取った値[0xF4]は16進数ですので10進数に直すと「244」となります
無事最初に伝えたAD変換ICの「adc:244」が無事読み取っていることが波形で確認できました
spi1.PNG

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

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

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

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

UART通信のシリアル波形をアナライザで解析してみた」
リンク先はこちらからです。よろしければこちらもご確認ください
sP_20180814_070631.jpg


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






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




AD変換ICと温度センサは下記のキットから使いました。



↑このページのトップヘ