私はLPCシリーズのマイクロコントローラを用いた初めてのUSB対応製品に取り組んでおり、PHYを直接扱うのはこれが初めてです。これはカスタム基板上で、USB1高速USB接続を使用しています。
現在、dev_cdc_vcom_bm SDKの例を自分のデバイスで動かそうとしています(LPCXpresso55S69の開発ボードでテストした後です)。私のカスタム基板の明らかな違いは、16MHzの水晶発振子ではなく、20MHzの水晶発振子が搭載されている点です。
最初の問題として、PLL_SICレジスタがPLL_LOCKを0と表示しているため、PLLがロックされていないことが分かりました。USBクロック、USB PLL電源、およびUSB PLL有効化が有効になっています。クロック分周器は、20MHzクロックの場合、24で分周するように設定されています(値4)。PLL_PREDIV = 0。USB1_3V3は3.299Vと安定しているので、入力電圧は問題なさそうです。
もう一つの潜在的な問題点は、20MHzの水晶発振器ではなく、20MHzの発振器を使用していることです。別のThreadでそれが問題だと見かけましたが、それはKinetisの部品で、同じIPかどうかはわかりません。たとえそうだとしても、それが論点ずらしだったとしても驚かないだろう。
添付はデバイスの回路図ですが、今回の場合はそれが問題になるはずです。
PLLをロックさせるために、次にどこを調べれば良いか、何か考えはありますか?
こんにちは、 @martinjaymckee さん。
BR
ハリー
なるほど、それはもっともだ。XO32Mはバッファバイパスを使用するように設定済みです。メインクロックPLLが正しい発振器入力を使用していることを確認しました。
USB PLLを動作させるために、XO32Mクロックブロックで他に設定を変更する必要はありますか?