2023.1.3
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第145回]



●PICUSBIO−03(94)ICモード(16)スレーブモード(4)受信プログラムのロジアナ波形

前回実行しましたスレーブモード受信プログラム(マスターは送信プログラム)の実行中の波形をCPLDロジアナで観測しました。
下はその波形です。

STARTコンディションです。

PROBE0がSCLでPROBE1がSDAです。
STARTコンディションはSCLがHのときにSDAがHからLになります。
上の波形はちょうどSDAがHからLになったところからスタートしています。

最初のアドレス送信です。

7ビットのアドレスとR/Wビットが全て’0’です(ゼネラルコールアドレス。前回参照)。
9ビット目はスレーブから送出されたACKです。
スレーブの受信モードではACKはMSSPモジュールによって自動的に送出されます。

途中でSDAがLになっています。

最初のデータ(アドレス)の受信直後からクロックストレッチングが働いてSCLが強制的にLになっていると思います。
それがアドレスを受信してから9msec経って次の受信の準備ができたためCKPを’1’にしてSCLラインを開放したのがここだと思います。
SCLはずっとLなので境目はわかりませんがSCLが開放されたことでSDAラインの状態が変わったのではないかと思います(すべて推測ですけれど)。

最初のデータの送信です。

’01000001’($41)です。
9ビット目はスレーブから送出されたACKです。

また途中でSDAがLになっています。

今度はデータ($41)を受信してから13msec後です。
ここでSCLが開放されたのだと思います。

2番目のデータの送信です。

’01000010’($42)です。
9ビット目はスレーブから送出されたACKです。

また途中でSDAがLになっています。

データを受信してから14msec後です。
STOPコンディションを受信できるようにSCLラインを開放しています。

STOPコンディションです。

STOPコンディションはSCLがHのときにSDAがLからHになります。

PIC−USBIO using BASIC[第145回]
2023.1.3upload

前へ
次へ
ホームページトップへ戻る