- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
現在、FX3が突然、一時的・瞬間的にに電源が落ちたかのような挙動に困っています。
・ボードはCYUSB-KIT03を参考に作った自作ボードです。
・FWはSlaveFifoLoopbackのimgをそのまま使用しています。
通信中に突然通信が途切れてしまうことがあり、確認したところ
特に通信をしていないと思われるアイドリング状態で放置していた場合でも、
USB Control Centerのリスト上からデバイスが一瞬消えて、数秒以内に
再度エニュメレーションされて元に戻ることがあります。
オシロでの電源の確認等は実施しましたが、多少のノイズはあるにしても
異常は見つかっていません。
電源、GND、通信ラインへのノイズ混入、瞬停など、
考えられる原因はございますでしょうか?
(ハード、ソフト問いませんし。少しでも可能性が有るものは挙げていただけると助かります)
FX3 ICの機能にはUSB給電は使わず、外部電源から別途供給しています
アイドリング状態でも生じるということは、通信ラインは関係ないでしょうか?
それとも、ホストと定期的に通信しているのでしょうか?
ボード何種類か、ホストPC何種類かで試して、この組み合わせの時に発生しやすいという、
相性としか説明がつかないような現象もあり混乱しています。
ご助言の程、よろしくお願い致します。
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
復帰動作ができるようになったご連絡ありがとうございます。
電源以外ですと、記述されている通り、SSラインの信号品質が影響する可能性があります。
信号品質が悪い場合に、Hi-Speedでenumerationされることは考えられます。また、SuperSpeedでenumerationされた後に信号品質が悪くてタイムアウトが発生し、最終的にリンクエラーの状態(eSS.Inactive)になる可能性も考えられます。
リンクトレーニングの詳細はUSB 3.1 Specification [7.5 Link Training and Status State Machine (LTSSM)]をご覧いただければと存じます。日本語の解説ですと以下の一連の記事はわかりやすいです。
https://news.mynavi.jp/article/sopinion-293/
あとはホストとの接続にUSBケーブルが使われている場合は、ケーブルのずれといった物理的な接続問題がないかをご確認いただければと存じます。
USBプロトコルアナライザでリンクレイヤの状態を見られるのがベストですが、、、持っていない場合、または開発されたシステムの構成上観測が難しい場合は、しつこいようですが、ハードウェアガイドライン https://www.cypress.com/AN70707 をご参照いただきSSラインの確認もしていただくのがよろしいかと存じます。
よろしくお願い致します。
Hirotaka Takayama
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
電源が落ちるのは、 SuperSpeed で接続されている時でしょうか。
以下の文書に記述があるのですが、
https://www.cypress.com/AN70707
AN70707 - EZ-USB® FX3™/FX3S™ Hardware Design Guidelines and Schematic Checklist
SuperSpeed PHY の電源である U3RXVDDQ と U3TXVDDQ には、大きな突入電流が流れます。
このため、 1.2V の電源をこれらの SuperSpeed PHY の電源と VDD で共用している場合、 SuperSpeed PHY が ON するタイミングで VDD が下がってしまう場合があります。
このような場合、 VDD 電源のチョークコイルを短絡すると VDD 電源の低下を防ぐことができます。
まずは、 VDD 電源に電圧低下がみられないか確認してみてください。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
ご回答ありがとうございます。
常にSuperSpeedでの接続となります。
オシロでの観察より、確かに電圧がドロップするタイミングがあるのですが、
ガイドラインにあるような0.83V以下のドロップや、添付いただいた図にあるような
1V以下のスパイクは見られませんでした。
チョークコイルの挿入箇所は問題ありませんでしたが、一部容量や種類が非奨励の
箇所があった(22uF積セラ→10uFタンタル)ため、ハードの見直しをしたいと思います。
一方で、直近で通信不良に対する対策が必要なため、以下ご回答願えないでしょうか。
一瞬ノイズによりFx3が落ちても再エニュメレーションされて使用可能状態にまで復帰できれば
問題は無いのですが、まれにFX3が固まってしまったような挙動となり通信復帰できません。
そのような場合、RESET#端子に手動でリセットをかけると復帰するのはわかっているのですが、
ハードとしてはプッシュボタンのみがつながっている構造になっており、毎回プッシュボタンを
押すわけにもいかない状況です(自動復帰したいです)。
そこで、GPIOからの外部割込み、あるいはUSBのSSラインからの通信コマンドで、
USBにHWリセット同等のリセット処理をできないでしょうか?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
電圧Dropをするかどうかのご確認ありがとうございます。
ハードリセットと同等の処理をファームウェアで行う場合には、PP_INIT (0xE0017E04)レジスタのb11 (HARD_RESET_N)に0をWriteすることで、実現可能です。
以下、FX3 TRMからの抜粋です。
APIとしては、CyU3PDeviceReset API をご利用いただければと存じます。使い方の例は以下のスレッドにございます。
Implementation of Soft Reset in FX3 family devices
よろしくお願い致します。
Hirotaka Takayama
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
ご回答ありがとうございます。
おかげ様で復帰動作が可能となりフリーズのリスクは回避できるようになりました。
一方で、やはり根本解決はしたいと考えております。
コンデンサやチョークコイル等を見直し、電源のノイズは±70mVpp程度に抑えられており、手持ちのCYUSB-KIT03相当になりました。
しかし、オシロでトリガをかけて常時モニタした状態で電源のドロップが全く起こっていないのにも関わらず、やはりUSB Control Centerのリストからデバイスが一瞬消えてしまう現象が発生します。
電源因ではないとすると、他に何か原因が考えられますでしょうか?
例えばSSラインのマッチングの出来が悪いボードがあった場合に、上記現象は起こりえますか?
それとも、通信品質が悪いとUSB2.0に切り替わるだけでしょうか?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
復帰動作ができるようになったご連絡ありがとうございます。
電源以外ですと、記述されている通り、SSラインの信号品質が影響する可能性があります。
信号品質が悪い場合に、Hi-Speedでenumerationされることは考えられます。また、SuperSpeedでenumerationされた後に信号品質が悪くてタイムアウトが発生し、最終的にリンクエラーの状態(eSS.Inactive)になる可能性も考えられます。
リンクトレーニングの詳細はUSB 3.1 Specification [7.5 Link Training and Status State Machine (LTSSM)]をご覧いただければと存じます。日本語の解説ですと以下の一連の記事はわかりやすいです。
https://news.mynavi.jp/article/sopinion-293/
あとはホストとの接続にUSBケーブルが使われている場合は、ケーブルのずれといった物理的な接続問題がないかをご確認いただければと存じます。
USBプロトコルアナライザでリンクレイヤの状態を見られるのがベストですが、、、持っていない場合、または開発されたシステムの構成上観測が難しい場合は、しつこいようですが、ハードウェアガイドライン https://www.cypress.com/AN70707 をご参照いただきSSラインの確認もしていただくのがよろしいかと存じます。
よろしくお願い致します。
Hirotaka Takayama