SPI通信とは|通信速度や波形・プロトコルをLAP-Cロジアナで見る

当サイトにはアフィリエイト広告が表示されます。

2019/08/15
G10で微少電流計を作るときに、SPIの確認に ZEROPLUSのロジック・アナライザ「LAP-C 16064」 を使った。
Windows10で動かなかったんで暫くほっといたんだけど(2012に購入)、この度無事にアップデート完了

興味があるところを読む

ICクリップ交換

交換した高級品のICクリップ。
金持ちは使い慣れたこれ・・・ヤフオクで1200円で落札(^^;
元のクリップに付いてたケーブルを短く切って、ヒシチューブでくっつけてる。

スポンサーリンク

SPIの設定方法

SPIでは、MOSI、MISO、SCLK、SS(_CS)を同時に見たいんだけど、そうするにはちょいコツが要る。
MOSI用にバスグループを一組(Bus1)、そしてMISO用にもバスグループを一組(Bus2)割り当てる。
最初の方法(その1)では、SCLKと_CSをソフト的に割り当て、次の方法(その2)ではICクリップを二重に接続して割り当ててる。
どちらの方法でもSCLKと_CSは共通で使う。

SPI(その1)

こちらを見てもらえば全部解決なんだけど、自分なりに整理しておきたいんで書いておこうと思う。
ソフトで二組のバスグループを作るときに難しいのが信号線の纏め方。

それぞれの信号線に名前を付ける。ここでは・・・
A0=SCLK、A1=_CS、A2=MOSI、A3=MISO
と信号名を変更した(信号名をシングルクリックすることで変更可)。

一組目のバスグループ(Bus1)を作る。
SCLK~MOSI迄の3本を選択しておいてバスにまとめる。
MISOは別のバスグループとしてまとめるので、ここでは選択しないこと。

まとまってグループ化されたら(Bus1)、グループ上で右クリックしてバス特性を設定する。

①SPIを選択しておいて
②パラメータを設定する。

_CSのトリガ条件を設定(左クリックで変化)する。
ここでは下向きエッジを指定している。

ここから二組目のバスグループ(Bus2)を作る。
MISOの上で右クリックして、新しいチャンネル/バスとして「A0」を追加する。
これでMISOの上側にA0=SCLKが追加される。
MISOの上で右クリックするのが大事。

MISOの上にA0(SCLKのこと)が追加されたら、続いてMISOの上で右クリックして、A1(_CSのこと)を追加する。

図左:MISOの上側にA0とA1が追加された。
図右:名前をA0=SCLK、A1=_CSに変更。

SCLK~MISO迄の3本を選択しておいてバスにまとめる。
まとまってグループ化されたら(Bus2)、グループ上で右クリックしてバス特性を設定する(上側のBus1グループと同じ)。

スポンサーリンク

SPI(その2)

ここでは別の方法でバスグループを二組作る。
SCLKと_CSにICクリップを二本ずつくっつける。
SCLKにA0とA3、_CSにA1とA4、MISOにA2、MOSIにはA5をくっつける。つまり全部で6本のICクリップをくっつける。

まず一組目のバスグループ(Bus1)を作る。
SPI(その1)と同じように、3本の信号線を選択しておいてバスにまとめる。
※ここでは信号線の名前を変更していません。

まとめたらバス特性を設定し

SPI(その1)と同じように設定(信号線名に注意)。

一組目のバスグループと同じようにA3~A5も設定したところ。
トリガ条件は一つだけしか設定できないので、ここではA1のトリガを使っている。

以上で信号線の設定は終わり。
最後にデータ圧縮を指定しておく。

RUNしてるところ。
①がRUNボタン、その隣は連続RUN。
②はトリガ開始位置の指定で、10%ならメモリーの10%位置でトリガする(トリガ前を見たいときに指定)。
③はグラフの時間巾。
④はサンプリング速度。
⑤はグラフ上に表示する値の設定。時間や周波数などを指定可能。
⑥のパケットリストの表示。表形式でパケットを見ることが出来る(表示のさせ方は下図を参照)。

⑥のパケットリストの表示のさせ方。

スポンサーリンク

プロトコル・アナライザ・トリガの設定

別売のプロトコル・アナライザ・トリガを持ってるんでこれの設定方法。
このトリガを使うと、例えばI2CならSTART, STOP, READ, ACK, DATAなどで、またUARTならSTART, DATA, ODD, EVENなどで、SPIなら指定DATAでトリガをかけられる(下図の”パケット選択”部分に指定可能なトリガの候補が出てくる)。

既に登録済みなので出てないけど、登録画面でシリアルナンバーを入れればOKです。

スポンサーリンク

SPI動作をCとアセンブラで書く

こちらにC言語版とアセンブラ版があります。
どちらもプログラムでポートをパタパタさせてSPI通信しています。

スポンサーリンク
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


興味があるところを読む