CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

V50

VGMデータ再生(4)

V50

演奏用のデータファイルの入手ですが”VGM”、”Archive”とかで検索するとゲーム音楽のまとめサイトが見つかります。ただ許諾関係が明らかでないので、ここではやってみた・・だけにしておきます。音源としてYM2151のみを使用している曲を選びダウンロードしま…

VGMデータ再生(3)

V50

VGMフォーマットを解析する部分は簡単ですが、問題なのはVGMデータをどのように持つか 、ということになります。デバッグ時のテストでは const unsigned char vgmdata[]= {0x56, 0x67, 0x6d, 0x20,・・・・・・}; という具合に配列としてコードに埋め込んで…

VGMデータ再生(2)

V50

大域変数cntはいつどこで参照しても起動時からの経過時間(0.72ms単位)を保持していることになります。32ビットがオーバーフローするのには3.2×10^6秒=約36日もかかるので十分な長さです。 さてVGMフォーマットのパーサ処理ですが「Arduino で YAMAHA YM21…

VGMデータ再生

V50

今年最初のCPUボード動かし初め、何をやろうかと考えていたのですが新年なので歌舞音曲の類が良かろうということでFM音源チップが載っているV50ボードを奥から引っ張り出してきました。 すでにYM2151のレジスタ直叩きで波形が出ること、簡単なMML文字列から…

液晶変質

長期間放置していた68020SBCでキャラクタ液晶が真っ黒になっていた、 というのがあって他のLCDは大丈夫だろうかと久々にV50基板を出してきたら これもなんかおかしいですね カメラが写り込んだ酷い写真ですが通電してないのに画面の真ん中あたりがどよーんと…

FM音源差し替え

FM音源IC、YM2151/DAコンバータYM3012が海外のサイトでえらく安く売られていたので試しに買ってみました。 数週間後、無事に届きましたが開けて出てきたのが右側のセット。 (左側のセットは手持ちしていたおそらく本物) YM3012はいいとしてもYM2151はマー…

テンポ設定

FM音源の発音時間は自分自身に内蔵されたタイマ割込みを使って制御するようにします まずMMLの時間分解能は4/4拍子の4分音符の長さ(1拍)を480(Ticks/beat)としています。 つまり480回タイマ割込みが入る長さを4分音符とします ・・・(1) こ…

MML処理追加

FM音源ICに対して音程を指定して発音させるドライバはできましたが既存の楽譜データから鳴らすのは結構大変です。 MIDIメッセージで直接制御したりスタンダードMIDIファイルが読み込めるのが目標ですが、その前段階としてMML(ミュージックマクロランゲージ…

OPMドライバ

FM音源IC(YM2151)の動作確認をしています。 すでにYM2203のドライバを作っているので元にするものはありますがレジスタ配置がかなり違うのでほとんど作り直しです。 この形で構造体timtblに流し込んでおき、これを編集してOPMのレジスタにセットする関数を…

コネクタ基板

USB-MIDI変換基板でホストとシリアル接続しデバッグを行っていますが 最終的にはそこにDINコネクタにつなぎ替えてMIDIシステムから制御することになります 同じ基板から切り分けたDINコネクタ基板も部品挿入し完成しました 今考えればUSB接続もできる外付け…

部品追加

FM音源IC YM2151 とD/Aコンバータ YM3012を挿入。 あと忘れていたアナログLPFを構成するコンデンサも実装しました YM2151の外部制御汎用出力CTL1,CTL2にはそれぞれ青と黄色のLEDを接続しています。 動作テストとし…

USB-MIDI変換

アダプタ基板に部品を挿入しました。 左端にあるFTDI USB-シリアル変換基板でTTLレベルになったシリアル信号をオープンコレクタバッファと高速フォトカプラでMIDI用のカレントループに変換して右側のピンヘッダに出力します この基板上のフォトカプラとV50基…

基板穴あけ

アダプタ基板もようやく穴あけと切り離ししました。 MIDIコネクタのランドが小さかったのはちょっと失敗

アダプタ基板エッチング

V50基板のデバッグのためにMIDI入出力をRS-232Cレベルに変換する基板を作らなきゃ、と思いつつパタン設計で止まっていたのをやっと再開しました。 RS-232C変換はどうせならUSB変換モジュールを載せてしまえばUSB直結にできるなー MIDI入出力を標準DINコネク…

クロック見直し

ここまで珍しくパタン設計ミスなしで来ましたが、ちょっと問題発生。 これから実装するFM音源IC(YM2151)のマスタークロックはV50のCLKOUT端子(システムクロック)に接続する設計にしていました。ところが、YM2151の最大入力クロック周波数は4MHzとなって…

シリアル確認

V50基板のほうもROMの内容が確定するまでは抜き差しがやりやすいようにZIFソケットを付けておきました 前回までにROMでの動作が確認できたので本来はRAM、I/Oとステップで進めていくべきですが、前にV53での開発実績があるので、そのときのモニタ…

リフレッシュサイクル

ROM内だけでループするプログラムなのに時々アドレスがとんでもないところに飛ぶ・・・ 一見妙な動きですが、何のことはないリフレッシュサイクルが自動挿入されていた、ってことでした。 ループしているときのバス状態を少し詳しく見てみます。 下位アドレ…

ROMライタ修正

・・とここまでくれば普通は察しがつくのですが、実のところ結構悩みました。 要は数値表現のエンディアンの違いです。 ROMライタの制御CPUはH8/3069を使っていて、これはモトローラの流れを汲むビッグエンディアンなわけです。short型の数値はメモリ上には…

データアライメント

あとはROMに書き込まれたデータがおかしいとしか考えられないわけで ロジアナでリセット解除直後の最初にフェッチされるコードをデータバスから取り込んでみました その結果がこれ。 一見良さそうですが「EB/FE」って上位下位逆!? これでは動かないわけで…

書込みデータ修正

GALへの書込みデータや読出しデータのダンプを見ているうちに原因に気付きました ISP LEVERが出力するJEDECファイルは論理ヒューズの変更があるブロックのデータしか出力されません。転送されなかったブロックの論理ヒューズは「F0*」でデフォルト値「0」が…

GAL設計見直し

簡単な2入力NANDのロジックが動いてないわけで、これはABELのコンパイル結果が問題なのかはたまたGALライタの動作がおかしいのか・・ (むろん後者でしょうが) まずは切り分けのためにロジック入力を実績のある回路図入力に切替えてみます メモリアクセス…

デバッグ開始

通電後、一定時間経つとCPUがロックする件はCPUのPGAソケットのハンダを少し追加したら何故か直りました。 おそらくRESETやREADYのような入力信号線が接触不良で浮いていて一定時間、 そのOPENのピンに漏れ電流でチャージ/放電すると機能/機能停止していたの…

CPU実装

V50CPU、書込み済みGAL、中身が何だかわからないROMを挿入。 暴走になるだろうけど何かしら動けば御の字で通電! CPUが直接出力するALE(アドレスラッチイネーブル):ch1と GALが出力するROMCS(ROMのチップイネーブル):ch2の波形です まぁクロック…

デコーダ設計

メモリ、I/Oのデコーダ部分を作りこみます GAL1個の簡単な構成で、こんな接続。 ABELでさくっとピンアサインと論理式を入力 シミュレーションもOKそうです ・・・でここからが問題。 出来上がったJEDECファイルを手製のGALライタで焼き込むのですが 試験的…

部品実装

ICソケット等の機構部品の取り付けも完了しました。 部品間の干渉もなくきれいに収まりました ・・・と言いたいところですが一ヶ所コネクタとぶつかってしまいチップ電解コンが付きませんでした こっそり角型の固体タンタルをつけています

面実装完了

表面実装のIC、チップCR類の取り付けが完了しました。 このあとICソケットなど背の低いものからスルーホール部品を取り付けていきます

部品実装開始

せっかく手配した基板を放置していたのでこちらにも部品実装始めました まずは難関SSOP-8ピンの7W125から。 ピンピッチは0.65mmと狭いですが、位置決めさえ決まればわざとブリッジさせて吸取り線でうまく行きます。下側の4本は一発で決まったのですが、上側4…

基板到着

発注していた基板が出来上がってきました 今回の経過を時系列で見てみると、 ステータス: 11/23 22:58 Order Confirmation 11/24 00:06 PCB Processing. 11/28 10:20 Processing. 11/28 16:11 Shipped. 郵便追跡: 11/29 17:21 国際交換局から発送 12/06 19…

テープアウト

ガーバーデータを基板製造業者へ出図しました。 ROMライタ用のPLCC-DIP変換の基板データとともに発注しています 発注した翌朝にはステータスがProcessingになり、その後何も言って来ないので検図は通ったのでしょうか 製造枚数が以前は最低10枚だったのが、…

パタン設計完成

そのほかチップ部品の向きや位置を調整しながら自動配線を行い最適パタンを探っていきます。何を持って良しとするかは難しく、ぱっと見、変な引き回しがないとかですが 定量的にはラインの総延長とかVIAの数で判断するんでしょうか。 やってみるとバタフライ…