昼飯前のエレキ業務は、昨日から悩んでいるUSB Phyが動かない件のFIXである.
以前書いた通り、STM32シリーズはHighSpeed Phyを持たない.外付けする必要がある.
STM32でDCCを作る方向で (4) HSはPhyが外付けになります
それで、USB3300という小さなPhy ICを外付けるわけなのだが、昨日からこれの火入れをやり始めたが動かない.win10マシンに接続するが、descriptor読めませんでabortしちゃうんだ.
その原因はアホなものだった.
↓こういう安っちいUSB3300ボードの回路をパクった.
トラブルシュートのため各部の波形を観測していて、水晶発振子の発振が不安定だなぁと思ってはいた.間歇発振してたのだ.でもそういう制御をしてるのかなと思ってスルー.
いろいろと手を尽くしたが問題解決しなくて、やはり間歇発振が気になるなぁとパクり回路や推奨回路を見ていたら、以下の点に気付いた.
↓USB3300の水晶発振子に付けるコンデンサはなぜか推奨値が20pFなんだ.フツー10pFじゃないかな、めんどくさーと思いつつも素直に従う.
↓なのだが、もっと重要な10MΩを見落としてこんな回路にしていた.
10MΩを持ってないので1MΩを水晶にパラってみる.
動いた.win10がUSB deviceとして認識した.めでたしめでたし.
feedback抵抗を要する発振回路ってbipola procerssの時代にはフツーだったけど、CMOS processでは珍しいと思うんだがどうだろう.もしかしてUSB3300はbi-CMOSだったりしたら懐かしいけどまさかそんな事はないだろう.
#今日はこれから「言の葉の庭」を見に行くんだ.
かしこ
本家データシート
返信削除http://ww1.microchip.com/downloads/en/DeviceDoc/00001783C.pdf
を見ると、水晶にパラに入れる抵抗は、1MΩが標準みたいですよ。
※何で、元回路が10MΩなのかはナゾですね
ちなみに、24MHzはリファレンスクロックで、内部PLLで60MHzを生成してて、
その出力がCLKOUTに出てるみたいですね。
※USB周りの回路って、もろ「アナログ回路」なんですね・・・
この程度のインターフェースでも「デジ・アナ混載」なんだな。
あホントだ、1Mですね。マルパクリどっちにしようかですけど本家の1Mにしときます。
削除USB2.0だとそこそこ周波数高いのでPhyの中身はかなりアナログチックなのだと思います。STM32に内蔵するのをやめてるのもプロセスが相性悪しなのかなと。
そこに抵抗入っているのは初めて見ましたー。
返信削除昔、74HC04Uにfeedback抵抗を抱かせて、簡便なリニアアンプにするのが流行しました。
削除発振回路の都合でリニアチックにしたいUSB3300さんなのでありましょー
>74HC04Uにfeedback抵抗を抱かせて、簡便なリニアアンプにするのが流行しました
削除「U」(Unbufferd)なところがミソなんですよね。VCOとかも作れちゃう。
(Uが付かない奴は、内部が「インバータ3つ」なので、うまく動かない)
※ちなみにTTLには、ズバリ「VCO」もあったので、あまりそういう使い方は
してませんでしたが。
ははは、そうでした.Uじゃないと動かないと製作記事に書かれてました.
削除今でもUなんて売ってるんですかね.