前回はSBC6809に無理やり256kbit SRAMをつけたところまででした。あとで、I2CインターフェースICをつけようとしてたんですが、手配線がめんどくさいので、基板を起こしてみました。
表から見たところ。もともとのSBC6809にリスペクトを表し、極力変更無いようにしてみました。ただ、PCF8584P (I2C インターフェース)とNANDゲートを追加し、256kbit SRAMに交換しようとすると場所が不足で、仕方なく、追加の部品については、表面実装部品を使っています。
なんか半端な感じ。
裏、
256kbit SRAMが変なところに張り付いていますが、場所が足りない!
また、PCF8584PのRD- を配線するのを忘れていたことにFusion PCBに基板を発注した後に気が付いたので、いきなりジャンパーを飛ばす羽目に。
それから、CPUの制御信号(FIRQ-, NMI-, MRDY, HALT-, DMA-)には、配線を後からできるように、直接Vccにつながっていたのを裏面の抵抗でプルアップするように変更。6809E対応が簡単になるのと、Assist 09 対応もあとからやりやすい。
とりあえず、BASICでプログラムを書いて、I2Cの信号出力がなされるところまで動作確認で、力尽きました。BASICの文法をほとんど忘れているので、プログラミングが一向に進まない。
I2C接続のRTCや、EEPROMの読み書きしたりしたいけど、いつになることやら。
あと、PCF8584Pは、すでに廃番品種なので、ebayで調達してます。というわけで、I2Cインターフェースはもっと入手性の良いチップで作った方が良いんだけど。。。よく考えずにとりあえず突っ走る癖が相変わらず抜けないです。
補遺 18/4/8)
I2CのRTCモジュールを接続して、時刻を繰り返し読みだすプログラムをBASICで書いて動いたけど、PCF8584Pのチップのデータシートに書かれている通りの手順だとどうもうまくいかない。一体どこを勘違いしているのか?それともデータシートが間違えているのか?
問題なく動かせるようになったら、MicrosoftBASICにI2Cと通信する関数を追加したいと思っているところ。
BASICはサブルーチン内でローカル変数が使えないところがツライなあ。