パラレルEEPROMプログラマ(arduinoで使用)を作成してみた その2
arduinoでパラレルEEPROMリーダ・ライターもどきを作ってみた 前回(上のリンクから読めます)、ブレッドボード上で作成したEEPROMプログラマ。書き込みが不安定なのと、広範囲をリセットしたり、読み込みをするのによくトラブルが頻発しました。今回作ったのもところどころバグが発生してしまう(書き損じが起こる、途中で止まるなど)症状があるのですが、ブレッドボード上という不安定な環境からユニバーサル基板の上にきちんと組みなおし、本格的な使用用途に耐えられるようにしました。(しかしプログラムがまだ不完全で、大規模なデータ書き込みは非常に手間であります。どうしたものか・・・) 外見はこんな感じです。 一見シンプルで単純に見えます。確かに構造はびっくりするほどシンプルなので回路図を書かずとも作れるという。しかし相手はパラレル構造なので配線は地獄を見ます。 書き込みにはArduinoのシリアルモニターからコマンド入力で操作します。 ■単純につないではいけない?信号判定と電圧降下 また、今回整流ダイオードの代わりにLEDを使用したんです。そしたら動いてるところもばっちり見えて楽しいだろうなと考えまして。(誤作動していても目で見てわかりますし。) そしたら、「 電圧降下 」というものが発生することを初めて知りました。これ何なのかといいますと、ある一定のものを回路の間に挟むと その挟んだものの抵抗 によって電圧がどんどん下がるというもの。ケーブルもその仲間に入るので、取り回しを長くしてしまうとどんどん電圧が下がるわけですね。もちろんLEDだって抵抗はあるので、その現象はばっちり起こります。そのため最初LEDを間に挟んでROMから出力された信号を74HC165で受け取る際にトラブルが起こるわけです。今回のライターでROMからデータを出力すると、大体4V~3.6Vほどの電圧で出力されました。そこでもって74HC165のHIGHと判定する電圧の高さは3.4Vほど。あれ?クリアしてるじゃんと思うのですが、この二つの間にLEDを挟むと2.4Vまで電圧が下がるんですよ。そうなると165側ではLOWと判定されてしまいせっかくのHIGHやLOWの信号はすべてLOWと読み取られてしまうんですね。じゃあLEDをつなぐことはできないのかというとそうではなくて、真ん中に挟む