|
SDカードI/Fの基礎部分となるNE555発振回路で、なぜか実験失敗中。
4800Hzを作りたいだけなんですけどねえ。
赤外線リモコンの38kHzのときは一発OKだったのに。ほったらかしてるけどw
↓のページを参考にさせていただいて回路を組んでいます。
配線のクロスがないのがナイス♪
555発振器(裏面から見たところ)
Ra=20kΩ、Rb=140kΩ、C=1nF で4800Hzになるはず。
Raを金属皮膜12kΩ+多回転ポテンショメータ10kΩで微調整と考えています。
でも、何度組み直しても出力されるのは60Hz。それ、電源ノイズじゃん?
きれいなサインカーブだこと♡ヽ( ´¬`)ノ
電源自体は1chipMSXのJポートから盗ってます。相変わらず過酷なことをw
最近、注意力散漫で、140kΩと140Ωを取り違えたり、1nFを1pFと取り違えたり。
計算式自体、自信がなくなってきました。
アカンときはアカンので、気分を変えてスカートの中身を研究してますw(・∀・)b
|
日記
-
詳細
コメント(6)
|
きっかけは、「HDMI コンバーター UPSCALE アップスケール 720P/1080P 4 dm500s/600sスカイ+ DVD Wii」GAOHOU(¥6,399)という商品をAmazonで見かけたことでした。
普通なら信用できるかリサーチするのですが、体調が悪かったか機嫌がよかったか、コネクタだけ見て反射的についポチッとしてしまったのです。普段は「GAOHOU」では激安品しか買わないので、¥6,399は破格の買い物です。
全面
背面
SCARTとRGB21は「ある程度」互換性があると聞いていたのが頭の隅にあったせいかもしれません。ポチッとしてから、SCARTとRGB21の互換性について調べ始めました。まさに泥縄。
8bit〜32bitくらいのあいだのげぇむ
こちらのブログで有用な情報を得ました。
ふむふむ、実際にサクサクと作っておられます。これは楽勝かもと一瞬思いましたが、RGB21は信号とGNDが1対1の建前だがSCARTはどれとどれが対だ? とか、RGB21の「Ym」信号が余るがこれでいいのか? とか、RGB21の「AV Ctrl」はSCART側では電圧で動作が異なるなんて聞いたことがあるぞ? とか・・・相変わらず疑問噴出なのでありました。
SONYのRGB21対応ディスプレイがいい加減ヘタってきたので、そろそろ退役を考えないといけません。世の中はHDMIの天下のようですね。ぼくの衝動買いの結果がうまくいくのか見当つきませんが、みなさんは、RGB21→HDMIをどうしてらっしゃるのでしょうか?
あ、MSXの簡易型8ピンRGBも、この変換ケーブル(って、まだ作ってないけど)でいけるのかな。心配性のぼくの心配はなかなか解消できません。なにしろ、「GAOHOU」は中国積み出しで、手元につくまで2〜3週間かかるのですから。
案ずるより有無を言わせずの強引な姿勢でいくしかないか(・∀・)♪
|
|
長年、MSXと「通信」に特に興味を持って過ごしてまいりました。ず〜っと以前には、Arduinoとの間で「PDL通信」てなものも考えましたっけ。MSXのPDL関数は、入力されたパルスの長さを0〜255の256段階に認識するのであります。
タイトーのゲーム「アルカノイド」シリーズは自前のルーチンを用意しBIOSに頼らなかったので、PDL関数が削除されたturboRでも遊べました。しかし、PDL関数を使って「スカッシュ」などのゲームを作っていたアマチュアは、turboRの仕打ちによって自作ハードウエアとともに奈落の底に落ちたのであります。
もちろん、Arduinoとの「PDL通信」もおじゃんとなりました。Arduino側でのPWMの調整も微妙過ぎたという反省もあって、実は自分でもあまり使う気にならなかったのでありました(爆)
捲土重来、起死回生。
いつものようにJポート(「ジョイスティックポート」あるいは「汎用入出力ポート」を慣用的にぼくは「Jポート」と呼んでいます)を眺めていて、ふと思いつきました。
「これってArduino→MSXの通信に使えるんじゃないの?」
何を今さらとお思いでしょうが、お聞きください。
ついついピン1〜4の4ビットで信号入力と思いがちでしたが、そのためにはマシン語の助けを借りないといけません。BASICのSTICK関数を使えば「0〜8」をMSXは受け取ることができるのです。同じ機能のBIOSも用意されています。
↓STICK関数で受け取れる数字。
これを通信に応用するとすれば、Arduinoのデジタル出力を4ピンを使って、アイドリング時は「1111」を出力します。MSXにとっては「0」です。「1110」を出力するとMSXにとっては「1(Up)」です。というわけで、「0〜8」の9通りの信号をMSXに渡すとすれば、別途CLKも要りません。一例として次のような手順が考えられるでしょう。
(1) 「0」が続く間、MSXは受信データ待ち。
(2) 「0」以外が来たとき、MSXはデータとして受け取る。(受信スタート)
(3) データとデータの間には「0」を挟む。
(4) 例えば30秒間「0」が続いたら通信終了とみなす。
通信終了の方法はケース・バイ・ケースで考える必要があります。
1000 DEFINT A-Z:DIM A(200):N=0
1010 ON INTERVAL>1800 GOSUB 2000
1020 INTERVAL ON
1030 D=STICK(2):IF D=0 THEN 1030 'JPort-B
1040 INTERVAL OFF
1050 A(N)=D-1:N=N+1:IF N=200 GOSUB 2000
1060 TIME=0:GOTO 1020
1070 '
2000 INTERVAL OFF:RETURN 2010
2010 END
Arduinoが今ちょっとアレなので、まだ実際には動かしていませんが、こんな感じで配列Aに200個のデータが格納できるのではないでしょうか?200個未満で通信終了したときは、Nに受信数+1が入っているで正しいかな?(・∀・)?
【追記】このままではオクタルなので使いにくいですね。16進数が使えるように、もう一工夫要るようです。
Arduino側で、まず8で割った整数除算の商を、次に剰余を送信して、MSX側でふたつのデータから16進数に組み立て直すとか?
何とかしてくださいw
|
|
最近、「樹脂」づいているなあと。いきなりで意味分からんですなw
まず、電子工作で珍しくケースまで作りました。カセットテープのケースを加工しましたが、スチロール樹脂は割れやすいです。アクリル樹脂板をくっつけました。相性いいです。アクリル樹脂の接着剤って強力です。うっかり一滴落としただけで透明な面が台無しに。設計変更・・・。
前面にオシャレな透明スモークの塩ビパネルを貼り付けましたが、アクリル樹脂接着剤とは相性悪いです。一晩で剥がれましたw
接着剤には、素材を溶かしてくっつけるものと、素材の隙間に入り込んで固まってくっつけるものがあります。エポキシ樹脂接着剤は後者です。塩ビは溶剤に強いのでした。 さて、最近、UV硬化型レジン始めました。「レジン」というのは「樹脂」という意味だそうで、何が素材なのかは知りません。紫外線を当てると硬化します。自動車の塗装と同じなのでしょう。「ハード」「ソフト」「グミー」と種類があって、「グミー」の感触はまさにお菓子のグミですw
アクセサリーに用いることが多いようですが、ぼくは「ゴム足」を作っています。市販の「ゴム足」は用途の割に高価です。「ゴム足」というのは、基板の四方に付ける足です。基板の裏面が浮いているので、うっかり鉄板に置いてもショートしません。
↑上の写真の1chipMSXの上に「ゴム足」が載ってます。地球はPCの壁紙です。
↓最近作った「変声機」に「ゴム足」を付けてみました。「グミー」で作ったら基板が「ゴム足」にムニュッと喰い込みました。「ソフト」のほうがいいみたいです。
この際ついでに2液混合型レジンも入手しました。こちらは主剤2:硬化剤1の割合で混合するそうです。まだ使っていないのでよく分かりません。
ついでのついでに、型取り用シリコン樹脂も購入しました。何の型取りしようかな? ヘンなもの型取りしちゃイカンし。型取りした中にシリコン流し込んで、ヘンなもの作っちゃイカンし。 ※この文章は、某所で書いているブログを転載・加筆修正したものです。どんなモノをつくっているのか見たいと要望がありましたので掲載しました(・∀・)ノシ
【追記】変声機のタクトスイッチが1個浮いてるのは、ちゃんと修正しましたw
|
|
I'll be back. と言うたとたんに帰ってきたわけですが、いろいろと紹介した中で手つかずのインテリジェントなI/Fがありました。それが、このサンテックのEU-SD/MCシリーズです。
サンテック「EU-SD/MCシリーズ」
インタフェースは、調歩同期シリアル(Data:8bit,Stop:1bit,parity:non)、通信速度 :4800/9600/19200/38400/57600/115200bps(ロジックレベル)、設定はインストールソフトウェアにより選択。
一読して意味がよく分からんかったのですが、通信速度ごとにソフトウエアが用意されていて、最初に好みの通信速度のファイルを自分でインストールし直せ、ということでした(初期は115200bpsのが入っている)。意味が分かったときは、のけぞりましたって、以前書いたような気がするw
I/FのサイズはCFに合わせたそうです。普通のブレッドボードでは対応できません。CFはプロカメラマンに馴染み深いからってこと? あまりメリット感じないんですけど。まあいいや。よく8MBなんてCF持ってたなって、そっちに目が行く? そういえば16MBなんてSDカードも持ってたし(*´▽`*)
さて、しばらくはこれにターゲットを絞って話を進めたいと思います。
いきなり立ちはだかるのが「調歩同期」の壁。急にドキドキしてきた。ど、動悸が…。「調歩同期」と言いつつ、非同期なんですな。なんて非道な。事前に打ち合わせもなく、いきなり4800bpsとか115200bpsとかで信号が送られてくるのです(事前に凸凹の信号を送って判断させるってやり方もありましたね、確か)。
以前、MSXで「ソフトウエア調歩同期」をやったときは、ステート数を数えて必死のパッチでしたよ(「必死のパッチ」なんて言うの大阪だけ?)。で、今回はその反省もあって、外部クロックにしようかなと考えています。考えているのはそこまでですw
普通は水晶とかセラミックとかの発振子を使って分周するのでしょうな。でもなんか面倒い。MSXらしくない気もする。というわけで、555を使ってみようかとw
フィルムコンデンサや多回転ポテンショメータ、金属皮膜抵抗などで脇を固めて、できるだけ精度を上げようと。無理かなあ。
とりあえず、I/Fに4800bpsのソフトをインストールするところから始めます。「ロジックレベル」というのが、ちょっと気に入っています。しかし、また投げ出しそうな気がしてきたぞwwww
【追記2/92:54】紆余曲折ありましたが、4800bps版インストールできました。
FAT16かFAT32でフォーマットしたSDでないとダメなようです。最初、16MBでインストールしようとしましたが、FAT12で蹴られていたようですな。ま、一歩前進。
【ついでに余談】555で4800Hzができたとして、勝手にフリーランさせておいて、MSXからの送信時は直近のエッジから、受信はやはり直近のエッジから処理すればいいかなっと。
送信時はアイドルタイムに必要な送信パターンを用意してエッジごとに発射! 受信時はPSG#14のパターンをそのまま記録して、あとで解読と、4800bpsに処理が追いつける方法を考える必要があります。
そのまえに555で作ったクロックがどれだけ信頼できるかという…(・∀・;)
|




