2023年4月12日水曜日

某基板にアナログジョイスティックを繋いだ際の不具合。

 私が基板設計した某基板のお話。

USBでPCと接続してるその基板にアナログジョイスティックを繋いだ瞬間、
USB接続が瞬断されて動作がおかしくなるとの報告が。
アナログジョイスティックだけで起きる現象で、
一般的なジョイパッド等だと問題無いそうな。

真っ先に疑うのは、何等かの影響でPICマイコンにリセットかかってる可能性。
そこでPICにリセットかかってるかを調べてもらったが、結果は白。
PICマイコン自体はリセットかかってないのにUSBが瞬断されるとなると、
PCとPIC内のUSBコントローラー間の問題に有ると推測。
この先は現物を調査することに。

一式送って頂き、早速見てみると確かに瞬断が発生する。
では詳しく調べてみようと、3Dプリンターで使用しているUSBケーブルを繋いでみると、
あれ?症状が出ない??!

V-BUSラインにオシロスコープを繋いで様子を見てみました。
まず、以下が症状が出ないUSBケーブル。








 

アナログジョイスティックを繋いだ瞬間、電圧低下が起きてますね。
しかしこれだと問題が出ません。

 

次は別なUSBケーブルを使った場合。







 

 

USBの瞬断の症状が発生するのですが、
波形を見ても明らかに前のケーブルより電圧低下が激しいですね。

ちなみに使ってるオシロスコープは70MHz帯域の安物なので、
実際には波形のピークはもっと下に伸びてると推測されます。

 

ともあれこれで今回の症状の原因がほぼ特定できました。
V-BUSの電圧をPIC内のUSBコントローラーが監視していて、
これでUSBが繋がれたかどうかを見ているので、
瞬間的にはUSBケーブルが抜かれたように見えてるんですね。

電源ラインにて対策を検討したものの、お手上げ。
というのも、結局のところUSBケーブルを含むPCからのUSB電源供給の問題だからです。
電源ラインでの対策は諦め、PICのV-BUS入力ピンに対策を施します。
具体的にはLPFを挿入し、瞬間電圧低下を検知しないようしてやります。
このピンの入力インピーダンスは十分に高いようなので、
10KΩの抵抗と1μFのセラコンでLPFを構成。

結果はバッチリ。
全く現象が起きなくなりました。


ちなみにPICマイコンの電源は3.3Vなので、V-BUSからLDOを通して生成しています。
しっかり電解コンが入ってるので、3.3Vラインには全く電圧低下が起きてません。


それにしてもUSBケーブルで こんなに変わるとは面白いですね。
ケーブル内の電線の太さとコネクターの接触能力の違いなんでしょうけど、
ちょっと興味深い結果でした。


2023 / 4 / 14  追記

状況解析の作業内容にて、書き忘れていた内容が有った為、追記します。

ほぼ電源ラインの問題という感触を得た段階で、
それを追認する為の実験を行ってみました。

まず、以下のような治具を作成しました。








某基板とアナログジョイスティックの間に噛ませる、
延長アダプターと言えるような治具です。
ただし、繋いでいるのは電源線の2本のみ。
電源線以外の信号線は一切繋いでいません。

で、これを介して瞬断現象が発生するかどうかを追確認したわけです。
すると、これを噛ませても やはり瞬断は発生しました。

結論として、今回の瞬断現象に信号線は一切絡んでいない事が確実に。

わざわざこれを確認する必要が有るのか?と疑問を感じる方もいらっしゃいますか?
USBポートとアナログジョイスティックの間にはPICマイコンが存在してます。
信号線がPICに対して何らかの影響を及ぼし、
その結果PIC内のUSBコントローラーが瞬断現象を起こしてる、
という可能性が決してゼロではないからです。

もし実際にそんな現象が起きていたら、
割とやっかいなトラブルシュートになっていたかと。
しかし今回は 治具を作成して その切り分けを行ったわけです。


0 件のコメント:

コメントを投稿