サロンdeねくすたあ~ その32017年09月17日 15:52

遅い夏休み中。

サロンdeねくすたあ~+FlashAir

部品がそろったので、「サロンdeねくすたあ~」のSDカードの電源部分を強化してみた。
3.3Vの定電圧レギュレーターを利用し、スロットからの5Vから新たに3.3Vを生成、直接SDカードスロットに供給してみた。
SDカードスロットの電源ラインは抵抗(R1)を介しているのでこれを取り外し(1608のチップ抵抗なので小さい!)、本来の電源供給を遮断。代わりに生成した3.3Vを投入。

結果、あっさりFlashAirの無線機能が機能するようになった。
ノーマルだとエラーが発生するディレクトリ変更も問題なく動作する。
よしよしと思いながら、ふと取り外した抵抗を計ってみると10Ω。

あれ?
回路図上はR1って1Ωじゃなかったっけ?
と、電源強化部分を取り外し、R1に手持ちの1Ω抵抗つけてみたらそれでもFlashAirは動作した。

サロンdeねくすたあ~R1抵抗

動いたから、いいか。

9/24追記:掲示板でM.A.D.さんに教えてもらったけど、R1はSDカードへの突入電力を制御するための抵抗との事。
1Ωだとカードによって不具合出るらしい。
3~5Ω位で調整してみようかな?

サロンdeねくすたあ~ その22017年08月26日 17:26

サロンdeねくすたあ~でFlashAirを認識しない問題、原因が分かったかも。

現在直面している現象をまとめると
1・サロンdeねくすたあ~にFlashAirをセットして起動するとドライブを認識しない。(FlasAirは変換アダプタを利用)
2・起動時は認識するSDカードをセットして起動、その後FlashAirに入れ替えるとMSXからドライブとして認識する
3・2で認識したドライブに実際に書き込みを行おうとするとハングする。
4・ディレクトリ移動を繰り返すと、「ドライブが存在しません」というエラーが発生する。
5・FlashAirの無線LANが有効にならない(無線LANへの接続に失敗する)

で、5がおかしい。
FlashAirの無線LANはCONFIG設定さえ正しければ、電源さえ供給されていれば有効になるはず。
それが使えないということは電源供給が間に合っていないのではと考えた。
※FlashAirは普通のSDカードより無線LAN機能の分消費電力が多い(常時100mA~200mA位らしい)

試しにCONFIGを
APPMODE=2
無線LANのキーになる画像ファイル
/DCIM/100__TSB/FA000001.JPG
を読み取り専用にし、無線LAN手動起動モード(無線LAN-OFF)する。

この状態のFlashAirをサロンdeねくすたあ~にセットしてみた。

結果、起動時のドライブ認識に成功し、試した範囲では書き込みでハングするようなこともないように見えた。
ということで、電源供給さえどうにかすれば変換アダプタ経由でFlashAirも使える、のかな?

サロンdeねくすたあ~2017年08月21日 23:09

M.A.D.社製のMSXでNextorやMicroSDが使えたり音声LSIでおしゃべりさせたりすることができるカートリッジ。
こいつのMicroSDにFlashAirを繋げないかと考えて、変換名人のSDカード→MicroSD逆変換アダプタを買ってみた。

・・・FlashAir認識しない。
他のSDカードを変換掛けたところ認識するものもあるので、相性が出ている模様。
M.A.D.さんの検証でも動作するカードと動作しないカードがあったみたいだし。

DEVINFO.COMではちゃんとカード認識してるんだけどなぁ…
DRVINFO.COMでドライブ認識していないのでドライブの割り当てに失敗してるみたい。
でも、MAPDRV.COMでのドライブ割り当てにも失敗する模様。

う~ん、もうちょっと調べてみよう。

FlashAirのStatusRegister表示プログラム2017年03月26日 23:49

FA_TIMEやFA_CLOCK作成する際に作ったFlashAirのStatusRegisterを表示するプログラム。
1chipMSXに接続したFlashAirの0400hから512バイトを表示する。
ただそれだけ。

ダウンロードはこちら

FlashAirのコマンド発行覚書2017年03月20日 23:48

iSDIOを利用してのコマンド発行の覚書。


コマンド発行手順は

1・CMD48にてシーケンスIDを取得
2・CMD49にてコマンド発行
3・CMD48にてコマンド実行結果のステータス取得
4・CMD48にてコマンドの実行結果取得

となる。

シーケンスIDは0444hから4バイト
コマンドのステータスは0448hから1バイト

コマンド実行はアドレス00hから512バイトのコマンドデータを書き込む。
コマンドデータの書式はここにある通り。

Size of iSDIO Command Write Dataは書き込むデータ全体の長さ
Length of Argument(No.1)はパディングを含まない引数の長さ。

Size of iSDIO Command Write Dataが512バイト以下の場合(たいていそうだと思うけど)
512バイトになるようにFFhを書き込み。
(読込の時と同じく必ず512バイト)
512バイト書き込んだ後はCRC2バイト(ダミーOKなのでFFh2バイトでOK)書き込み。

SendHTTPMessageByRegister(hostName, message)
SendHTTPSSLMessageByRegister(hostName, message)
でHTTPリクエスト発行できるけど、コマンド書き込み直後にステータス取りに行っても
結果は取れないので、数秒待機すること。

ステータスは03hが帰ってくればコマンド発行は成功。
00h→01hと変化するみたい。