PC用のATAPI CD-ROMドライブをCDプレイヤーとして使用するためのコントローラを作成しました。
PC用のATAPI CD-ROMドライブは安価ですが、アナログ出力、デジタル出力を備えたCDプレイヤーとしての能力を持っています。 ただし、取り出しボタンしか無いものが多く、操作のためにはPCを準備することになりますが、これでは大げさすぎますし、PCの冷却FANの騒音で音楽を聴くどころではありません。 そこで、基本的な操作が可能なコントローラを作成してみました。
押しボタンスイッチを4個搭載していて、左から再生/停止、1曲戻る、1曲進む、ディスク取り出しの機能です。 なお、ドライブ前面にある取り出し等のボタンを押すと、動作が保証できません。
LCDパネルには、CDの総曲数、総時間、再生中の曲番、再生時間を表示します。時間は、分/秒/フレーム(1/75秒)と無意味に細かく表示してしまいます。
今回の製作では、制御部分をATMEL社の1チップマイコン AVR AT90S8515 だけで構成してみました。AT90S8515の外付けオシレータは4MHzです。秋月で扱っているAT90S8515は8MHz動作が可能ですが、手持ち部品から適当に選んだら4MHz品だったのでそのまま使っています。
LCDパネルは、秋月で扱っているSUNLIKE SC1602BS-B です。
MUTE_OUTコネクタは、再生していない時にLoとなる信号を出力します。必要な場合は、DACのMUTE入力に接続して使用します。
ISP_CONコネクタは、基板にAT90S8515を搭載したままプログラムを書き込む時に使用するためのもので、書き込み済みのAT90S8515を使用する場合には不要です。 書き込みに使用するライタは、秋月のキットまたはChaNさんのライタ製作記事を参考にしてください。
配線を考えると、ポートA〜Dの割り付けを変更した方が良いかもしれなかったですね。スマートな割り付けになっていないので。
LCDパネルのデータ線とCD-ROMドライブのアドレス線が同一のネットですので、LCDへの配線長が長くなる場合はHC541等のバッファを入れた方が良いでしょう。 タイミング的にはかなり余裕を持っているので、多少長くても動作すると思いますが。 また、CD-ROMとのケーブルは、なるべく短かいものを使用して下さい。
ATA/ATAPIの規格ではダンピング抵抗等が必要ですが、今回の製作ではターゲットデバイスは1台だけの1対1接続であること、アクセスタイミングをソフトウエアで多めに取ることで省略しました。不安な場合は挿入した方が無難かもしれません。
プログラムソースとライタ用書き込みデータ (version 1.2)です。
ATAPIのアクセスは、PIO転送モード0でのみ実施しています。
version 1.1からの改善点
version 1.0からの改善点
このプログラムはかなり汚いため、参考にしない方が良いと思われます(苦笑)。 なお、ATMEL AVR Studio 4でコンパイル可能です。
CD-ROMドライブのマスタ/スレーブジャンパは、マスタに設定します。
接続するCD-ROMドライブによっては、異常な動作をする場合が有るかもしれません。動作確認は、松下 CR-583-JとMAGICO DVM-T12、VICTOR XR-RW2244でのみ行っています。
また、CD-ROMドライブと接続するDACによってはノイズを発生する場合があります。
製作費も2000円以下で実現できましたし、小さくまとめられたので満足しています。 プログラムも手直ししたいとは思うのですが、めんどくさいので何時になるやら...
プログラムソース/書き込み済みファイル version 1.0掲載。
プログラムソース/書き込み済みファイル version 1.1掲載。追記および誤記訂正を実施。
プログラムソース/書き込み済みファイル version 1.2掲載。追記および誤記訂正を実施。