EA機能 / パラレルフラッシュメモリ

パラレルFLASHROMを例に、更に実践的コマンドを説明します
・ウエイト指定で処理を待たせる

パラレルのFLASHROMを例にします。(AT28C256:アトメル社)

信号名 内容 接続時のの補足
D[7..0] データバス  
/CS チップセレクト プルアップ2KΩ(本機は未RUN時HIZなため)
/WE ライトイネーブル プルアップ2KΩ(本機は未RUN時HIZなため)
/OE 出力イネーブル プルアップ2KΩ(本機は未RUN時HIZなため)
ADR[14..0] アドレスバス 下位8bitを使用し、以外はGND(実験用なので簡略)



FLASHROMに、a0 a1 をライトします

FLASHROMの書き込み完了を待つために、ウエイトコマンドで、この時のサンプリングCLK 100ns を20000h 倍 = 13ms をウエイト指示
(波形中に
20000 が表示されます。HEX形式)
13ms の間隔があることでFLASHROMはライトデータが確定します。

その後、ライトしたアドレスに対し、リードを実行
ライトされた、a0 a1 がリードできています。




ウエイトコマンド

ウエイト機能があると便利です。
FLASHROMは、ライト後、リード可になるまで、ms単位のウエイトが必要です。
一つのソーステキストにライトとそのリードを入れようとすると、ウエイト時間のためのアイドル処理を延々と入力しなければならず大変です。

ウエイトコマンドは、CLK数換算の数値をパラメータとして設定すると、その時間分、処理をウエイトします

以下の例で、説明します

ファイル名: AT28_W_R.txt
  //デモデータ FLASH WR -> RD
$LDFILE, dat_out.bin, 2    // バイナリファイルの登録 dat_out.bin の中には、a0,a1,a2,a3,a4,a5 のデータが格納されている。 2 = ロードする数
$SVFILE, dat_in.bin, 2, 0   // バイナリファイルの登録 dat_in.bin を作成する。  2 = セーブする数、 0 = CH番号(D[7..0])
$SET1, 15h           // 初期値の登録 = 15h

$Data
//ADR[7..0], OE, WE, CS, D[7..0]

//--- Write 1         1バイト目をライト
00h 1 1 1 00h *Z
00h 1 1 1 00h *Z

$LOAD, 0, 7
$INC1, 4, 7, 2

00h 1 1 1 00h
00h 1 1 0 00h
00h 1 0 0 00h
00h 1 0 0 00h
00h 1 0 0 00h
00h 1 1 0 00h
00h 1 1 1 00h
00h 1 1 1 00h *Z

//--- Write 2        2バイト目をライト
00h 1 1 1 00h *Z
00h 1 1 1 00h *Z

$LOAD, 0, 7
$INC1, 4, 7, 2

00h 1 1 1 00h
00h 1 1 0 00h
00h 1 0 0 00h
00h 1 0 0 00h
00h 1 0 0 00h
00h 1 1 0 00h
00h 1 1 1 00h
00h 1 1 1 00h *Z
00h 1 1 1 00h *Z

//--- WAIT

$WAIT,20000h       // ウエイトコマンド、20000h × 100ns = 13ms をウエイト指示
                // このウエイトで、FLASHROMのライトが確定します、デバイス仕様で10ms以上必要

00h 1 1 1 00h *Z     // ウエイトコマンドの直後の1行は、このようなアイドル処理している行を入れる
00h 1 1 1 00h *Z
00h 1 1 1 00h *Z

$SET1, 15h      // リードするため初期値の再登録 = 15h

//--- Read 1     1バイト目をリード

$INC1, 4, 7, 2
01h 1 1 1 00h *Z
01h 1 1 0 00h *Z
01h 0 1 0 00h *I
01h 0 1 0 00h *I
01h 0 1 0 00h *I
01h 1 1 0 00h *IF
01h 1 1 1 00h *Z
00h 1 1 1 00h *Z
00h 1 1 1 00h *Z

//--- Read 2     2バイト目をリード

$INC1, 4, 7, 2
01h 1 1 1 00h *Z
01h 1 1 0 00h *Z
01h 0 1 0 00h *I
01h 0 1 0 00h *I
01h 0 1 0 00h *I
01h 1 1 0 00h *IF
01h 1 1 1 00h *Z
00h 1 1 1 00h *Z
00h 1 1 1 00h *Z


$END
00h 1 1 1 FFh *Z




※当ロジックアナライザーは、デルタコア社オリジナル開発です。
記載されている各名称、製品名は、各社の商標、または、登録商標です。

Copyright (c)  デルタコア All Rights Reserved.