こんにちは、
PTPの実装に関して質問があります。gPTPタイムスタンプとペアになったIMUデータを読み取る必要があります。
当社のハードウェアのピン配置は以下のとおりです。
CCM_CLKO1 (AH20) <- 1588_TRIG
CCM_CLKO3 (AK20) <- IMUセンサ割り込み
CCM_CLKO4 (AJ21) (IMU PPS) -> CCM_CLKO1 (1588_TRIG)
これを踏まえて、ピンマルチプレクサの構成に関する我々の理解は以下のとおりである。
CCM_CLKO4はALT1(1588_PP2)として設定する必要があります。
CCM_CLKO3はALT1(1588_TRIG2)として設定する必要があります。
CCM_CLKO1はALT1(1588_TRIG1)として設定する必要があります。
IMU割り込みが発生すると、ハードウェア信号がi.MX95の1588タイムスタンプ機構をトリガーし、SoCがイベントの正確な瞬間にPTPハードウェアタイムスタンプをキャプチャできるようにします。
IMU割り込みを受信すると、アプリケーションはIMUデータを読み取り、対応するPTPタイムスタンプを取得し、両方を1つのデータパッケージにまとめます。私たちの理解が正しいかどうか確認させてください。
さらに、以下の2点について確認にご協力ください。
i.MX95は、前述の1588_TRIG/1588_PPハードウェア信号を通じて、IMU割り込みの正確な時刻にPTPハードウェアのタイムスタンプをキャプチャできますか?
Linux / NXPドライバーは、アプリケーションがこのハードウェアラッチされたタイムスタンプを取得するための対応するAPIや/dev/ptpXインターフェースを提供していますか?
サポートありがとうございます。ご返信を楽しみにしています
我々の調査に基づくと、現在の慣行では、IMU割り込み信号をSoCの1588_triggerピンとSoCのGPIOピンの両方に同時にルーティングする必要がある。IMUが信号を生成すると、GPIOピンがアプリケーションにデータを取得するよう通知し、1588トリガーピンは割り込みの正確なタイムスタンプをラッチします。
アプリケーションのワークフローは以下の通りです:
IMUは割り込み信号を生成する。
アプリケーションは割り込み通知を受け取り、SoCは同時にgPTPタイムスタンプをラッチします。
アプリケーションはIMUデータとgPTPタイムスタンプを読み取り、それらを単一のデータバンドルにパッケージ化します。
IMU割り込み信号を分割して、SoCの1588_triggerピンとSoCのGPIOピンの両方に別々にルーティングする必要があるかどうかを知りたいです。これは業界では一般的な慣行ですか?
NXPは同様のアプローチやデモを提供していますか?
こんにちは、 @pengyong_zhangさん。最新情報をありがとうございます。
割り込み処理に関して問題が発生しました。SoCピンがデフォルトのGPIOモードにある場合、IMUドライバは問題なく割り込み通知を受け取ります。しかし、ピンがALT1モード(1588_TRIG)に切り替わったときに割り込み通知を受け取る方法を知る必要があります。
私たちのワークフローでは、IMUからの割り込みを待ってから、IMUデータとgPTPタイムスタンプの両方を読み取る必要があります。
こんにちは、 @hankwang
Q1.問題ない。
Q2.IMUのINT/DRDY入力を1588_TRIG1/TRIG2(外部トリガー入力)に接続することで、NETCタイマーは割り込みエッジ(ETTS FIFOに格納され、割り込みを生成する)の正確な瞬間にナノ秒レベルのPTPタイムスタンプをハードウェアラッチします。アプリケーションは標準のEXTTSインターフェースを通じて/dev/ptp0のタイムスタンプを読み取ることができます。
>>>
こんにちは、 @hankwang
いいえ、1588_TRIGピンとGPIOピンの両方に同時に分岐またはルーティングする必要はありません。
i.MX95のNETCタイマーのEXTTS(外部タイムスタンプ)入力は、TMR_1588_TRIGピンで外部パルスを受信すると、CPU割り込みを生成する機能を備えています。
B.R