2018年10月15日月曜日

6809/6802両用基板が完成しました

6809/6802両用基板を修正しました


最初に製作した6809/6802両用基板は、9月15日の投稿で述べたように、修正箇所があったこととPIA(6821)を載せたかったので修正基板を製作しました。

これは最初に製作した基板ですが、

6809 / 6802 両用基板の第1作


このようにPIA(6821)を外付けすると修正基板と同機能となります。


6821を追加しました


ブレッドボード風に使用できるようにピンを立ててみました。

6821基板


これが修正基板です。

修正基板(6821を追加しました)



回路図を掲載します。
6809と6802の切り替え部を簡略化し、それに応じて不要になった74HC08を除き、空いたスペースを利用して68B21を追加しました。



修正基板の回路図


これで当初の目標であった、シングルボードコンピュータで6809用、6800用のFLEXを動作させることができるようになりました。

===== 一応の完成! =====

あと残っている課題ですが、FM77AV40SX上のFLEXを使っていた時には、起動時に、内蔵されているリアルタイムクロックから現在時刻を取得して起動時の日付の入力を自動化していましたので、同様なことができないだろうかと考え、arduinoなどで使われているRTC基板ZS-042と6821との間でI2C通信を試みているのですが、今のところうまくいっていません。
(2MHzのMPUではI2Cの推奨の最低値である100KHzはとても無理で50KHz程度の速度しか出ないようなのですが、これが原因ではないとは思いますが。。。)


RTCとの通信実験中


これができたら、基板の製作は一応打ち止めにして、あとはFLEX上のソフトを活用して、プログラムの制作に本腰を入れようかと思います。

実現したいものとしては、まずはツール類の充実と、あとは願望ですが、
 MC09の改造、6809用コンパイラの自作、OS-9Level1の移植
などがあるのですが、いずれも難度が高いものばかりですので、どうなりますやら。。。

(いずれにしても趣味の世界ですので、無駄な「タイヤの再発明」をモットーとしており、ツール類を始めとしてアセンブラや逆アセンブラ等もすべて自作したものを使用することにしていますので、言語類も自作したいのです。。。究極はOSの自作でしょうか。)

OS-9の移植ですが、手元にFM-7用Level1、FM77AV40用Level2のライセンスがあり、Level1の方は今は使用していないので、これを使えればと考えています。
(以前、FM77AV40上でOS-9用のROM,RAMディスクとWindows上の仮想ドライブを製作した経験がありますので、それを生かせれば何とかなるかなあ。。。)


6 件のコメント:

  1. 6809と6802のMPU切替、そしてPIA,PTMの実装と目標を達成したコンピュータが完成しましたね。
    私も、以前頂いた6802SBCの基板が無駄にならないように、早く完成させたいです^^

    返信削除
  2. コメントありがとうございます。今は、RTCと6821の間のI2C通信に四苦八苦しております。間にI2C機能を持ったマイコンなどを挟む形であれば、そう苦労することもないのでしょうが。。。もうしばらくこの形にこだわって頑張ってみるつもりです。
    かべきんさんのS1上のCP/Mボードの方は順調ですね。完成を楽しみにしております。

    返信削除
  3. 6821を使ったI2C通信期待しています^^
    PICやAVRもいいですが、ココは68系でI2Cが魅力です
    私のやっているS1用CP/Mの移植もかなりのスローペースですが少しずつ形が見えてきました。皆さんに協力頂きながら頑張ります(^^)

    返信削除
  4. 自分でも6809を使ったマイコンボードを自作しているのですが6809と6802を切り替えて使える設計に驚き、感銘を受けました。

    修正版の回路図を拝見したところ、6802への外部クロック供給する部分で、外部クロック源をそのまま6802に供給するのではなく、6809、6802それぞれのEクロック出力をXORして反転したものとNANDをとったものを供給しています。
    6809と6802それぞれのEクロックのタイミングがずれた場合の対策なのかな、というのが私の理解ではあるのですが、このような回路にした理由について、よろしければご教示いただけないでしょうか。

    返信削除
    返信
    1. コメントいただきましてありがとうございます。
      このクロック回路は6809と6802を動作中にソフトによって動的に切り替えるという目的のために、6802のEを6809に合わせるためのものです。具体的には、両CPUのEの位相が異なる場合、6802のクロックを間引くことで位相を一致させます。

      これは私のアイディアではなく、I/O誌の1981年11月号掲載の「6802&6809親子CPUシステムの製作」(磯貝信男著)から借用しています。
      自作6802システムに6809を追加したときに、ソフトで切り替えて連続動作させたいと思って採用しました。(一方のCPUで処理した結果をメモリ中に置き、それを他方のCPUでさらに処理するようなことを想定していました。)
      ソフト切り替えはうまく行かず、結局、スイッチによる切り替えにしたのですが、回路全体のEを統一できるというメリットもありますので、未だに使っているということです。

      該当のI/O誌は処分してしまいましたが、探しましたら記事のコピーが保存してありました。ずれているEの位相が一致していく様子や、ソフトによるCPUの切り替えの説明などが記載されております。もしご希望であれば、自己紹介の欄に私のメールアドレスが記載されておりますので、メールをいただければその記事をお送りできます。
      よろしくお願いいたします。

      削除
  5. 丁寧な説明を頂きありがとうございました。6809と6802のEのXORをとっているので、位相のずれと何か関係があるのだと思っていたのですが、なるほど、6802のEを6809のEに合わせるためだったのですね。

    そのほか、6809と6802と切り替えにかかわる部分、6809と6809Eの切り替えの回路など、勉強させていただきました。

    記事のコピーの件、お言葉に甘えさせていただき、のちほどメールをお送りするつもりでおります。よろしくお願いいたします。

    返信削除