こんにちは、
誰かが早急にこの件に関して私をCANことを願っています。
現場に、ADC が突然動作を停止し、ADC 値がフリーズしてしまう製品があります。この問題は現場でのみ発生し、テスト ラボでは再現できません。プロセッサのマニュアルを参照しましたが、警告なしに ADC 変換を停止できるソースは見つかりませんでした。CPU がハードリセットされると、ADC は正常に動作し始めます。
内部 CPU 温度も監視しており、同様の動作が見られます。
この動作の原因は何なのか説明していただけますか? ADC モジュールを復旧させるために、ハードリセットせずに ADC モジュールを再起動するだけで可能でしょうか?
ありがとうございます
よろしくお願いいたします。
アリ・メラジ
こんにちは、ピーター。
申し訳ありませんが、再起動CANないことをお伝えしたかったのです。
高解像度のスコープ測定をいくつか行ったところ、HV がオンになると、ADC 入力が数マイクロ秒から 5V を超えてから再び安定することがわかりました。現在、私たちは研究室でこの問題を詳しく調査しており、エレクトロニクス チームがこの問題を軽減するために取り組んでいます。
あなたの意見にはすべて同意します。
ラボからスコープ プロットが届き次第、その最新情報をお知らせします。また、おそらく、調査結果に関する詳しい情報も提供する予定です。
ピーターさん、本当にありがとう。
よろしくお願いいたします。
アリ・メラジ
こんにちは、
問題は、これらの ADC 障害は制御には影響しないものの、製品の機能が制限されるため、Micro をリセットCANことです。
CANか、それともできませんか?ADC モジュールと PBRIDGE (レジスタが配置されている場所) をリセットする方法はシステム リセットのみだからです。これもデザインとの議論から生まれた成果です。
さらに、EMI(900Vスイッチング)でマイクロを妨害する場合、これはマイクロ全体のコンセプトにとっても重要であると想定します。
ADC モジュールを停止させるほどの大きな外乱が発生した場合に、どのようにしてセーフティ機能を保証できるのでしょうか。
FCCU、STCU などの、マイクロの実行中に常に使用されるわけではないモジュールも影響を受ける可能性があります。
常に実行されているため、ADC の問題だけが表示されます。
マイクロが IVOR または FCCU ルーチンをプロセッシング中に高電圧をオンにすると、システムに重大な影響を与える可能性があります。
これらは私の側からの単なるいくつかの推測です。
よろしくお願いいたします
ピーター
こんにちは、ピーター。
テストしていただきありがとうございます。
問題は、これらの ADC 障害は制御には影響しないものの、製品の機能が制限されるため、Micro をリセットCANことです。
製品はすでに お客様 の手元にあるため、それらに対して何かを変更することは可能ですが、当社では 製品 を改訂するために、Mirco への EMI の影響を最小限に抑える方法について社内調査を行っています。暫定的な解決策としては、既存の製品で障害が発生した場合に、何らかの方法で ADC を再起動してオンラインに戻すことが考えられます。
SO、唯一の解決策は Mirco をリセットすることであり、ADC を復活させる他の方法はないということを示唆していると思いますか?
まず ADC の電源を切り、次にクロックを無効にし、次にクロックを再起動し、最後に ADC を再起動することをお勧めします。これで ADC 変換が再び再開されると思いますか?
ピーターさん、ご協力ありがとうございました。
よろしくお願いいたします。
アリ・メラジ
こんにちは、
PCTLx は ADC へのクロックを遮断します。
リファレンスマニュアルを参照してください:
59.3.52ADC_0 ペリフェラル制御レジスタ (MC_ME_PCTL237)
しかし、テストしたところ、ADC レジスタは消去されません。(それらは PBRIDGE 上にあります) SO、クロックを ADC に復元した後、レジスタの値は同じになります。
ADC レジスタをリセットする唯一の方法は、マイクロのリセットをトリガーすることだと思います。
ECUをEMIから保護するとどうなるでしょうか?問題は解決しますか?
よろしくお願いいたします
ピーター
こんにちは、ピーター。
パワーダウン ビットを 1 に設定して ADC をパワーダウンし、ADC のステータスがパワーダウンに変更されるまで待ってから再起動しました。ADC 再起動のコードを添付しました。
通常の変換には CTU モードではなく SCAN モードを使用しています。
SO、コードの起動時にNSTARTビットを1に設定してADCを一度起動し、CDATAからデータを読み取るだけです。
ADC設定と1msごとのADC読み取りのコードを添付しました。
これで ADC の設定方法が理解できたかと思います。
なぜ変換が停止するのでしょうか?これはランダムな問題であり、ほとんどの場合、高電圧 (800V) 電源がオンになっているときに発生します。この問題は EMI に関連していますが、CDATA レジストリがロックされています。SCAN モードではトリガーは必要ないと思うのですが、どうすれば変換を再度トリガーできるでしょうか。
有効ビットは、CDR データからデータが抽出されたときにクリアされる必要がありますが、CPU がこの状態にあるときはクリアされません。
PCTL レジスタについて言及されていますが、PCTL レジスタを使用して ADC を再起動する方法についての詳細情報を提供していただけますか。
さらに詳しい情報が必要な場合はお知らせください。
よろしくお願いいたします。
アリ・メラジ
こんにちは、
ADC モジュールを再起動しても問題は解決されませんでした。ADC モジュールを再起動しても、ADC 値がフリーズしたままでした。
ADC モジュールをどのように再起動しましたか?PCTL レジスタでオフにしてから、RUNx にモード遷移して戻しましたか?
CDR レジストリがロックされる理由を理解するのを手伝っていただけますか?
ADC 変換は終了しましたが、新しい変換は開始されていないようです。
(SO、ADC はスタックしておらず、定義された状態のまま、SW または CTU のいずれかの新しい変換トリガーを待機しています)
ADC の使用方法に関する情報が限られているため、これはわかりません。
よろしくお願いいたします
ピーター
PS: ADC 変換がスタックした後にデバッガーを介して手動で開始するとどうなりますか?変換は継続されますか?
こんにちは、ピーター。
お元気でお過ごしでしょうか。
最新情報があります
ADC モジュールを再起動しても問題は解決されませんでした。ADC モジュールを再起動しても、ADC 値がフリーズしたままでした。
この問題に関するより詳しい情報を提供するレジスタースナップショットがあります。
この問題が発生すると、ADCモジュールは正常に動作し、ADCステータスは状態4と6の間で切り替わりますが、CDATAレジスタは固定値に固定されます。
CDRレジスタ
SOそれらはすべて10進数の1171(16進数の0x493)の同じ値に固定され、有効ビットはハイのままです。
CPU と BandGap は同じ動作を示します。
CDR レジストリがロックされる理由を理解するのを手伝っていただけますか?
ありがとうございます
よろしくお願いいたします。
アリ・メラジ
わかりました、ピーター。ありがとう。ADC のステータスを記録し、更新があればご連絡いたします。
ありがとうございます。
アリ
難しいですね、
私はこの方法を試したことはありません。
しかし、クロックが失われると、ADC も存在する PBRIDGE 上のレジスタから何も読み取れなくなります。
しかし、結果を読み取ることができるので、ADC 変換がスキャン モードではなく、アイドル状態になっていると思われます。
こんにちは、ピーター。
この障害が発生したときに、ADC ステータスをフラッシュに保存してみます。
クロックの問題である場合、ADC の電源をオフにして再起動するとクロックが再開されると思いますか?
よろしくお願いいたします。
アリ
ふーむ、
最も重要なのは、ADC がまだ変換中であるが、結果レジスタが更新されていないかどうかを確認することです。
テスト SW は ADC のステータスをチェックし、ADC 変換が停止したときにそれを保存する必要があります。
スキャン モードなので、クロックの損失のみがこの状態の原因であると考えられます。
しかし、まず問題が発生したときに ADC がまだ変換中であるかどうかを確認しましょう。
よろしくお願いいたします
ピーター
こんにちは、ピーター。
主な問題は、LAB で障害を再現できないSO、現場での ADC ステータス レジスタのステータスがどうなるかわからないことです。
ADC 値が固定されている場合に ADC リセットを実行するテスト ソフトウェアを用意したSO、この問題を回避できるのではないかと考えています。
私が試したのは、ADC 電源を 3.3V 未満に下げることですが、その場合 MCU がリセットされます。現場で CPU がリセットされることはないことから、SO、これが問題の原因ではないと考えられます。ADC リファレンス電圧の変更も試みましたが、これによって ADC モジュールの動作が停止することはありません。
たとえば、ADC キャリブレーションの損失について言及したように、ADC ハードウェアに特定の問題を強制してスタックさせる方法はありますか?
リセットを実行するように設定されていないと思われる電圧の問題のCASEの障害反応について FCCU を確認します。
ありがとうございます
アリ
まあ、これはすべて仮説です。
ADC 電力が LVD/HVD しきい値を超えて低下または急上昇した場合、デバイスは通知を実行し、有効になっている場合はリセットします。
これにより、ADC コンデンサのキャリブレーションがずれたり、ロジック レベルでスタックしたり、その他さまざまな問題が発生する CAN あります。
ADC を有効または無効にするにはどうすればよいでしょうか?
ADC がスタックした場合のステータスは何ですか?
よろしくお願いいたします
ピーター
こんにちは、ピーター。
これが起こると、カウントは 1373 カウントでフリーズし、回復することはない。SO、電源サイクルを実行する必要があります。これは主に HV 電源投入時に発生しますが、ランダムに発生する場合もあり、機能操作中に発生することもあります。
私たちは HV ラボでボードをテストし、HV がオンのときに ADC_HV と ADC_ref にスパイクが発生していることを確認しましたが、ADC は動作を停止しません。これは、EMI レベルが高いと想定される現場でのみ発生します。ADC_HV と ADC_ref の電圧は、HV がオンになるとすぐに安定します。
停電やノイズが発生したCASEに ADC が取る特定の状態を知っていますか?ADC を再起動すると役立ちますか?
よろしくお願いいたします。
アリ
わかりました。900V をオンにしたときだけなので、EMI の問題である CAN があります。
このような場合の ADC 電圧測定はどうなりますか?ADC ref または ADC_HV にスパイクはありますか?
測定された線間電圧はどうですか?
よろしくお願いいたします
ピーター
こんにちは、ピーター。
返信ありがとうございます。
80Mhz クロック レートで SCAN モードを使用しています。
一度だけ実行されるスタートアップ タスクで変換を開始します。
アプリケーションで必要な場合はいつでも、CDATA reg から変換されたデータを収集します。
私たちはテストに使用している独自の制御ボードを持っています。
この問題は、高電圧電源 (例:900Vdc) がオンになっているときに発生します。SO、EMI に関連している可能性がありますが、ADC は回復せず、常に 1373 カウントを報告します。この問題は当社の HV ラボでは再現できないため、現場でのみ発生します。
以下はADCのセットアップと読み取りのコードです
ありがとうございます
アリ
こんにちは、アリさん
あなたが提供した非常に簡単な説明によると、バス上の許可を処理するトップレベルのタスクから、サービスが提供されていない ADC トリガーやクロック グリッチまで、あらゆるものが考えられます。
まず、ADC をどのように使用しているか (CTu モードか CPU モードか) を教えていただくのが良いかもしれません。
どのようにコンバージョンを誘発するか
変換されたデータをどのように提供しますか
なぜなら、これは本当に、SW デザインの未対応のCASEのように見えるからです。
SW は NXP EVB 上で正しく動作していますか?
よろしくお願いいたします
ピーター
こんにちは、
この問題について誰か助けてくれませんか?
よろしくお願いいたします。
アリ