Sound Rammy
メガドライブ用カートリッジを作る為の簡易FlashROM/SRAMプログラマー。
音声信号でプログラムします。
半田付けの手間と部品代を最小限にする事と、
ホスト側の機種依存を無くす事だけに焦点を絞ってます。
結果的にプログラム速度がかなり犠牲になっています。
あえてマイコンもプリンターポートもシリアルポートもUSBも使わない試みでもあります。
Download
Hardware
今の所こんな感じ。 都合が悪くなると部品が変わるので、まだ傍観してるだけにしといてください・・・。
- 基板 (1)
- 抵抗器 10kΩ (7)
- 可変抵抗器 10kΩ (1)
- LED (3)
- コンデンサー 100uF (1)
- コンデンサー 0.1uF (4)
- オペアンプ NJU7044 (1)
- NJU3714 (3)
- スイッチ 電源用 1接点 (1)
- ダイオード 200mA以上 (1)
- USBコネクター又はDCジャック (1)
- ステレオ ヘッドフォン端子 (1)
- 配線材 (1)
モノラルには対応していないから注意して下さい。
Procedure
まず初めにチューニングします。
- ヘッドフォン出力とカートリッジをSound Rammyに接続します。
- Sound Rammyの電源を入れます。
- チューニング用オーディオをループ再生します。
- 2つのLEDが順に点滅する様に音量を調整します。
- Sound Rammyの電源を切ります。
FlashROMを使ったカートリッジの場合は、 データをプログラムする前にデータを消去します。
- ヘッドフォン出力とカートリッジをSound Rammyに接続します。
- Sound Rammyの電源を入れます。
- 消去用オーディオを最初から最後まで再生します。
- Flash Memoryの最大消去時間が経過するまで待ちます。
- Sound Rammyの電源を切ります。
最後にデータをプログラムします。
- ヘッドフォン出力とカートリッジをSound Rammyに接続します。
- Sound Rammyの電源を入れます。
- プログラム用オーディオを最初から最後まで再生します。
- Sound Rammyの電源を切ります。
05/01/2012 - ピ---ピ---ピ--- ガラガラガラ ゴ--------
そういやサウンドラミーのベースが出来ても、
SRAMカートリッジが無けりゃ動作テスト出来ないやと思ってSRAMカートリッジ作りました。
スイートラミーの時に既にSRAMカートリッジは作ってたのだけど、
バックアップ機能が無いから電源を切ったらデータが消えると言う、
もっぱらスイートラミーの読み書きテスト専用のカートリッジなのでした。
今回はそのカートリッジにバックアップ機能を付けました。
128k x 8bit SRAM みたいなチップセレクト ピンが CE と !CE の2種類あるSRAMを使う場合、
他の基板から抜いてきたBA6162 とか MM1026 と電池を繋ぐだけだから簡単です。
今回はBA6162を基板に直付けしています。
直付けする場合、
BA6162を刺す穴を8個ぶち開けた後、
BA6162のピンが +5V と GND のパターンに触れない様に、
径の大きなドリルで穴の周りのパターンを削れば良いです。
半田付けする時も各ピンが +5V と GND に触れてショートしない様に気を付けて下さい。
殻は「尾崎直道のスーパーマスターズ」のラベルを剥がしたヤツです。
30円なのに綺麗でシールのフチが若干浮いていた
(ほとんど使ってないからシールがしっかり貼り付いてない)
から、綺麗にシールを剥がせました。
そしてシールを剥がすと、ポスカで書いて消せる黒板型カートリッジになります。
SRAMカートリッジとは関係無いけど、サウンドラミーの音声信号をスピーカーで鳴らすと、
懐かしのノイズが聞けます。
04/12/2012 - 波形
16bitのシリアルデータを送信した時の音声波形はこんな感じ。
Lチャネルがデータ (SDA)、Rチャネルがクロック (SCK) です。
つまりステレオ音声をEEPROMの24Cシリーズや23Cシリーズの様なシリアル信号に見立てています。
たまに突起してる波はSRAM/FlashROMの !WE と !CE です。
電圧レベルが一定の閾値を超えると、 !WE と !CE がアクティブになります。
NJU3714/NJU3716 はクロックの立ち上がりでデータを取り込むので、
データを全て送り終えて !CE をアクティブにする時は、
Rチャネルのクロックを下げずに更に !CE レベルまで上げます。
するとデータを取り込まずに !CE をアクティブにする事が出来ます。
68000の場合は !WE がアクティブになった後で !CE がアクティブに、
!CE がイナクティブになった後で !WE がイナクティブになるから、
一応Sound Rammyもその順序でステートが変わる様にしています。
04/11/2012 - ノイズ
前回半田付けしてる最中に、
「なんかこれ、配線に気を付けないとアナログ回路が不安定になって動かないかもしれない」
と思って、初めからリファレンスデザインで作り直す事にしました。
そして適当に仮配置したのが下の写真。まだ半田付けしてないです。
基板はサンハヤトのICB-96Gです。
この基板は秋月電子に売ってる一番大きいユニバーサル基板と大体同じサイズ。
実際には2/3しか使わないから、余った領域でRGB出力回路とかS-Video出力回路とかでも作っておいて下さい。
で、今何してるかと言うと、アナログ回路のテストしてます。
基本的には脳内設計の通りに動いてるのだけど、
どうも音声入力がノイズの影響を受け易い様です。
1度オペアンプで数倍に増幅してからコンパレーターに入力する様にして見たり、
電源周りの回路をえてみたりしたけど、さほど改善されてないです。
結局一番効果があったのはやっぱり音源側の電圧そのものを高くする事、
つまり 「音声ボリュームを上げれば良い」 です。(´ω`;)
但しこの手段は
「うっかり音声ボリュームを上げっぱなしでヘッドフォン端子からプラグを抜くと、
音のデカさにビックラする」
と言う欠点があります。
下の写真は初期のテスト回路。
今は回路をいくつか追加したせいでもっとごっちゃりしてます。
03/26/2012 - 組み立て (1)
昨日の続き。
とりあえづ半田付けしてみてる最中。
大分小さくし過ぎたようです。半田付けめんどくさい。(´^ω^`)
お陰でやたらコンパクトです。
でも期待通りに動かなかったら組み直しです。
カードエッジコネクターが無いからピンヘッダーを使ってます。
2列のピン同士をペンチで挟むと、ピンが内側に曲がってカートリッジにしっかり挟まる様になります。
03/25/2012 - テスト
秋月電子で4個入り1袋100円と言う、
格安コンパレーター「LM339」を使うつもりで居たのだけど、
「そういやこのコンパレーター、出力がオープンコレクターだった気がする・・・」
と思い出してデータシート見てみたら、やっぱりそうだった。
ついでに入力側にも難がある事に気付いて、LM339を使うのは辞めました。
下の図はLM339内部の等価回路図。
2つの赤丸は都合の悪い部分。
別に大した事ではないのだけど、これって部品数増えるから、
部品数の少なさが取り得のSound Rammy的には嫌なのよね。
LM339の代わりになる都合の良いコンパレーターが手元に無かったから、
NJU7044を使う事にしました。オペアンプだけど。
写真はNJ7044で遊んでる所。
なんか初めから基板に半田付けした方が楽なんじゃないかってくらい、
配線が面倒に感じた今日この頃。