2021年10月20日水曜日

FM-7でFDX68を動作させてみました

 FM-7でFDX68が動作しました

知人からFDX68の基板と製作ガイドをいただいたので、FDX68シールドの製作・使用に挑戦してみました。

一年以上も前にいただいたものなのですが、私は普段はBeagleBoneBlackを使っており、そもそもRaspberry Piに触れたこともなかったので、まずRaspberry Piを入手してその使い方を覚えることから始めることになり、結構敷居が高くて動作させるまでに時間がかかりました。


組み立ててみたが動かない...

FDX68基板の組み立ては製作ガイドの通りに組み立てるだけなので、特に難しいところはなくすんなりと完成しました。(簡単な作業だったので気が緩んでいたのか、実はここにミスがありました...)


完成したFDX68


その裏面

完成させた基板を入手したばかりのFM77AV1に接続しても動作せず、そもそもRaspberry Piをいじったことがないので何が原因なのか見当もつかず、ほとんど放置状態でした。

しかし最近、ネットでのFDX68の記事を読んでいて、FM77AVでなくてもFM-7でも動作するのではないかと思い、これなら試してみやすいということで再挑戦してみることにしました。

Raspberry Piへのソフトの導入と設定については、【FDX68】初心者による初心向け導入解説(https://frogcube.net/2019/03/25/post-4253/)の説明が大変丁寧で、Raspberry Piの初心者にも分かりやすくて、特に迷うこともなくfdxイメージファイルの作成と0,1ドライブへの設定まで行うことができました。

私のFM-7には自作のFDCカード(FDC MB8877Aを搭載)を装着しているので、そのままFDX68カードと34Pフラットケーブルで接続しました。


Raspberry Pi 3Bに装着して

FM-7のFDCに接続


そして、改めてFM-7にfdx68を装着した状態でfdxイメージファイルを設定してみましたが動作しません。


ようやく原因判明

何回もRaspberry Piの設定を見直してみましたが間違いがありませんし、Raspberry Pi自身も手持ちの3Bと3B+の両方で試してみましたが、やはり動作しません。

思い余って、FDX68基板を下さった方に助けを求めて、fdxイメージファイルのサンプルを送っていただきましたが結果は同様でした。

これはもうFDX68基板自身に問題があるとしか考えられないということで、基板をよくよく見直してみましたら、何とICのピンが1本だけハンダ付けされていません。今までハンダ付け終了後は良く確認してきたつもりでしたが、もっと慎重にならなければダメですね。このハンダ付けを追加することで無事に動作しました。


使用感など

使用感ですが、Raspberry Piに電源を接続して起動し、SSH接続して0,1ドライブにfdxイメージファイルを設定する必要があるのはやや面倒ですが、それさえ済ませてしまえばあとは結構快適です。

また、コントローラモードもあって役に立ちそうです。今のところ使用してみたのはfddumpでFDデータを読み込み、fdxconvで読み込んだfdxイメージファイルをd88ファイルに変換することですが、WinSCPでそれをWindows側に簡単に持ってくることができました。

【注意】私のFM-7のFDCカードには直接FDDを接続できるのですが、メーカー製のFDDの場合にはドライブ本体中にあるFDCカードからFDDに接続されているケーブルを外して代わりにFDX68を接続することになります。FM-7に装着するインターフェースカードにはFDX68を直接接続することはできませんのでご注意ください。


発熱は大丈夫か?

使用していてちょっとだけ気がかりなのはRaspberry Piの発熱です。画像のようにFDX68をそのままコネクタに装着するとヒートシンクと集合抵抗がぶつかってしまいます。最初は間にコネクタを挟んで間隔を空けていたのですが、ネットで使用されている方々の画像を見ると皆さん直接装着されているようですので、私もそうしているのですが、集合抵抗の表側のICが結構熱くなっています。ということで、最初は3B+で使用していましたが多少は発熱の少ないと思われる3Bに変更していますが、ほとんど気休めです。


ヒートシンクと集合抵抗が接触している!

以上、考えてみれば当たり前なのですが、FM-7でも使えたという報告でした。

FDX68基板を下さった方、ネットで丁寧に使い方を解説してくださっている方々に感謝いたします。

秋月電子のP-ROMライターを復活させてみました

 今更ですが、秋月電子のP-ROMライターを復活させてみました。

部品を探していたら、秋月電子の古いROMライターが出てきたので動かしてみました。

かなり長い間使用していなかったせいか片面基板が反ってしまっていて、数か所の断線があり、その中には目視では分からないものもあったので修理には結構手間取りましたが、何とか動作させることができました。(やはり発熱の多い個所が傷みやすいようです。)


秋月電子 ROMライター


その裏面です。右上の配線は9ピンD-Subコネクタへの変更で、左側の配線はオプション基板のためのものです。左上の電源周りに三ヶ所の断線がありました。

その裏面


16Vの電源を接続して27C256に書き込みできることを確認しました。対象ROMは2764から27256までですが、書き込み電圧が21Vの2764や27128では25V程度の電源が必要なので書き込み確認はできませんでした。

2716や2732は対象外なのですが、それに書き込むための25V内蔵のアダプターを製作してありましたので、それを装着してみましたら無事に書き込むことができました。2716と2732の切り替えは右のプッシュスイッチで行います。


2716, 2732用のオプション基板



オプション基板の装着状態



オプション基板のアップ


使用したコントロールソフトですが、キットに付属していたMS-DOS版のものでは使いにくいのでWindows版のものを自作して使用していました(Visual C++ 2010で制作)。確かWindowsXPの頃に制作したものだと思いますので動作するか分かりませんでしたが、特に問題もなくWindows7でも10でも(どちらも64ビット版)動作しました。

せっかくですので他の自作ソフトと同様に、使用可能なCOMポートを検索して選択可能にすることと、ファイル選択をドラッグ&ドロップで行えるように改良してみました。


コントロールソフト AkiRomWriter.exe


このソフトを制作する際に参考にさせていただいた千々岩幸治さんの「秋月電子ROMライター制御用ソフトウェア」(この名称で検索すればヒットします)が今でもVectorで入手できますので、それを使用させていただけば良いのですが、自作すれば自分の使い易いように仕上げられるということで制作したものです。

今はメーカー製のROMライターを使用しているので特に出番は無いのですが、昔お世話になったものですので、動作する状態に復活させてみたという報告でした。


2021年10月2日土曜日

製作した基板3種の紹介

 今回製作した基板を紹介します

今回製作した基板は以下の3種です。

(1)32Pスロット拡張基板

(2)32Pスロット拡張基板をFM-7の50P拡張コネクタに接続するための変換基板

(3)TSOPの512KBのSRAMをDIP化する変換基板

(1)32Pスロット基板と(2)変換基板


(3)DIP化基板とSRAMを装着したもの

(1)は手持ちの2種類(基板取り付け用とフラットケーブル接続用)の32Pコネクタ(メス)を活用するために製作したものですが、フラットケーブル用のコネクタのKiCad用のフットプリントをミスってしまい基板取り付け用コネクタしか装着できないという情けないものです。(フットプリントを作り直したので、再度製作の予定です。)

(2)は以前紹介した手配線による変換基板をプリント基板化したものですが、クロック発生回路を追加してあります。FM-7の32Pスロットには2.45MHzのクロックが出ているのに、50P拡張コネクタには出ていないため、互換性を確保するためです。(私の製作物の中ではRS-232Cカードがこのクロックを使用しています。)

回路はごく普通のもので、9.8MHzか4.9MHzの水晶を使えるようにしてあります。

変換基板の回路

(1)と(2)は画像のように2段重ねで使用できます。変換基板の中央のコネクタは以前紹介した拡張I/Oボードと拡張ROM/RAMボードを接続するためのものです。


完成した基板

残念ながら、予定していたフラットケーブル用の32Pコネクタが装着できず、基板用のコネクタももう手持ちがないので、以前製作した基板を使用しています...

2段重ねにした32Pスロット基板(旧)と変換基板


実際の使用形態です。
中央のフラットケーブルをFM-7に接続します。右は2段重ねにしたI/O拡張基板とROM/RAMボードです。その右に出ているケーブルはUSB-TTL変換ケーブルを介してWindowsに接続します。ちなみに32Pスロット基板に装着してあるのはFT-245高速通信ボードです。

実際の使用形態

(3)は以前入手してあったTSOPの512KBのSRAM(三菱M5M5408BTP)を使用するために製作したものですが、32PのDIPソケットに合わせるためにSRAM本体幅が10mm、足も含めて12mm幅のものしか対応できません。(三菱の他には日立にも適応するものがあるようです。)

細ピンヘッダを使用しているので、普通の32PのDIPソケット(平ピン、丸ピン)に装着できます。

【蛇足】こんな変換基板を100個も製作してしまったので、もし使ってみたいという方がおられましたら、郵送料のみでお送りしますのでメールにてご連絡ください。

また、32Pスロット拡張基板なども余分に製作してありますので同様にお送りできますが、残念ながら、富士通はもうFCN_360シリーズコネクタの製造を中止してしまいましたので、該当のコネクタはもう入手が困難で、役に立たない基板になってしまいました。

これからFM-7用の基板を作る際には、紹介しました(2)の変換基板の34Pフラットケーブル用コネクタ(34Pですが、ピン配置をFM-7の32Pスロットに合わせてあります)の先に接続する形のものになるのかなと思います。


紹介した6809/6800用クロス逆アセンブラの修正版

 6809/6800用クロス逆アセンブラを修正しました

9月1日のブログ「必要に迫られて自作したアセンブラ等のツールソフトの紹介」で紹介した自作ソフトの内のクロス逆アセンブラですが、不具合がありました。

公開したものより以前のバージョンでは、スキップ範囲で指定した部分が1バイトずつFCB疑似命令に置き換えられていたので、表示メッセージなどではそれを手作業でFCC疑似命令に置き換えていました。

例えば、スキップ範囲指定したデータが 36,38,30,39,53,59,53,54,45,4D や 0D,0A,04では
        FCB $36            FCB $0D
        FCB $38            FCB $0A
        FCB $30            FCB $04
        FCB $39
        FCB $53
        FCB $59
        FCB $53
        FCB $54
        FCB $45
        FCB $4D
となっていましたが、リストを見やすくするために、それを手作業で
        FCC /6809SYSTEM/ や FCB $0D,$0A,$04
と書き換えていました。

これを逆アセンブラ自身にさせたいということで、公開したものでは、スキップ範囲に指定したデータの先頭の値が$20~$7Fの表示可能データの場合にはFCC疑似命令に、それ以外の場合にはFCB疑似命令に置き換えるとともに複数バイト列を一つの疑似命令にまとめられるようにしました。

この置き換えが可能になるようにプログラムを書き換えたのですが、一つ忘れていたのは、結果として作成されるFCCやFCB疑似命令のオペランドの長さが不定であり、場合によってはかなり長くなることがあるということでした。特にFCB疑似命令の場合には1バイトのデータあたり4バイト必要になります。

ということで、公開したバージョンではスキップ範囲指定の範囲を大きくとりすぎるとオペランドを格納するための文字列変数のサイズを超えてしまってプログラムが落ちてしまいました。(動作テストではそれほど大きな範囲を指定していなかったので気づきませんでした... ちなみに、スキップ範囲指定は100個まで可能なので、細かく分ければこのバグを回避できます。)

今回公開する修正版では、スキップ範囲指定の入力時に長さをチェックして32バイトを超えた場合は32バイトに制限することにしました。


指定範囲が32バイトを超えている場合は


32バイトに縮小される


動作している様子を示します。FCC,FCB疑似命令のオペランドが複数バイトになっています。

まず6809版です。

6809版のLst


6800版も同様です。

6800版のLst


Asmリストはそのままアセンブラに入力することができます。画像は6800版の例ですが6809版も同様です。

6800版のAsmリスト

修正版をOneDriveに上げておきます。