|
//I2Cフラッシュメモリデモ AT24C02 : WR
$Data
// SDA, SCL
1 1
1 1
1 1
//=== Device ADR ===========================
1 1 //START
1 1
0 1
0 1
0 0
0 0
0 0 //Device ADR 101000
1 0 // 1 SDA変化位置はSCLのL側中間
1 1 // SCL変化単位1 H
1 1 // SCL変化単位2 H
1 0 // SCL変化単位3 L
0 0 // 0 SCL変化単位4 L
0 1
0 1
0 0
1 0 // 1
1 1
1 1
1 0
0 0 // 0
0 1
0 1
0 0
0 0 // 0
0 1
0 1
0 0
0 0 // 0
0 1
0 1
0 0
0 0 // 0
0 1
0 1
0 0
0 0 // WR
0 1
0 1
0 0 *I // ACK 入力
0 0 *I
0 1 *I
0 1 *I
0 0
0 0
//=== WORD ADR 00000000 =================
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0
0 0
0 1 // 0
0 1
0 0 *I // ACK 入力
0 0 *I
0 1 *I
0 1 *I
0 0
0 0
//=== WR DATA 01000010 ===================
//DATA
0 1 // 0
0 1
0 0
1 0 // 1
1 1
1 1
1 0
0 0 // 0
0 1
0 1
0 0
0 0 // 0
0 1
0 1
0 0
0 0 // 0
0 1
0 1
0 0
0 0 // 0
0 1
0 1
0 0
1 0 // 1
1 1
1 1
1 0
0 0 // 0
0 1
0 1
0 0 *I // ACK 入力
0 0 *I
0 1 *I
0 1 *I
0 0
0 0
//=======================================
0 1 //STOP
0 1
1 1
1 1
$END
1 1
|
|
|
ソースをテキストエディタで作成
プログラム不要、単に 1, 0 をベタ書きすればその通りに入出力できる
【概略】
SDA、SCL、を作成しています (20分程で作りました)
左のように横行が同期している1CLK分になります
1,0 を書いた行を並べていけばそのままのデータとして作成されます
// の後ろはコメントです。他にコマンドなど文法がありますがここでは説明を省きます
テキストエディタは使い慣れたものを自由に選択できます
テキストエディタは本アプリと同時に起動できます
テキストを修正したら、本アプリの画面中の、”Vie” ボタンをクリックすると即波形表示に反映されます
【形式イメージ】
HDLのシミュレーション用に良く使われる入力ファイルの形式をイメージして設計しました
シミュレーション用ファイルがあれば流用できるところもあると思います
【補足】
SCLのHLの変化単位を4行で作成しているのは、I2Cの規定で、SDA変化位置がSCLのL側中間とあるためです。それを守れば何行で作成しようと自由です
外部データの取り込み
シリアルデータパターンなどいちいち入力すると大変なので、外部バイナリファイルを登録して、順に取り出して自動パラシリ変換して挿入することもできます
|