現在は両方とも、オーバークロックの27MHzで動作させていたが、見直しして最適化することに。
USB制御側(ATTiny2313)は、USB low speed (1.5 M BPS)のデータ変化の周期(666.6ns)を作成するために、27MHz(18clock/bit)はそのまま。
パソピアへのキーリターン側(ATTiny4213)は、DIR信号に間に合うように返答する必要がある。
20MHzの場合、稀に間に合わない場合があったのでオーバークロックしたが、27MHzでは余裕があったので、24MHzに落としてみる。
ATTiny4313は、DIR信号の立ち上がりで、以下の割り込み処理を実施
(1) nOEをLowにセット
(2) Clock信号がLowになるのを待って、スキャン信号を取得
(3) スキャン信号に応じたリターン信号を発信。
(4) nOEをHighに戻す
課題は、DIR信号の立ち上がりから4313の割り込み開始までの間隔が0.1us程度のぱらつきがあること。
まずはクロックを24MHzにして波形を見てみる。
以下は割り込み開始が早い場合。
B0(nOE)がB1(Clock)立ち上がり前に切り替わるので、スキャン信号取得タイミングはnopで調整してある
以下は、割り込み処理開始が遅いパターン
B2(DIR信号)がLowになる前に、B0(nOE)をHighに戻すのが間に合っている
割り込み開始が早い場合でも遅い場合でも間に合いそうなので、24MHzを採用することに。
0 件のコメント:
コメントを投稿