SD6031/SD6031WIF用のファームウエア(ver1.20)をリリースします。
注)SD6031Airには使用できません。
SD6031_ver120.zip
・Ver1.12→Ver1.20変更点
リセット方法の変更(後述)
SDカードへのアクセスの高速化
FlashAir使用時の、アクセス間隔を修正(250ms→5秒)
イメージファイル名の送信コマンドの修正(コマンド:0xfc)
EEPROMアクセス関連の廃止(コマンド:0xe0/0xe1)
アンマウント時にファイルにアクセスしないように変更
他のSD6031系のファームウエアとの共通化(動作的には同じです)。
sd6031.hex は AVR用ファームです。AVRに書き込んで下さい。
ある程度のテストしかしていないので、何か問題がありましたら連絡頂けると幸いです、
1)リセットラインを改造していない場合
・SD6031/SD6031WIF が初期化されます。
・選択していた拡張子は、P31になります。
・選択していたイメージファイルは、初期のもの(INIT.P31か、最新のファイル)になります。
2)リセットラインを改造している場合
P6のリセットボタンを押し続けると SD6031/SD6031WIF の LED の赤と緑の両方が15回ほど点滅します。
15回点滅する前に、P6のリセットボタンを離すと、以下の動作になります。
・選択していた拡張子、イメージファイルはそのままです。
15回点滅するまで、P6のリセットボタンを押し続けると、以下の動作になります。
・SD6031/SD6031WIF が初期化されます。
・選択していた拡張子は、P31になります。
・選択していたイメージファイルは、初期のもの(INIT.P31か、最新のファイル)になります。
SDカードを抜いて、新たに刺した場合は、以下の動作になります。
・選択していた拡張子は、そのままです。
・選択していたイメージファイルは、選択している拡張子の中のINITファイルか最新のファイルになります。
例えば、D88 の拡張子を選んでいると、(あれば)INIT.D88か、最新の〜.D88 が選ばれます。


同じプログラムを@Sei_softさんに同じ環境で動かしてもらったところ、基板上の2つのLEDが曲に合わせて点滅するという症状が出ているそうです。
・P6初代機
・4000Hから起動するROMプログラム(FLASHROMから起動)
・プログラム自体の動作には変な挙動は無し
・どの曲でも必ず現象が起きるわけではない
・2つのLEDの片方だけが点滅するというケースもある
・ファームウェアは最新版
・SDカードが入っていない時はLEDは消灯
というのが、今、わかっている情報です。
私の基板は
・おそらく初期のファーム
・この現象は起きない
・SDカードが入っていないとLEDは点灯しっぱなし
です。
今、AVRのライターが手元にないのでファームを上げられないのですが、近々ファームをアップして、もう少し条件を絞り込みしようかと思っています。
2つのLEDの点滅条件ですが、FDDのIOポートにアクセスした時でしょうか?それとも他の条件があるのでしょうか?
何か、えすびさんの方で心当たりはありますでしょうか?
ツイッターなどを見ている限り、セイさんの所のSD6031WIF は、外付けRAMもたまに誤動作するようなので、電源周りの問題かと思います。
2つのLEDですが、AVRからのみ制御され、SDカードをリード/ライトするなどに点灯します。
また、SDカードが抜いている状態→挿している状態など、SDカードが新しく認識した時に、2回点滅させるようにしています(新しいファームウエアで、古いのは点滅しない)。
SD6031WIFの本物(?)は2つほど持っているんですが、クローン版は持っていないので、ここからは推測です。
SD6031で発生した事ですが、SDカードを抜き挿しした時に、AVR がリセットされる現象が起きました。
SDカードの抜き挿し時に、過渡的に大きな電流が流れたため、一時的に電圧が下がり、AVR のリセットが掛かったようです。
今回、同じような現象が起こっているのではないかと思います。
何らかの原因で大きな電流が流れ、それによって電圧が下がり、AVR が再起動しているのではないかと。
AVR が再起動すると、SDカードを読みに行き、その時にLEDが点灯するのではないかと思います。
SDカードを抜いていると、再起動されてもLEDは点灯しません。
対策は、電源ラインを強化するぐらいしかないのですが、誤動作が発生している個体で再現させてみた後に、強化して症状が収まる、などのカット&トライをする必要があるかと思います。
ただし、LEDが点滅するプログラムがオート起動ではなく、さらにプログラムが終了後にBASICに戻る事が条件です。
1)D1 に、LEDが点滅するプログラムが入ったイメージファイルと、INIT.P31 を入れる。
2)P6を起動させる。
3)イメージセレクタから、LEDが点滅するプログラムが入ったイメージファイルを選ぶ。
4)MODE/PAGEを選択し、BASICを起動させる。
5)LEDが点滅するプログラムを動かす。
6)LEDが点滅するプログラムを終わらせて、BASICに戻る。
7)FILES を実行して、何が表示させるかを確認する。
正常動作ならば、LEDが点滅するプログラムなどが表示されるはずです。
もし、AVRがリセットされたならば、FILESを実行すると、別のものが見えます。
「ドライブは1Dです」などと表示された場合は、AVRがリセットされています。
@Sei_softさんに情報を展開して確認してみようと思います。
私の自作のプログラムだけではなく、@Sei_softさんが作られた曲データとサウンドドライバ?でも同様の現象が起きているそうなので、PSGかアンプ周りの負荷が電源に影響しているのかもしれませんね。