スポンサーサイト

.-- -- スポンサー広告 comment(-) trackback(-)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AVRライタ(低速版)完成

.30 2010 AVR-USB comment(0) trackback(0)
SPIのSCKを遅くしてみたところ、内蔵1MHzの子もget device idが成功しました。書き込み、読み出し速度は今まで使っていたパラレルポート接続のライタと同じくらいです。

ここから高速化する方法をいくつかメモしておきます。
  1. 無駄なbusy checkを省く
  2. USBから送るコマンドを簡略化する
  3. SPIを高速化する
1についてはすでに実行し、殆ど変わらないことを確認しました。ただし、2, 3をやるとその効果は現れてくるはずなので無駄ではないと思います。
2, 3については両方実行しないとおそらく効果は出ませんが、成功すればRead backについては(busyで待つことがないので)少なくとも4~5倍の速度になり、writeもかなり変わるはずです。

今の状況では、USBからコマンドが2命令/2msの間隔で送られ、それをSPIで1msくらいかけて送っています。

USBから送られてくるコマンドは非常に単調なので、最初にコマンドを一回送れば、あとはAVR側で勝手に判断してコマンドを生成することも可能です。
そうするとUSBからコマンドが送られてくるのを待つ時間が解消され、高速になります。

そうすると次にネックになるのはSPIの通信速度ですが、始めにターゲットデバイスのヒューズビットをいじって分周無しの内部発振に切り替え、ターゲットを8MHzで動作させます。
そして書き込みなどが終わった後、ヒューズビットを元に戻せば完了です。これによって一回のコマンドの送信にかかる時間は理想的には32usまで短縮されます。

そろそろAVR-USBプロジェクトにも終わりが見えてきました。
関連記事

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackbackURL:http://yuranos.blog11.fc2.com/tb.php/70-72e106be
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。