[リストへもどる]
一括表示
タイトルATAPI CD-ROMコントローラの回路について
記事No844
投稿日: 2007/08/11(Sat) 10:57:46
投稿者トシ
ATAPI CD-ROMコントローラを興味深く拝見しました。
自分でも作ってみようかと思っています。

上野様の回路でわからないところがあるので、ご教示お願いします。

version 2.6で、LCDは4ビットバスモードでお使いになり、
その信号はLCDのD7とATAPIのCS0(PB3)、D6〜D4がDA2〜DA0(PB2〜PB0)
に接続されています。ATAPIの仕様では、DA0〜DA2でATAPI側のI/O
レジスタを選択し、CS0、CS1でCommand Block Registerか、
Control Block Registerかを選択しているようです。

LCDへ表示するデータパターンによっては、ATAPI側で変な動作を
するのではないかと思いますが、いかがでしょうか?
プログラムはまだよく見ていませんが、プログラム的に問題回避
されているのであれば、それについてもご教示お願い申し上げます。

タイトルRe: ATAPI CD-ROMコントローラの回路について
記事No845
投稿日: 2007/08/11(Sat) 19:15:46
投稿者うえの
LCD (SC1602)は、E (Enable)をH→Lにした時のR、D7〜D4の値でアクセスします。逆に言うと、EをH→LにしたときのみR、D7〜D4が確定していれば良く、それ以外の時のR、D7〜D4はどんな値になってもLCDの動作に影響しません。(LCDはR/WをLに固定しているので、ライトしか行いません)

同様に、ATAPIバス(PIOモードで使用)は、DIOWまたはDIORがL→HになったときのCS1〜0、DA2〜0の値でアクセスするため、それ以外の時はどんな値になろうとCD-ROMドライブの動作に影響しません。

プログラムでLCDとATAPIのアクセスが同時に行うことはしていませんので、問題はありません。ただし、LCD用の信号とATAPI用の信号を共用していますので、ATAPIケーブルが長過ぎたりすると信号波形が乱れて問題となるかもしれません。これも、共用している信号を出力してからEまたはDIOW/DIORを操作するまでの時間を長めに取ることで回避しているつもりです。

もちろん、ご指摘の信号は共用せず個別にした方が良いです。ただ、ATmega8515が40ピンでI/Oに使用できるピン数が足りないため、なるべく影響のない信号を共用しています。

タイトルRe^2: ATAPI CD-ROMコントローラの回路について
記事No846
投稿日: 2007/08/11(Sat) 20:30:45
投稿者トシ
ご丁寧な説明、ありがとうございます。

昼間、少しソースを見たのですが、Waitをたくさん入れている
理由がわかりました。

またわからないことがでてきましたら、投稿させていただきます。
今後とも、よろしくお願いします。

タイトルRe^3: ATAPI CD-ROMコントローラの回路について
記事No900
投稿日: 2008/12/09(Tue) 12:41:06
投稿者トシ
だいぶ時間が経過してしまったのですが、
上野様の回路とは異なる回路でコントローラを作りました。
MCUは8535、プログラムはCで書きました。
手持ちのドライブでは問題なく動作します。
ただ、曲をスキップしたときのポップノイズはあります。
MSのメディアプレーヤでも出るのでOKとしました。
別の問題としてCDドライブによっては
再生時の音(ブーンというモータの回転音?)が大きいのです。
これはドライブ側のファームウェアに依存することで
どうしようもないのでしょうか?
アドバイスをいただけるとありがたいです。

タイトルRe^4: ATAPI CD-ROMコントローラの回路について
記事No901
投稿日: 2008/12/10(Wed) 09:05:43
投稿者うえの
私が作った方式のコントローラではコマンドを送信するだけなので、ドライブ側に依存してしまうと思います。

回転数の制御(48倍速とかではなく、1倍で回転させる)が出来ると良いのですが、そういうコマンドが見当たらなくて.... 

タイトルRe^5: ATAPI CD-ROMコントローラの回路について
記事No902
投稿日: 2008/12/11(Thu) 12:20:12
投稿者トシ
ご回答ありがとうございます。
確かに、ATAPIコマンドにはモータコントロールコマンドは
見当たりませんね。
諦めるしかないようですね。