SRAMにDIPで直接データを書き込む装置をarduinoを使って作ってみた
今回も今回でスパゲッティ。 ちなみに横のZ80にはワイヤーが足りず繋げませんでした(´・ω・`) 先日、EEPROMにデータを書き込む装置をArduinoで作りましたが、まだROMをつないであれこれできるほどZ80について理解しているわけではありませんし、どんどんプログラムを書き込んでは実験して…というのを繰り返すにはあの装置は(主にワイヤーが邪魔で)非常に不便です。そんな時、SRAMに毎回DIPで書き込んでそのたびに実験するという装置をyoutubeで見かけたのでこれだと思い作ってみたのですが、思ったように書き込むまで手間取ったのでメモがてら装置について説明しようと思います。 ■SRAMに書き込む動作と読み出す動作 SRAMに書き込む動作はROMに比べれば非常にシンプルです。まず、今回使ったSRAMの TC55257DPL-85L のピン配列を見てみます。 DIPtypeのピン配列。 この中で動作切り替えに使うのはCE、OE、R/Wのたった3ピン。各ピンの機能は、 CE : SRAMを使用可能か否かを切り替える。 OE : SRAMからデータを読み出す R/W : 読み出し・書き出しをコントロールする。クロックに近い? といった感じになっています。ちなみにI/Oはデータバスで、Aがアドレスバスを指しています。+5V駆動なので、Arduinoの5Vピンにつなげば動かせるという手軽さ。ステキ! では、データを書き込むときにはこれらのピンをどういう風に動かせばいいかといいますと、 アドレスピンにアドレスデータを入力 OEピンはHIGH(動かさない)に CEピンをLOWにし、SRAMを起動する R/WをLOWにし、データを受け付ける状態に I/Oピンにデータを出力(ここでデータが書き込まれる) CEピンをHIGHにし、SRAMを止める R/WをHIGHに I/Oへのデータ出力をOFF アドレスピンへの出力をOFF といった手順で書き込めるようです。EEPROMと大きく違うところは、データを書き込んでいる間もアドレスバスからの出力をやめないというところでしょうか。 では、読み出しはどうするかというと アドレスピンにアドレスデータを出力 R/WピンをHIGHに CEピンを