2020-03-01
RAM4KBで動くIchigoJam。変数、配列、PCG領域を使っても、ROM化検討しても、どうしてもメモリが足りない時、どうするといいでしょう?

ひとまず、EEPROMを使ったIchigoROMや、ROMカセットを使うのがオススメです。ただ、EEPROMのデータシートを見ると、消去/書き込みサイクル100万回と寿命があります。 ゲームなどで、拘束かつ頻繁な読み書きに使うにはちょっと心もとないかもしれません。

そんな時はSRAMを使いましょう、EPSON製の256kbit(32KB)の「SRAM 256K SRM2B256SLMX55」が、5コ200円、1コ50円で売っています。使い方は簡単、データシートを見ながら配線し、CS(chip select)をGNDにして、15bitでアドレス(A0-A14)と8biteでデータ(I/O1-8)を設定し、WE(write enable)をGNDで書き込みできます。読み込む時は、OE(output enable)をGNDでデータ(I/O1-8)に出力されます。


アドレス線はひとまず全部GNDにつないで、アドレス0。WEとOEをOUT1,2で制御。IN1にI/O1をつないで、1bitの書き込み、読み込みを実験しました。 ただ、32KB全部接続するには、IchigoJamではピン数が足りません。そんな時はI/Oエキスパンダ!I2Cを使ってI/O数を拡張できます。


MCP23017を使えば、16bitの入出力ができるようになります。VDD/VSSの電源は3.3VでOK。I2Cアドレス(A0-A2)を全部GNDにしたときのI2Cスレーブアドレスは32、SCL(SCKとデータシートに表記)とSDAをプルアップしてIchigoJamのSCL(EX1)とIN3に接続。次のプログラムでひとまず8bit出力実験。

10 IF POKE#700,1,0:?I2CW(32,#700,1,#701,1) STOP 20 FOR I=0 TO 255 30 POKE#700,#13,1:IF I2CW(32,#700,1,#701,1) STOP 40 WAIT 10 50 NEXT

10行でGPIAの8bitを出力に設定、30行で実際に出力!このI/Oエキスパンダを2つ使って、SRAMと配線すればできあがるはず!とわかったところで、回路図をUpverterで書きます。


EPSON SRAM 256K SRM2B256SLMX55 | Upverter
足りない部品はパーツ作成。(MCP23017はありました!)


回路をつないでいきます。・・・が、結構、配線が多くてなかなか大変。たかが16bitでこの調子です。Upverterに追加されたBUS機能を使って、なんとかコンパクトに収めてみたい。

配線作業が大変だなーと思ったら、手軽になった基板発注にチャレンジ!
10枚1600円送料込、モバイル対応IchigoJam用液晶シールドプリント基板、設計から発注まで1時間!

PCNこどもプロコン2020、3/29、最終表彰式、詳細発表!
PCNこどもプロコン2020 | PCN プログラミング クラブ ネットワーク
ゲスト審査員に、レジェンド、高橋名人と大橋編集長も!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS