ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

V-USB

2011年07月15日 | 日記

V-USB、関わりの無かった分野で知識は皆無である。

しかし、USBasmやAVRminiprog WriterはこのV-USBを使っている。最初はAVR-USBと称して

いたらしいが、ATMELからクレームが付いてV-USBになったとか。

ソフトでhidをエミュレートすることでUSB LOW スピードでPCとのやりとりが可能になる。

http://www.obdev.at/products/vusb/easylogger.html ここに簡単なロガーの例がある。

Tiny85で作って見ようかと取りあえずコンパイルしてみた。

内蔵RC発振器を16.5MHzにすることでUSB LOW の1.5MHzの11倍が丁度16.5MHzになる

のでうまく同期が取れるようである。

前にWSNのHIDaspxを作る為に買ってあった基板がある、これだと具合が良さそうだが、Tiny2313は

RC発振で12MHzまで延びるか?

暑いしハンダ付けも何だかかったるいなー。

 

コメント (32)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« アーティチョーク | トップ | V-USB Easylogger »
最新の画像もっと見る

32 コメント

コメント日が  古い順  |   新しい順
ATTINY85 Logger (kawana)
2011-07-15 13:41:18
ATTINY2313内蔵RC発振器1/1で何故8MHzちょっきりでないのかと考えていました。
8.25をPLLでx2にすれば16.5MHzを得られますね

LowSpeed1.5MHzで動作させるにはx11の16.5MHzが得られますね。
Tiny85での製作は、価値ある検討の一つと思いました
返信する
Unknown (ラジオ少年)
2011-07-15 14:28:07
内蔵発振器は工場出荷時は8MHzになるように調整され、その校正値がOSCCALバイトに書き込まれています。
この値を変えることで周波数が変化する訳です。
0x7Fで2倍くらいにはなるようですから、12MHZにすることも出来るかも知れません。
外部XTAL(12MHz)を省略することが出来ます。ただ、うまくUSBで動作するかは分かりません。
内部RC発振器の周波数の安定度に依存するでしょうね。
返信する
OSCALは変更していないが (kawana)
2011-07-15 14:43:17
OSCALは変更していないが、8.3MHzに成っている

周波数カウンタが狂っているのか。構成の事
を考えてみよう。
返信する
Unknown (senshu)
2011-07-15 17:17:45
V-USBのRC発振モードについて、補足します。

RC発振の安定性では、通常の方法ではUSB通信は成立しません。

しかし、USB通信時は、HOST側から正確な周期の信号が得られます。
この信号を利用して、RC発振の周波数を制御し、正確さを維持しま
す。こうした制御を行うことで、結果として水晶振動子に近い
精度を確保し、通信を可能にするのです。

この補正に必要な処理のため、12MHzよりも、若干高めの12.8MHz
で動作するようになっています。多くのAVRマイコンのデータシー
トを確認する限り、12.8MHzはRC発振の上限に近いです。

この手法は、コードを書いている連中の頭を疑いたくなるような
超絶技巧です。

初期の実装は不安定で、私は「RC発振はやっぱり使えない」と
あきらめていました。



返信する
Ceramic振動子偏差±0.5% (kawana)
2011-07-15 18:03:40
HIDspxの振動子を12MHzのセラミックに交換し
動作させた事が有ります。
実験結果は、NGでした。12MHzのセラミックでも
12MHz+0.5%の物が多く、Errorにかかる物が
多かったと思います。
senshuさんのHIDspxの回路図にもセラミック
振動子は、NGと書いて有ります。
12MHzの0.5%は、意外と大きい様に思いました。
技巧とは、Clockを標準12発として奇数だったらこちらのTiming調整ル-チンの様な事していた様でした。
返信する
Unknown (ラジオ少年)
2011-07-15 19:22:39
senshuさん、kawanaさん、今晩は。

>超絶技巧です。
どうもその様ですね。詳細は分かりませんが。
easyloggerにusbdrvasm165.incなるファイルがあり、これがその超絶技巧を司る様です。
USBの同期信号にRC-CPUCLKを追随させるソフトによるPLLの様な機能をさせているようですね。
返信する
Unknown (senshu)
2011-07-16 00:31:43
kawanaさんへ

>senshuさんのHIDspxの回路図にもセラミック
>振動子は、NGと書いて有ります。

今まで水晶振動子以外では安定動作を実現できませんでした。
動いても、夏場はOK,冬場はNG,そんな具合です。

また、HIDaspx(Hard+firmware)とhidspx(制御用ソフト)は
明確に区別し、大文字小文字も正確に綴ってください。
ハードは大文字+小文字で始め、ソフトは小文字のみ、と
いう使い分けです。

ラジオ少年さんへ

セラロックでも安定に動作しないV-USBに対し、RC OSCで
動作させるという工夫が追加され、非常に感激しました。

これで安定に AVRminiProg、あるいはUSBaspを動作させるこ
とができるなら、激安のAVRライタを実現できます。
返信する
Unknown (kawana)
2011-07-16 01:53:40
>激安のAVRライタを実現できます

研究の価値は有りますが、水晶の値段も50¥
くらいです、私は、自分の頭と相談して
Programを見る程度に留めておきます。
返信する
Unknown (ラジオ少年)
2011-07-16 11:17:35
不安定なRC発振器をソフトで制御することで、USBを使えるようにする、このテクニックに興味がわきます。
非常にクリチカルなタイミングで動作するようにプログラムが作られている様ですね。
USBより送ってくる同期信号を元にOSCCALの値をその都度設定しRC発振器の周波数を合わせながら、データのやりとりをさせる、そんなからくりをよく考えた物だと驚きです。
AVRのCLK=83ns/12MHz、USBは1.5MHz(666ns)この時間の間に同期処理をする?(良くは分かりませんが)
この程度の推測しかできません。
返信する
Unknown (senshu)
2011-07-16 11:42:58
ラジオ少年さん、こんにちは。

RC OSCでの実現はコストも魅力ではありますが、不可能と思わ
れることを可能にするチャレンジ精神が素晴らしいです。

「超絶技巧」は音楽用語だと思いますが、技術の世界に適用する
なら、この言葉はぴったりだと思います。

私もようやくですが、7/16 10:00ごろ、V-USBの最新版を
AVRminiProgに適用することができました。

RC OSCで動作を検証できる舞台は整ったわけです。

今では稀な手法(動作クロックを数えながらコーディング)で
書かれた V-USBを堪能してください。本当に頭が下がります。
返信する

コメントを投稿

日記」カテゴリの最新記事