スポンサーサイト

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

AVRライタ汎用化(1)

.18 2010 AVR-USB comment(0) trackback(0)
高速化はあと一歩。バッファサイズを大きく取ることでUSBのパケットが減るので32kBデバイスの場合1.5secの高速化が見込めます。
が、USBのパケット送受信用に書いたアセンブリファイルを少々いじる必要があって結構面倒なので後回し。

今回の汎用化は
  • 外部12MHz発振でないもの(SPIバスが遅いもの)にも対応する
  • 電圧が5Vでない場合を考える
の2つです。他種デバイスへの対応はAVR側をいじる必要はないので後回しです。

Low Speed Deviceへの対応:SPI_LOW_SPEEDモードを追加。これで内蔵発振1MHzのデバイスのIDを取得できたので大丈夫なはず。

電圧が5Vじゃない場合…

これが面倒。

案1.
ボードとUSB電源5Vの間に抵抗を入れてライタはボード側の電源につなぐ。
=>
ボードに電源が入っていないとき、ライタは5V - 抵抗の電圧降下。抵抗値を小さくする必要あり。
ボードに3.3Vがかかっているとき、抵抗を流れる電流が結構大きくなってUSB電源からの電流が100mAを超える可能性あり。抵抗値を大きくするべき。
上記2つの要件を同時に満たす抵抗値はないと思われる。

案2.
AVRのADCを使ってボードに電源が入っているかどうかを調べてUSB5Vとボード電源を接続するかを決める。(FETへ出力する)
=>
AVRのプログラムメモリ的に厳しい。接続時に一度だけDACを調べて…というのが現実的だが(ボードに電源が供給されているかを調べるためにはその都度USB5Vとボード電源を切断する必要がある)、ライタ接続後にボードに電源を投入することはそれなりにありうるので微妙。

案3.
ライタのAVRを3.3Vで動かす。
=>
ボードの電源ラインとUSB5Vを接続するかという問題は消えない。

案4.
ジャンパを繋ぐとボードの電源ラインにUSB5Vを接続、外すと切断。
=>
ライター作成時に最初に考えた回路図。結局これが一番よさそう。


結局進展なし(´・ω・`)

# 昨日の追記

libusbを使うときの注意

コンパイル時
-lusb
をつける。
実行時、なぜかsudoが必要。
関連記事

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

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