2022年6月22日水曜日

FPGAボードで6809を作ってNitros9を走らせてみました

安価なFPGAボードでOS-9互換と言われているNitros9を走らせてみました

FPGAで6809を作ってOS9を動かす」というサイトを見て、同じFPGAボードを入手してNitros9を走らせようとしてみました。

 目的は2つありまして、一つはOS-9互換と言われていますが、本当なのかどうかを所有しているOS-9Level1(FM-7用)とLevel2(FM77AV40用)と比較して確認してみたいことと、もう一つは普段使用している自作の6809/6802DualボードでNitros9を走らせたいので、その前準備のためということです。

入手したFPGAボードは下画像のものです。ALTERAのCyclone IIのEP2C5が載っています。他に購入したのは3.3Vで動作するSRAMのみで、あとは全て手持ちの部品で済ませました。


購入したFPGAカード

ネットの情報に従って、裏面のR1, R2, R9, R10は取り外してあります。

その裏面

基板も使いまわしなので余計な穴が開いていたりします...

3.3Vの512KB SRAMが載っていますが、もう一個載せられるようにスペースを空けてあります。


製作したボード

まず最初の試みとして慣れているFLEX9を動作させる方が簡単かと思って、同じ著者の「FPGAで6809を作ってFLEXを動かすぞ」という記事の通りにインストールしてみることにしましたが、うまくいきませんでした。

コンパイルはエラー無く終了し、書き込みも一瞬で無事に終了します。コンフィグROMへの書き込みもできましたが、RAMでもROMでも動作しないのです。

FPGAに書き込んだ6809がまず動作してメッセージが表示され、続いてSDカードに書き込んだFLEX9が読み込まれて走るはずですが、画面には何も表示されません。SDカードを読みに行く気配がないので、それ以前のFPGAに書き込んだプログラムの動作がダメなようです。

一部Verilogで書かれているので、VHDLならともかくVerilogの細かいところは良く分かりません。

これはあかんということで、FLEX9ではなくOS-9の方も試みたのですが、やはり画面には何も表示されず、SDカードを読みにいく以前の段階に問題があるという状態でした。


ハードが悪いのかそれともソフトのせいか

何しろ回路が手配線なのでハードのミスがあるかもしれず、悪いのは回路なのかFPGAデータなのか、それともSDカードに書き込んだファイルなのかが全く分からず、途方に暮れるばかりでした。

そんな時に「Multicomp Cyclone II-CでCP/Mが動いた」という記事を見つけました。これも同じFPGAボードを使用しており、かつSDカードに書き込むイメージファイルも既に用意されていましたので、FPGA用のプログラムをそのままコンパイルして書き込み、さらに用意されているイメージファイルをSDカードにそのまま書き込むことで、あっさりとCP/Mが動作しました。


Z80書き込み中


CP/M3.0起動直後


CP/M3.0動作中


ハードには問題がなかった

この結果、ハードには問題がないことが確認できましたので、あとはFPGAに書き込むプログラムとSDカードに書き込むイメージファイルの作成という事に注力することができます。

FLEXとOS-9を走らせる記事は、こうすればできますよという手順を詳細に解説したというものではなく、分かっている人には分かるという書き方ですので、私のような素人には引っかかる個所が多すぎます。

ということで、あちこちを修正しながらコンパイルして実行することを繰り返しましたが、やはりSDカードを読みに行く前段階の、FPGAに書き込んだプログラムが動作しない状態から脱却できません...(VHDファイルのセット、コンパイル、実行の手順を数百回も繰り返したおかげで、操作手順だけは目を瞑っていても出来るぐらいになってしまいました...)


オリジナルのファイルで動作させることができた

結局、ブログ中のファイルを諦めて、元々のファイルから始めることにしてGithubにある「nealcrook/multicomp6809」をダウンロードし、その中のMicrocomputerPCBフォルダ中のMicrocomputer.vhdから作成することにしました。これについても色々と試行錯誤をしましたが、何とか6809を立ち上げることができました。

これはシリアル出力に設定してコンパイルした場合の出力画面です。まずCamelForthが立ち上がり、Enterー>OK表示ー>NITROS9入力でNitros9が立ち上がり、日付の入力の後、dir /d0でドライブ0の内容が表示されています。


シリアル出力の場合

こちらはビデオ出力に設定してコンパイルした場合で、PS/2キーボードから操作できます。


ビデオ出力の場合

なお、シリアル出力とビデオ出力の切り替えですが、VHDファイルの該当部分を有効・無効化するだけではダメで、シリアル出力に設定した場合はブログの著者による数か所の変更が必要なようです。(元のmulticomp6809中のVHDファイルと比較すると変更部が分かります。)

SDカードに書き込むデータファイルですが、ブログに書かれていますようにLinux環境で行いましたが、書かれていますようにbin\create_sd_imageをそのまま実行してもエラーで止まってしまいますので、実行行を一行ずつ手作業で修正しながら行いました。どうも、著者はLinuxかMac環境のようで(ファイルの改行コードが0x0D,0x0Aでなく0x0Aになっていた)、それもあって私のWindows環境では難しかったのかもしれません。

蛇足ですが、FPGAは便利なものですね。コンパイルに1分程度かかりますが、その手間をかけるだけで同じボードがZ80や6809に変身するのですから。また、ROMに書き込めば電源スイッチONで即起動しますし。

しかし、一ヶ月以上の試行錯誤の結果として何とか動作したので良かったのですが、つくづく自分の知識の無さを痛感しました。未だに理解しきれていない部分が多いですし、おまけに、何故かQuartus IIの13.0sp1をLinuxにインストールできない状態が続いています。


この後は

この後は、まず手持ちのOS-9L1, L2とどの位の互換性があるのかを確認してみたいと思います。その次には、いよいよ自作のボードマイコンへのNitros9の移植に挑戦したいです。


2022年6月12日日曜日

SDカードを6809のアセンブラで読み書きしてみる

SDカードを6809のアセンブラを用いてSPIモードで読み書きしてみました


 以前からSDカードに興味がありましたが、難しそうで手を出せずにいました。昨年ですがSPIモードでセンサを読み書きしてみたところ、I2Cよりもかなり簡単だという印象を持ちました。

「6821PIAからアセンブラによるSPI通信でセンサーを制御する(2021年11月3日)」

その経験からSPIモードでのSDカードの読み書きなら割と簡単にできるのではないかと試してみることにしました。

参考にしたのは、いつもお世話になっている中日電工の菱田さんのブログの「[新連載]マイコン独立大作戦「SDカードインターフェースの製作」第1回~第32回」です。いつも貴重な情報をありがとうございます。

ということで、回路はブログ第8回の5V-3.3V変換部をそのまま使わせてもらい、元記事は82C55でコントロールしているのですが、私は6809/6802Dualマイコンに搭載している68B21を使用しました。


実験回路の画像と接続図を示します

画像左に立ててあるのが6809/6802Dualボードで68B21からフラットケーブルで実験回路に接続しています。


実験回路


ブロック図


68B21のポートAは出力モードのままで入力もできる便利な機能を持っているので、ポートAのみで入出力を行なっています。クロックSCKは1ビット出力のCA2を利用しています。このCA2によるクロックの周波数は私のプログラムではおよそ30.7KHzでした。

5V-3.3Vインターフェースはインバータひとつで構成しているために信号が反転してしまいますのでプログラムの方で考慮します。

秋月電子のSDカードモジュールは5V電源から3.3Vを生成するようになっていますので、インターフェース回路にその3.3Vも供給しています。


プログラム作成

プログラム作成ですが、Windows上で行いました。

Windows上のエディタ(私はEmEditorを使っています)でソースを作成し、それをWindows上で動作する自作の6809クロスアセンブラでアセンブルして、できたmotファイルを6809/6802DualボードのモニタのLコマンドで読み込んで実行します。

その手順を画像で紹介します。

エディタでプログラムリストを作成します。


エディタで作成中

できたプログラムをアセンブラに放り込んでアセンブルします。


アセンブル中

実行画面でLコマンドを用いてロードします。通常、このロードプログラムの画面は最初に起動するだけで操作する必要はありませんので閉じておきます。

ロードプログラム動作中

実行画面です。Lコマンドで読み込み、Gコマンドで実行します。

ロードして実行中

プログラムに修正の必要があれば、上記の手順を繰り返します。

実際にSDカードを読み書きできるようになるまでには結構はまってしまう個所もあり、中日電工さんのブログの他に、「えるむ by ChaN」さん、「SDカード」さんや「SDカードの操作」さんのブログなども参考にさせていただきました。ありがとうございます。

とりあえず完成したプログラムですが、SDカードとSDHCカードの両方が読み書きできるものとSDカードのみを読み書きするものの2本立てとしました。

目的としている6809/6802DualボードのFlex9に組み込むためには少しでも短いほうが良いので、SD専用とする予定ですが、折角ですのでSDHCカードも読み書きできることを確かめたという事です。

ここではSD、SDHCカード両用のプログラムのリストを紹介します。SDカード専用版との違いは初期化ルーチンとRead/Writeルーチンのセクタ番号の指定方法の違いのみで、特に初期化ルーチンはSD専用版に比べてかなり複雑です。


 


プログラムのメニュー部です。

1:Read Sct, 2:Write Sct, 3:Get SD data, 4:SD Init, 9:End:
メニューの1や2を選択するとセクタ番号を聞いてくるので、入力するとそのセクタの内容が読み込まれたり、そのセクタにバッファの内容が書き込まれます。
3でSDの情報を表示したりすることもできます。

モニタ中のサブルーチンとして INCHA, OUTCHA, PSTRNG を使用していますが、それ以外は特別なものはないので、6809機で6821さえあればSDカードが読み書きできることになります。

2022年5月18日水曜日

拡張ROM/RAMディスクボードと仮想ドライブ用のF-BASICドライバ

ROM/RAMディスクボード用の接続ケーブルを製作し、ドライバも改良しました 

今まで拡張ROM/RAMディスクボードを使用する際には、32P拡張スロット基板を経由して使用していました。



通常の接続形態

しかし、いつもいつも32P拡張スロットが必要なわけでもないので、拡張ROM/RAMディスク基板を直接FM-7や77に接続して使用しようと考えました。

そのために製作したのがこれらの接続ケーブルです。


製作したFM-7用、FM77AV2用のコネクタ


左のMILコネクタがFM-7用、右のアンフェノールコネクタがFM77AV2用で、このように接続して使用します。


FM-7に装着


FM77AV2に装着


これで拡張ROM/RAMディスク基板を直接本体に接続して使用できるようになりました。

ボード上のシリアルポートからTTL-USB変換ケーブルでWindowsPCに接続すれば、このボードのみでWindowsPC上の仮想ドライブも使用することができます。(もちろん、RS232CカードやFT245カードも使用できます。)ROM/RAMディスクと仮想ドライブの切り替えは専用ソフト RRWCHG で行います。RAMディスクを使用する際には、最初にフォーマットプログラム RAMFMTFB で初期化します。


RRWCHGによる切り替え


RAMFMTFBによる初期化


使用するドライバソフトですが、下図にありますように、今までに紹介したドライバソフトを改良したものを使用しています。




FM側のソフトが3つに分かれているのは、常駐部があるので少しでもサイズを小さくするためで、それぞれ専用ソフトになっています。なお、以前にも書きましたがFM側の常駐型のソフトの制作にあたっては、轍名聡氏による「裏RAMディスク」(Oh!FM誌1984年11月号)を参考にさせていただきました。感謝いたします。

WindowsPC側はいずれの場合も同じソフト FBasDrvWin.exe で、以前紹介しましたようにiniファイルでシリアル用とFT245用を切り替えます。


ROM/RAMディスクボードがない場合でも

また、上図で分かりますように、拡張ROM/RAMディスクボードがない場合でも、FM-7/77用のRS-232CカードかFT245カードのいずれかがあれば、FM側の WINDRVU7(またはRDSKWINF) とWindowsPC側の FBasDrvWin.exe をインストールすることでWindowsPC上の仮想ドライブを使用することができます。


FBasDrvWin画面(以前紹介したものです)


これらのソフトの中には以前と同じものもありますが、まとめてOneDriveに上げておきます。なお、FM側のソフトはバイナリだけでなくソースも含めてありますし、入力用の補助プログラムも用意してあります。




2022年5月11日水曜日

レトロエクスプレス6号で頒布した基板について

 4月29日の「レトロエクスプレス6号」で頒布した基板についての補足説明です


いずれもブログで公開しているものですが、説明が不充分な部分もありますので、ここで製作に関する注意点などの補足説明をします。


1. Z80H(韋駄天)基板

 「Z80カードの第4作は77AV用のZ80Hカード(韋駄天)(2020年12月19日)」でハードの説明をしています。この時の基板にはミスがありましたので、それを修正したものが今回頒布した新基板です。従って、配線の追加・修正などは不要ですが、新基板ではSRAMの向きがブログの画像とは逆になっていますので注意してください。

 「Z80H 韋駄天用のCP/Mをソースから構成する(2020年12月126日)」でCP/M本体の構成法を説明しています。Z80HのためのBIOS等は「6809活用研究」にIPL20, CONFIG, BIOS14, KER14 のソースが掲載されていますので、それを入力してアセンブルします。


2. FM-7拡張コネクタ変換基板と、3.32Pスロット拡張基板

「FM-7用の32Pスロット拡張基板の製作(第4作!)(2022年3月1日)」で紹介しているものです。画像では見にくいかもしれませんが、変換基板に装着するFM-7と接続する50Pケーブルと32Pスロットと接続する34Pケーブル用のコネクタはどちらも裏面から固定します。一方、32Pスロット拡張基板に固定する34Pケーブルのコネクタは表面から固定します。

32Pスロット拡張基板に装着する富士通のコネクタですがFCN-364J032または型番は分かりませんがフラットケーブル圧接用の32Pメスコネクタのどちらも適合するように2種類のパターンが用意してあります。

コネクタ変換基板上の回路は2.5MHzの発振回路ですが、RS232Cカードなどの2.5MHzクロック信号が必要とするカードを使用する場合は実装する必要があります。水晶発振器が9.8MHz、4.9MHz、2.45MHzのいずれも使用できるようにジャンパピンで切り替えられるようになっています。

残る50Pコネクタ用のパターンですが、FM77AV40のI/O拡張バスコネクタ用の機器を接続するためのものです。私はここに下記のI/O拡張基板とROM/RAMディスク基板を接続しています。この必要がなければコネクタを実装する必要はありません。実装する場合は、これも裏面から固定します。


4.  FM-7/77用I/O拡張基板と、5.FM-7/77用 ROM/RAMディスク基板

「FM-7/77用のI/O拡張基板を改良しました(2021年6月10日)」で回路変更をした最終版を紹介しています。

FM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板化が完了(2019年8月26日)」でプリント基板化したものと、「FM77用の拡張IOボード、ROM/RAMディスクボード(2019年6月12日)」で手配線のオリジナルを紹介しています。

最終版はオリジナルから6850とFT232RLモジュール回路を削除し、2.5MHz生成回路を追加したものですが、2.FM-7拡張コネクタ変換基板にクロック生成回路と同じものですので、そちらに実装すれば(ジャンパピンをJ4の7-8に追加)、この基板上に実装する必要はありません。

ドライバソフトについては

F-BASIC用のWindows版仮想ドライブ構築ソフトの改良(2022年2月12日)」と「FM-7/77用の改良版I/O拡張基板用のF-BASICドライバを作成(2021年7月8日)」で紹介しています。

ROM/RAMが2組ありますので、スイッチで切り替えることでF-BASIC用だけでなくFlex9やOS-9でも使用できます。


6. 6502/65812基板

「W65C816も動作する6502基板を製作してみました(2021年5月19日)」で紹介しています。

その元になったのが「ドータボード上の6502でAppleⅡのBASIC Subsetが動作(2021年3月10日)」と「6802ボードでドータボードを用いて6502を走らせる(2021年2月28日)」です。


7. FM77AV PS/2キーボード基板

「FM77AV用PS/2キーボード変換器の不具合を修正(2020年1月21日)」にソフトの最終版を紹介しています。

「FM77AVにPS/2キーボードを接続する変換器の基板化(2019年7月31日)」に基板化したものを、「FM77用の拡張IOボード、ROM/RAMディスクボード(2019年5月14日)」の末尾にオリジナルを紹介しています。製作される際にはコネクタのピン配置にご注意ください。間違えるとキーボードを破損する場合があります。


8. SRAM変換基板(無料で頒布)

「製作した基板3種の紹介(2021年10月2日)」で紹介しています。

基板上のシルクにありますように日立のHM628512用として作成したものですが、

「SOJなどのSRAMも変換基板に装着できました(2022年㋀18日)」で他のチップの装着も紹介しています。


以上ですが、ソフトについては修正をしたりしていますので、最新版を使用してください。

何か不明な点などがありましたらメールで質問していただければと思います。

 

2022年4月28日木曜日

FM77AVにUSBキーボードを接続する試み(その5 完成に近づく)

 

ようやく完成に近づいたようで、使い勝手がかなり良くなりました。

前回の「その4」で一応完成と書きましたが、残っていた2つの不具合のうちの「Shiftキーを押すとシフトモードに入ったままになってしまう」については、結構使いにくいので、解消を試みました。


ハードは前回と同じです

前回はPIC24FJ64GB002側のUSB関係のプログラム中の app_host_hid_keyboard.c を手直ししただけだったのですが、それだけでは上記の不具合を解消できなかったので、ATmega88側のプログラムも手直しすることになりました。

まず、PIC24FJ64GB002側は今回も関数 App_ProcessInputReport(void) の手直しですが、修正点は4つの修飾キー(Ctrl, Shift, Alt, Winキー)に対応するようにしたことと、その修飾キーの出力タイミングを変えたことです。それを以下に示します。


   

 

次に、ATmega88側のプログラムですが、以前のものは元にしたPS/2用変換器のものを最小限の手直しだけで使用していましたが、それを見直しました。手直ししたのはmain.c 中の関数 outserialdata(unsigned cha kcode) だけですが、修飾キーの取り扱い方とその出力タイミングを変更しています。それを以下に示します。


 
 

以上のように修飾キー(Ctrl, Shift, Alt, Winキー)の出力タイミングを変更することでシフトキーの問題は解消できました。
また、もう一つの不具合ですが、実際に使用してみると6キーロールオーバーのはずが4キーロールオーバーになっているという件は実用上は特に問題にはならないようです。


残っている課題はひとつ


ということで、残る課題はキーリピートが有効ではないということだけということになりそうです。
実用上はキーリピートはぜひ実現したい機能なのですが、上記の App_ProcessInputReport(void) のリストを見ていただくと分かりますように、元にしたMicrochipのサンプルプログラムがキー入力の変更があった場合にそのキーを出力する、つまり、キー入力の変更がなければ出力されないという仕様になっているので、このサンプルプログラムを元にする限りキーリピート機能は実現できないように思えます。
どうしたものかと思案中です。。。

【蛇足】
最近はプログラムの書き込みツールとしてもっぱらPICkit4を使っているのですが、これは以前使用していたPickit3とは異なり、Atmelのチップにも対応しているので、今回のような場合にはとても便利です。
画像で分かりますように、PICとATmegaの両方に書き込みピンを用意してあるので、6ピンケーブルを差し替えるだけで両方の書き込みに対応できます。(PICkit4の8ピン出力のうちの6ピンのみを使用しているので、PICとATmegaとで6ピンケーブルを1ピン分ずらすことと、ひっくり返して装着する必要がありますが。)
さらに、ATmegaの書き込み時には基板からの電源供給にすれば、書き込み後の動作時にもPICkit4を外さなくても動作に支障がありません。(何故かPICの書き込み時には電源をPICkit4からの供給にして、FM77AVの電源を切る必要があるのが残念ですが...)
今まではPICはPickit3で、AtmelはTL866ⅡPLUSを使用していましたが、かなりの場合にPICkit4だけで間に合いそうです。

2022年4月10日日曜日

レトロエクスプレス6号のお知らせ

4月29日にレトロPCのイベント「レトロエクスプレス6号」が開催されます。

はせりんさまから声をかけていただきまして、レトロPCイベント「レトロエクスプレス6号」に、今まで製作してきましたFM-7/77関係の製作物をいくつか展示させていただくことになりましたので、ここでイベントの紹介をさせていただきます。

イベント名称:レトロエクスプレス6号
日時:2022年4月29日11:00~17:00
場所:東京都大田区産業プラザPiO小展示ホール(京急蒲田駅から歩道橋で直結です)

詳しくはこちらをご覧ください。

私の製作物は下記のFM-7/FM77AV関係のブースの一部に置かせていただきます。


展示ブースの紹介

会場に足を運んでいただき、上記のブースにも訪れていただけましたら幸いです。

なお、参加されるサークルの一覧はこちらで見ることができます。

よろしくお願いいたします。


2022年4月5日火曜日

FM77AVにUSBキーボードを接続する試み(その4 一応完成)

一応、 実用になるレベルに出来あがったようです

昨年末に「その3」を報告して以来、その間、手直しをしなければと思いつつそのままになっていたのですが、ようやく見直すことができました。

手直しが必要だった点は、Shiftキーを押した後にいくつかキーを押すとそのShiftキーの効果が無くなったりすることがあったことと、USBキーボードは仕様上6キーロールオーバーが可能なのですが、それが実現できていなかったことです。

もう一度プログラムを見直した結果、AppProcessInputReport(void)関数をほんの少しだけ書き換えることで上記の2点を解決することができました。

出来上がったものを下図に示します。

前回報告した基板にRJ-9のコネクタを追加しました。USBホスト機能を持つPIC24FJ64GB002でUSBキーボードからのキーコードを処理したものをATmega88Aに送って、77AV用のキーコードに変換しています。

PICのみで全ての処理をさせるのが理想ですが、なかなかうまく動作させることができないのでこのような構成になっています。


手配線です


ケースに入れてみました。
ケースはタカチの75x50x30mmのものです。


ケースに収めた状態


77AVとの接続には電話機の受話器用のカールケーブルを使っています。


キーボードと77AVに接続

回路は前回示したものとほとんど同じです。


RJ-9コネクタを追加しています

プログラムの変更部分を示します。変更したのはこの関数のみです。

 
 

最後に

現在分かっている不具合は次の2つです。
Shiftキーを一旦押すとシフトモードに入ったままになってしまう。(解除するにはNumLockキーを押します。)
USBキーボードの仕様では6キーロールオーバーのはずですが、何故か4キーまでになっている。
以上の点を承知して使えば特に問題はないので、これで使い続けていこうと思っています。

2022年4月2日土曜日

FT245高速通信カードの改造の試み

 秋月電子のFT245モジュールでなくFT245RLチップを使ってみました

一時期ですが秋月電子でFT245モジュールが欠品だったこともあり、また、モジュールを使わなければもっとコンパクトになるのではないかと思って、モジュールではなくチップを使ったカードを試作してみました。

モジュールをチップに置き換えるだけならわざわざ基板を起こす必要はないのですが、

(1)今までDIPのICのみを使用してきたが、表面実装部品を使ってみたい。

(2)PCとの接続ケーブルでmini-USBコネクタではなくmicro-USBコネクタを使いたい。

(3)回路を変更する実験をしてみたい。

のような意図もありました。

(1)ですが、最近はDIPのICよりも表面実装部品を使う方が作りやすい傾向もありますので、ここらで表面実装部品に慣れておきたいということです。

(2)ですが、最近はmicro-USBコネクタの方が普通になっているように感じています。

(3)ですが、FM-7からWindowsPCへの通信時に、WindowsPCの準備ができていない時でもFM-7がデータを送り出してしまうので、これを何とかしたいという事でFT245RLのTXEをフラグとしてチェックする形式に変更することを考えました。


表面実装部品を使うのは初めてなのでネットで情報を集めてみると、アマチュア的にはヒートガンかホットプレートを使用するのが普通のようですが、先日、基板から部品を外すためにPOT-21Cという小型ハンダ槽を購入したので、これを使えばホットプレートの代わりになるのではないかと考えて試してみることにしました。

これが入手した小型ハンダ槽です。温度は500℃まで上げることができます。小さな部品はもちろん、40Pコネクタ程度の大きさのものなら、数秒であっさりと基板から外すことができます。


小型ハンダ槽
ハンダ


このハンダ槽の上に5mm厚のアルミ板を載せて、ホットプレートの代わりにするというわけです。まずは左下のmini-USBコネクタと小さなフェライトインダクタ(FB)をクリームハンダを使用してハンダ付けができるかどうかを試してみました。
温度を400℃に設定し、クリームハンダを塗った上に部品を載せた基板を置いてみました。
結果ですが、1608サイズのFBは綺麗にハンダ付けされていました。しかし、USBコネクタはFBよりも熱容量が大きいせいか仕上がりが不十分だったので、後で半田ごてで補修しました。




次にメインであるFT245RLのハンダ付けに挑戦しました。温度を350℃に下げて、クリームハンダを塗ってICを載せて置いてみました。
結果ですが、うまくハンダ付けはできませんでした。350℃に下げたのが原因だったようですが、400℃に上げる勇気はなかったので普通にはんだごてですることにしました。
ホットプレートを使用する場合は蓋をするので、カップのようなものをかぶせるとうまく行くのではないかと思っています。次回挑戦する際には蓋を用意してやってみます。



FT245RLをハンダ付け


できあがったのが下の基板です。
追加のリード線が見苦しいですが、これは何とFT245RLのGNDを結線し忘れていたためです...(相変わらずドジばかり...)


完成した基板

とりあえず、ICの細い足に何とかリード線をハンダ付けして動作させることができました。
(SSOPですので0.65mm間隔の足にハンダ付けするのは大変でした...)

以上は元のFT245モジュールを使用した回路をそのままFT245RLに置き換えただけなので、ポリヒューズなどの余計な部品が載っていますが、電源をFM-7から取るようにすれば部品をいくつか省略できます。

次に回路の変更ですが、74LS244の15ピンに接続されているFT_DB6をカットして、代わりにFT245RLの22ピンのTXEを接続するだけです。
つまり、データのbit7がRXFであるのに加えてbit6をTXEにして、ソフトで読めるようにするわけです。

実は、もう既に既存のカードを改造し、それに対応してソフトも変更してありました。そのカードが下の画像のものです。LS244の15ピンを抜いてTXEに接続してあります。


DB6をTXEに変更したカード


ソフトの変更ですが、FM-7が受信する場合にはbit7(RXF)をチェックしてLowになったらデータを受信しているのと同様に、送信する場合にはbit6(TXE)をチェックしてLowになったらデータを送信するように変更することになります。

改造の結果

(1)表面実装部品を使ったおかげで、基板にかなり余裕ができましたので、上手く設計すれば他の回路も同居させることもできそうです。
(2)USBコネクタもmini-USBとmicro-USBの両方を搭載しても余裕です。
(3)FM-7からの送信時にもフラグをチェックするように変更してみたわけですが、実際にはそれ程のメリットは感じられませんでした。むしろ、何かの原因で通信経路の不調が生じた場合にハングアップ状態になってしまうのはデメリットかもしれません。


ということで、次回製作予定のプリント基板は下図のように切り替えスイッチを付けてどちらのモードでも使えるようにしようと思っています。


次回製作予定の基板


今回、初めて表面実装部品を使用してみましたが、フェライトビーズは問題なくハンダ付けができたので、同様な形であるRやCなどもこのような方法でできそうです。あとはもう少し試行錯誤しながらICなどの部品もハンダ付けできるような条件を見出したいと思います。


2022年3月1日火曜日

FM-7用の32Pスロット拡張基板の製作(第4作!)

 32Pスロット拡張基板の第4作目です(これで最後に)

FM-7の背面の50P拡張コネクタを利用して本体には2個しかない32Pスロットの拡張を試みてきましたが、途中での設計変更やコネクタのフットプリントの作成ミスなどがあり、何回も作り直してきましたが、ようやくこれで終わりになりそうです。

製作したのは下画像の2枚です。


製作した基板


下が50Pと32Pを変換するベース基板で、32Pスロットには出ているのに50P拡張コネクタにはない2.45MHzのクロック信号の生成回路のパターンが用意してありますが、このクロックを必要とするのはRS232Cカードのみですので、今のところ実装していません。また、上部の50Pコネクタは私の常用機であるFM77AV40SXのコネクタと同じピン配置で、ここに自作のROM/RAMディスクカードを接続する予定です。このために2枚構成となっています。


ベース基板


上が目的の32Pスロット基板です。使用した32Pコネクタは手持ちの圧着端子型のもので、これ用の取り付け穴と通常の基板取り付け用のコネクタや普通のピンコネクタなど用の取付穴を並べてあります。一応3枚まで装着できるようにと考えました。

32Pコネクタ基板


回路図を示します。

32Pスロット基板

50P-32P変換基板



実際にFT245カードや512KBRAMディスクを装着した様子です。

基板を装着した様子

バッファを付けていないので、実際に何枚のカードを装着できるかは不明ですが、今のところ本体側にFDCカード、拡張基板側にFT245カード、512KB RAMディスクカードの計3枚のカードを装着して正常に動作しています。

なお、蛇足ですが、カードを1枚だけ増やしたい場合には、下画像のような50Pコネクタと32Pコネクタ(メス)を単純に信号線を合わせて結線したものでも間に合います。

カード1枚ならこれでもOK

これは画像の上にあるような短いケーブルのついた50Pコネクタと手元にあった40Pのケーブル配線用のメスコネクタを、余分な8ピン分を削って32Pにして結線したものです。(32Pのコネクタは入手が困難ですが、この40Pのケーブル配線用のメスコネクタFCN-361J040は制御用装置で使用されていますので今でも入手できます。)

以上、32Pスロットの拡張の試みの報告でした。