前回の続き&完成編です。前回はほんとにメモ書き程度だったので。
ほんで、Cortex-M3には外部バス機能としてFSMCがついてるわけです。これはちょっと特殊です。なぜなら、外部回路無しでメモリを増設できるからです。これのピン配置を理解するには少し大変ですが、一回理解すればとても便利です。
ってことで、まずはメモリ側のピン定義
[SRAM]:4Mbit=256kx16(16ビット接続)
A0-17(アドレス)
D0-15(データ)
CE(チップセレクト)
WE(ライトイネーブル)
OE(アウトプットイネーブル)
BHE(上位ビットセレクト、D8-15)
BLE(下位ビットセレクト、D0-7)
[NAND]
D0-7(データ:8ビット接続時)orD0-15(データ:16ビット接続時)
W(ライトイネーブル)
R(リ-ドイネーブル)
RB(レディー/ビジー)
E(チップセレクト)
CL(コマンドラッチアップ)
AL(アドレスラッチアップ)
FSMCとの接続
FSMC->メモリ(左SRAM,右NAND)
A0-17 -> A0-17(SRAMのみ)
D0-15 -> D0-15(共通)
NEx -> CE(SRAMのみ)
NCEx -> E(NANDのみ)
NWE -> WE,W
NOE -> OE,R
BHE -> NBL1(SRAMのみ)
BLE -> NBL0(SRAMのみ)
CLE(A16と同ピン) -> CL(NANDのみ)
ALE(A17と同ピン) -> AL(NANDのみ)
INTx,NWAIT(ピンヘッダで選択できるようにするorNWAITのみ接続) -> RB(NANDのみ)
これらのうち、NEx,INTx,NWAIT,NCxはプルアップしてください。また、100ピンパッケージと144ピンパッケージとで一部なくなってるピン(たとえば、INTは100ピンパッケージにはありません)がありますが、そこは使えないということです。
わかっていただけたでしょうか。もしわからなければ気軽に質問どうぞ。