緊急指令!YM2151を調達せよ!

はいどーもこんばんわにょろんXです。
ある日のことでございます。





[にょ] むむ・・ここは・・?
   って、まさかこのパターンは!!


[???] 気が付いたかね?
boss6.png


[にょ] でたー! やっぱりー!
    なんの用ですか!


[BOSS] ふむ・・FM音源ボード製造計画の進捗はどうなっているかね?


[にょ] 制御基板は予定通りです。ですが、音源基板の方が・・


[BOSS] 遅れている、とでも言うのかね?


[にょ] はっ。大幅に遅れております


[BOSS] なぜかね?


[にょ] FM音源チップがないんです。特にYM2151が調達できておりません


[BOSS] …なんとかしたまえ。いずれにせよ、計画の遅延は許されない


[にょ] えー( ゚Д゚)








ぬぅ。

なんとかしろですと?簡単に言ってくれるのです。
どこにあるっていうのですか。偽物ばかりなのですよー
DSC_0008a.JPG
にせもの


しかも、なんかBOSS増えてたし・・


と、そんなやさぐれていた時です。

そういえば、YM2151をFPGAで再現した実装があったではありませんか。

イカビク氏(@RCAVictorCo)のIKAOPM(https://github.com/ika-musume/IKAOPM)でございます。
忠実にYM2151を再現した凄い奴なのです!


FPGAは使ったことがなかったりするのですが、なんとか挑戦してみることにします!

まずはFPGAは全然わからないので、公式のブレイクアウトボードというものを買ってみるのです。

DSC_0260a.JPG
でもぼーど


これに組み込んでいくことにするのです。

初めてのFPGAでございます。
うまくできるのかしら‥





DSC_0167a.JPG
スバル最中







ひとまずできました。


Verilogわかんないのですが、検索しながらなんとかやってみました。


合成したLUT結果.png
LUT使用数とか


今回、使わない機能はオミットしました。
具体的にはチップからの読込周りをごっそりカットしています。
ついでにIRQ割り込みもカット。
どうせOPNAMシリーズでは使わないですし。


これをOPNAMシリーズに搭載してさっそく実験してみます!

しかしながらちゃんと演奏できるかの前に、電気的に壊れないか心配です。
なるべく頑丈なOPNAMに取り付けて確認することにします。


ちょうどいいのがありました!

DSC_0120a.JPG
軍用FM音源プレイヤー基板


DSC_0118a.JPG
軍用モデル完成品


軍用モデルならきっと頑丈に違いありません。


まずついているYM2151を取り外します。

DSC_0261a.JPG
YM2151下にPLLユニットが入ってました



さっそく取り付けてみるのです!





DSC_0267a.JPG
しゃきーん


うし。

playing_breakout.jpg

なりもうした


デモボードと音源ボードの2つにUSBケーブルを接続、両方に給電して演奏する必要があるのですが、ひとまず鳴っています。


ところで、今回FPGAの開発にはLatticeの純正ツールを使っているのですが問題点が。

・よくわからん警告がでる。警告名はソースには存在しない。

どうも利用状況に応じてペリフェラルのDSPなどが、自動的にコンパイル環境に追加されるようです。
追加されているのは見えませんけど。
で、そのソースが警告をわさわさ吐きます。
勝手に追加するのはいいけど、警告吐かないようにしてほしいのです。


・エラーレベルがERROR、CRITICAL、WARNING、INFO

CRITICALもバンバンでます。例によって何かのモジュールの。
でも、エラーじゃないので動きます。
そんなもんです?


・シミュレータが動かない

究極の問題です。どうも今年の頭辺りから添付されているシミュレータが入れ替わったみたいです。
で、発行されるツールのライセンスもこのツール用になっています。
古いバージョンのシミュレータはライセンスがないので動かすことができません。

で、このシミュレータがまったく起動しません。
エラーも出さず、スプラッシュスクリーンの後、ふっと消えて立ち上がってこないのです。
検索するとこのツールで同様の症状が書き込まれていました。

くぬやろー!
シミュレーションできないので、勘で何とかするしかありません。

FPGAを使い始めて1週間のユーザーにはつらいぜ・・


・なんかツールがうまく合成してくれる時とくれない時がある

何も変えてないのに、もう一度再コンパイル(再合成)すると動かなくなります。
コメントを変更して保存するだけでもそうなります。

原因がわかりません。
モジュール図を出してみると、timinggenとtiminggen_defaultの場合があって、defaultが付いていると動く気がします。

なので、音源ボードに取り付けたまま、鳴るまであれこれいじってコンパイルしては書込み、コンパイルしては書込み・・とやって鳴るまで頑張るしかありません。


こまったツールでございます。

さて、ひとまず鳴ったので、基板を作成することにします。








DSC_0136a.JPG
わかめ祭りですと!


DSC_0138a.JPG
驚愕の必要量650mlのお湯


DSC_0140a.JPG
乾燥わかめがたっぷり入っています


DSC_0130a.JPG
うまし








基板ができましたー 

DSC_0297a.JPG
わかめ・・ではなく基板でございます


さっそく作っていくことにします。

今回の基板は、YM2151純正よりもほんの少し大きいのです。
まあ2層基板なので配線の関係でちょっと大きめにしています。
底面パッドをはんだ付けするために穴開けてるし。

DSC_0299a.JPG
底面パッド


ぴったしサイズでも入ったのでしょうけど。

今回使うチップはQFNパッケージでございます。これつけるの何気に初めてだったり。

DSC_0300a.JPG

敵は底面と側面にあり


さっそくメインチップから、と、思ったのですが、今回の基板は実装面積の都合上、背面にも部品があるのです。
というわけで、背面から実装していきます。

まずは丁寧にマスキングして
DSC_0302a.JPG

はんだが飛び散らないように


部品を取り付けるのです。
そんなにないのですぐ終わるかと思ったのですが、なんと狭くてピンセットとかはんだごてがうまく入りません。

DSC_0303a.JPG
許容範囲


がたがたやねん。。
まあたぶんうごくのです。
このぶろぐのテーマは脱力なのです。これくらいでいいのです。


さて、次はQFNのメインチップです。
位置合わせが何気に面倒です。なにしろよく見えないのです。
というわけで勘で調整しては拡大して確認することしばし。

DSC_0305a.JPG

一番いい位置を頼む


大丈夫そうです!
半田レベラーの銀の部分に端子の赤っぽい辺りが写り込んでたりして、それなりに調整できたのです。

DSC_0309a.JPG
大丈夫だ。問題ない


フラックスをたっぷり塗って、コテにはんだを乗っけてささっと、いったりきたりでなぞります。
足りないところには、もう一度同じ手順を繰り返します。
いい感じではんだ付けできました!


このチップ、なんと側面の配線にGND(グランド)端子が出ていません。GNDは底面パッドにしかないのです。
というわけで底面ははんだ付け必須です。

DSC_0310a.JPG
裏から


というわけで、ただでさえ両面基板で配線面積が少ないのに、大穴を開けて裏からはんだ付けできるようにしています。
裏からはんだ付けしてやります。

DSC_0312a.JPG

だばっとはんだ付け


フラックスが焦げております。綺麗にするのはあとで。あーとーでーー。


さてさて、つぎはFPGAのコンフィギュレーションメモリを搭載します。

DSC_0313a.JPG
FLASH!


勢いで周りのプルアップ抵抗とか、キャパシタとかもつけました。
今更ですが表面実装悪の部品はやっぱり嫌いなのです。


あ!買ってなかった抵抗値の表面実装部品があった!

DSC_0314a.JPG
勢い


ふう。

あ!チップLEDが見つからない!!

DSC_0315a.JPG
勢い2


・・きっとなんとかなるのです。


DSC_0316a.JPG
あと少し


ひとまず部品の実装は終わりましたので、あとは足を取り付けます。
こういうソケットにさす足の部分、毎回基板連結用のピンヘッダを取り付けようと思っていて買うのですが、なぜか肝心の使うときには見当たりません。
仕方ないので、定番の細ピンヘッダを取り付けます。

固定の為に適当な音源ボードのソケットにさすのです。

DSC_0317a.JPG

YM2151部分で固定


DSC_0318a.JPG

取り付け


うし。

DSC_0320a.JPG
できました!


なんとなく見た目が怪しい気がしないでもないですが、ひとまず出来ました!


さて、動かすためにはコンフィギュレーションデータをFLASHメモリに書込まねばなりません。
元データをどういう風にメモリに書込んでいるのかわからないので、いったんは純正の書込み用プログラマーを経由して書き込みます。

純正の書き込み用プログラマーは、どうやらハードウェアとしてFT232を使っているようです。
というわけで秋月電子で調達。

んで、接続。

DSC_0325a.JPG

FT232側


DSC_0323a.JPG

V2151側



書込み・・ぬ? ドライバが云々言われて書き込みできません。

なぜや?
なんどやってみてもハードウェアを認識してくれないのです。

おかしいなと思ってよーく見てみると、純正のツールが使っていたのはFT232ではなく、FT2232ではございませんか。


な、なんだってー
これ違う型番じゃん!


再調達_(:3」∠)_







来ましたー


と、取り付けようとして回路を見たら気になるポイントが。
なんとこのボードはちょっと古くて、標準のI/O電圧が5Vらしいのです。

3.3VのI/Oモードにするには、外部のレギュレータで3.3Vを生成してI/O電圧端子に給電せよ、と書かれています。
なんと。


しかしながら、外付けしようにも3.3Vのレギュレータは在庫を切らしています。

・・前回間違って買った方は3.3Vで動いています。

この2枚のボードを合体させればいけるのでは?
USBケーブルを2本差す必要がありますが、片方は3.3Vのレギュレータとしてだけ使います。

理論上は問題ありません!

DSC_0329a.JPG
いざ、書込み



・・無事書き込みできました。

プロトタイプは演奏するのに2本のUSBケーブルが必要だったのですが、まさか本番用のコンフィギュレーションの書込みにも2本必要だとは_(:3」∠)_


さっそく取り付けて試してみるのです。

DSC_0326a.JPG


セットアップ完了のLEDが点灯しました!


演奏デモ



やれやれ、ひとまずYM2151はなんとかなりそうなのです。


ほか記事は以下の記事紹介ページから
https://asmpwx.seesaa.net/article/201803article_1.html

この記事へのコメント