ArdSCSino-stm32 を改良してみた (その3)

ArdSCSino-stm32 を改良してみた
ArdSCSino-stm32 を改良してみた (その2)
を更に改良

<関連>
SCSI / SASI エミュレータ の ArdSCSino を導入
X68000 / X68030 で ArdSCSino を使う
PC-9801 / 9821 で ArdSCSino を使う

主な改良点とメリット
MOドライブ専用モードを追加
・ArdSCSinoの電源投入時に SDカードが入っていない場合MOドライブ専用として機能します。MOドライブ専用なので パソコン使用中にカードの出し入れ(ホットスワップ)が可能です。ただし、ホットスワップ対応のArdSCSinoが必要です。
・MO相当なので MOドライブが使える機種(ドライバ利用等)であれば利用でき、Windows機と通常のSDカードによるファイル交換が可能です。

MO専用モードの 想定する環境は 内蔵HDDを使っていて 外部とのやり取り用に MOドライブとして使う と言う感じでしょうか。

ホットスワップについて
 電源が入っている状態で カードを挿入した場合、BluePillの電力が一時的に低下してフリーズやリセットする可能性があるようです。
こちらのサイトの情報を主に参考にさせてもらいました。
えるむ by ChaN      http://elm-chan.org/index_j.html
 (秘蔵のテクニカルノート –> デバイス関連”MMCの使い方” –> “5. 端子処理と端子処理と活線挿抜”)

ホットスワップ未対応の ArdSCSinoの対応(改造)
 簡単な方法としては 積層セラミックコンデンサを カードスロット付近の電源(3.3V)とグラウンド(GND)間に付けます。自分で試したところ、10uF~程度のコンデンサを付ければ大丈夫な感じでした。フリーズ等した場合は 電源を入れ直す必要があります。
※コンデンサは容量がなるべく大きい方が良いかもしれませんが 大きすぎると通常モードでカードが認識されなくなるかもしれません。
※SDカードによっても状況は異なるようです。
こんな感じで カードスロットに近い方の3.3V-GNDに 1個付けるのが楽かも。
 1_ 2_

使用方法
1.microSDカードをFATとしてフォーマットします。容量は最大2GBです。それ以上の容量のmicroSDカードを使う場合は、第1パーティションを2GB以内で作成します。
※容量によっては上手く認識しないかもしれません。980MB、1980MBでテストしてます。
※第2パーティションを作成し 通常のHDDイメージを入れておいて、SDカードの入った状態でArdSCSinoの電源を入れれば 通常モードで使用できます。詳細は「ArdSCSino-stm32 を改良してみた (その2)」を参照。
 1_
2.SDカード未挿入で ArdSCSinoの電源を入れます。
通常モードと MOドライブ専用モードは、ArdSCSinoの電源投入時のカードの挿入状況で切り替わりますので、パソコンのリセットでは切り替わりません。

SCSI IDは “5”固定です。

その他、使い方は「ArdSCSino-stm32 を改良してみた (その2)」の”4.パソコン起動後について”を参照願います。※PC98のMOの”取出し命令~”の操作は不要です。

 改良版ファームウェアについて
・ArdSCSino-stm32(2022/9/10版)を改良したものです。
 ArdSCSino-stm32  https://github.com/ztto/ArdSCSino-stm32
・バグ等 問題が発生する可能性があります。使用は自己責任にてお願いします。

ファームウェア(firmware.bin)のみ
 ArdSCSino-stm32-master mod v3.7 bin.zip

ファイル一式
 ArdSCSino-stm32-master mod v3.7.zip

※BOOTH頒布版はブートローダが書き込まれていますので USB接続でのファームウェアの更新が可能です。正しい手順で更新すれば難しい作業ではないと思いますが、失敗等の責任は負いかねますので自己責任にてお願います。
ArdSCSino-stm32 のファームウェア更新方法(USB接続)

改良前(2022/9/10版)のファームウェアに戻したい場合は 以下のファイルの”STM32F1-USB”フォルダ内のファームウェア(firmware.bin)を使用してください。
ArdSCSino-stm32_fix.zip




コメント