MIMXRT1186:最初のLPITトリガーがADC割り込みに入るのに失敗しました。私はFRDM MIMXRT1186 EVKボード、SDK V26.03を使っています。LPITのADCデモプロジェクトをフラッシュして、ペリフェラルでトリガーされたADC変換を学びました。しかし、LPITトリガー周波数を変更したところ(具体的には、app.hのマクロ定義LPIT_PERIODを50に変更し、20kHzのトリガーレートを実現したところ)、問題が発生しました。最初のLPITトリガーがADC割り込みに入らないのです。
根本原因がLPITにあるのかADCペリフェラルにあるのかを調べるために、2つのテストを行いました。
- ADCモジュールとLPITモジュールの初期化順序を入れ替えました(最初にADCを初期化し、次にLPITを初期化)。
- ADC1_IRQHandler関数内にGPIOトグル操作を追加し、LPITトリガー信号をXBAR(kXBAR1_OutputIomuxXbarInout19)を介して外部ピンにルーティングしました。次に、ピン上の波形をキャプチャした。
オシロスコープによる測定では、LPITトリガー信号が正しく生成されていることが確認されたが、ADCは割り込みサービスルーチンに入って応答しない。
トリガー周波数を上げるとなぜこの問題が起きるのか分かりません。どなたかトラブルシューティングのアドバイスをいただけませんか?どうぞよろしくお願いいたします。参考のためにテストコードを添付します。
Re: MIMXRT1186 :first LPIT trigger fails to enter ADC interrupt.こんにちは、 @ChandlerY さん。
コードを共有していただきありがとうございます。
現在、それを使っていくつかテストを行っており、結果が出次第ご連絡いたします。
よろしくお願いします、
パブロ
Re: MIMXRT1186 :first LPIT trigger fails to enter ADC interrupt.こんにちは@ChandlerY。
最初の割り込みでのみ見られる追加の遅延は、CM33ベクターテーブルとISRコードが非TCMメモリ(キャッシュ経由でアクセスされるXSPIフラッシュ/OCRAM)に存在していることが原因です。
すべてのCM33コード(ベクターテーブルとISR)をTCMに配置した後も、この動作が続くかどうかテストするのを手伝ってもらえますか?
敬具
パブロ
Re: MIMXRT1186 :first LPIT trigger fails to enter ADC interrupt.こんにちは、パブロさん。
ご返信ありがとうございます。テストしたところ、TCMでcm33コードを実行すると、最初のLPITがトリガーされてADC割り込みに入ると正常に動作しました。でも、cm33コードがflashで動くときにこの問題をどう解決すればいいのか、何か回避策を教えていただけますか?本当にありがとうございました。
Re: MIMXRT1186 :first LPIT trigger fails to enter ADC interrupt.こんにちは、 @ChandlerY さん。
この動作はペリフェラルではなく、コードの所在地に関係しているため、アプリケーションを非XIPモードで実行するという選択肢があります。つまり、画像はFlashに保存され、コードはRAMから実行されます。
以下のリンクでSecure Provisioning Toolを使って設定手順を確認できます:
プロセッサ固有のワークフロー — Secure Provisioning Tool 26.06
敬具
パブロ