AT91SAM7SE256実験ボードに搭載したSRAMとLCDの動作確認までできました。

SAM7SE256では外部メモリとしてCS0-CS7の空間が用意されており、それぞれにデバイスの種類に応じた動作やアクセスタイミングが設定できるようになっています。今回、外部メモリとして接続したいデバイスには次の3つがあります。
これら3つを、8つのアドレス空間のいずれかに配置するわけですが、NAND FLASHについてはCS3にしか置けないという制限があります。SRAMとLCDを配置する空間を決めるために、それぞれのCS信号が出力されるピンを確認してみると、いずれのCS信号も次のように出力ピンは1つしかないうえに機能が多重化されています。
NAND FLASH用のNCS3はD15と重なっているので、このCS信号は使えません。しょうがないので、NAND FLASHのアクセス時には空いているGPIOをソフトで制御してCS信号として使うことにします。NCS7は、NAND FLASHアクセスに必要なNANDCLE信号と重なっているので、これも使うことはできません。NCS0はCFRNWと重なっていますが、この信号はCompact FLASHの場合にだけ必要な信号なので、NCS0は利用可能。
残った5本のCS信号から、もうひとつ選択したいのですが、残りの信号はいずれもSSCまたはUSART1と重なってしまっています。どちらも後でW-SIMをつなぐのに使いたいデバイスです。CODECチップを使ってSSCは使わないことにしてしまおうかとも思いましたが、キャリア信号変化はCONNECT/DISCメッセージでソフト的に検出することもできますので、NCS1をを使うことにします。
結果として、NCS0をLCDアクセス、NCS1をSRAMアクセスに使用することにしましたが、デバイスとの競合による制約はけっこう厳しいなというのが感想です。
さて、これでLCDには16bitでアクセスできるようになりました。アドレスA2をRS信号として使い、コマンドの書き込みとデータの書き込みを区別させています。8bitの時の動作と比べてみると、20%~30%表示速度が向上したようです。

SAM7SE256では外部メモリとしてCS0-CS7の空間が用意されており、それぞれにデバイスの種類に応じた動作やアクセスタイミングが設定できるようになっています。今回、外部メモリとして接続したいデバイスには次の3つがあります。
- SRAM. 18bitアドレス、16bitデータ
- LCD. 1bitアドレス、16bitデータ
- NAND FLASH. 8bitデータ
これら3つを、8つのアドレス空間のいずれかに配置するわけですが、NAND FLASHについてはCS3にしか置けないという制限があります。SRAMとLCDを配置する空間を決めるために、それぞれのCS信号が出力されるピンを確認してみると、いずれのCS信号も次のように出力ピンは1つしかないうえに機能が多重化されています。
I/O Line | Peripheral A | Peripheral B |
---|---|---|
PA19 | RK | NCS4 |
PA20 | RF | NCS2 |
PA21 | RXD1 | NCS6 |
PA22 | TXD1 | NCS5 |
PA26 | DCD1 | NCS1 |
PC15 | D15 | NCS3 |
PC20 | NANDCLE | NCS7 |
PC23 | CFRNW | NCS0 |
NAND FLASH用のNCS3はD15と重なっているので、このCS信号は使えません。しょうがないので、NAND FLASHのアクセス時には空いているGPIOをソフトで制御してCS信号として使うことにします。NCS7は、NAND FLASHアクセスに必要なNANDCLE信号と重なっているので、これも使うことはできません。NCS0はCFRNWと重なっていますが、この信号はCompact FLASHの場合にだけ必要な信号なので、NCS0は利用可能。
残った5本のCS信号から、もうひとつ選択したいのですが、残りの信号はいずれもSSCまたはUSART1と重なってしまっています。どちらも後でW-SIMをつなぐのに使いたいデバイスです。CODECチップを使ってSSCは使わないことにしてしまおうかとも思いましたが、キャリア信号変化はCONNECT/DISCメッセージでソフト的に検出することもできますので、NCS1をを使うことにします。
結果として、NCS0をLCDアクセス、NCS1をSRAMアクセスに使用することにしましたが、デバイスとの競合による制約はけっこう厳しいなというのが感想です。
さて、これでLCDには16bitでアクセスできるようになりました。アドレスA2をRS信号として使い、コマンドの書き込みとデータの書き込みを区別させています。8bitの時の動作と比べてみると、20%~30%表示速度が向上したようです。