こんにちは、NXPサポートチームの皆さん、
私はSPDIFの問題を調査しています。
MIMXRT1170-EVKB開発ボード。
このプロジェクトは公式のNXP SDKに基づいています
spdif_edma_transfer例です。
テスト構成:
- 取締役会:MIMXRT1170-EVKB
- コア:Cortex-M4
- SPDIF入力:J46(GPIO_AD_15)
- SPDIF出力:J45(GPIO_AD_16)
- サンプリングレート:48 kHz
- 転送方法:eDMA
- モード:連続的なSPDIF入力-出力転送
確認された問題:
SPDIF入力信号は正常に受信されました。
DPLLが正しくロックされ、SPDIF伝送が開始されます。
しかしながら、SPDIF出力信号にはジッターが観測される。
期待される行動:
SPDIF出力は受信したものを再現すべきです
安定したタイミングのSPDIFオーディオ信号。
私は完全な修正SDKデモプロジェクトを準備しました
この問題を再現しています。
NXPのエンジニアがプロジェクトを確認して助けてもらえますか?
SPDIF出力ジッターの原因を特定しますか?
また、アタッチしてもよいかも知りたいです
この議論のための完全なプロジェクトZIPファイル。
再開まで今しばらくお待ちください。
こんにちは、 @yp_wang さん。
ご連絡いただきありがとうございます!
SDKのバージョン番号を教えていただけますか?また、可能であれば最新バージョンのSDKに基づく最小限の再現可能なプロジェクトを共有してください。観測されたジッターの波形を添付していただけると助かります。これは、問題の再現と原因特定に役立ちます。
よろしくお願いいたします!
よろしくお願いします、
ギャビン
よろしくお願いします。
spdif.pdfとmp4ファイルを参照してください。NXPアカウントに何か問題があります。テストコードが必要な場合は、メールアドレスを教えてください。
ファイルが添付されています
こんにちは、 @yp_wang さん。
添付ファイルありがとうございます。
しかし、アプリケーションコードなしでは問題に対処できません。可能であれば、公式のチャネルを通じてチケットを提出していただけませんか?こうすることで、アップロードしたコードや最小限の複製プロジェクトはプライベートなままで、外部ユーザーにはアクセスできません。
リンク: https://support.nxp.com/s/
よろしくお願いします!
この添付ファイルは「CASE作成が無効」と表示されるため、提出できません。また、NXPにもメールでお問い合わせしましたが、問題はまだ解決していないようです。他に提出する方法はありますか?@Gavin_Jia
こんにちは、 @yp_wang さん。
お客様側でSFDCチケットを作成できない理由が分かりません。しかし、下の画像にあるボタンをクリックして、公式ウェブサイトからオンライン営業担当者に連絡を試みることができます。
リンク: www.nxp.com
アカウントに関する問題の解決や、SFDCチケットの作成をお手伝いいたします。ありがとう!
プロジェクトを添付しました。最新のSDKを基にしたRAMダウンロードです。ご質問があればメール でお問い合わせください [email protected]
こんにちは、
添付ファイルありがとうございます。
CM4/CM7のコードとSPDIFドライバーを確認した結果、問題はSPDIFトランスミッタ自体が生じているジッターではないと考えています。これはおそらく、転送デザインにおけるRXとTXのクロックドメインの不一致が原因です。
1. RXとTXはそれぞれ独立したクロックで動作する。
STC[TxClk_Source] = 001の場合、トランスミッタはSPDIF_CLK_ROOTからクロックされます。これはあなたのコードがオーディオ PLLから派生します。2. 継続的な転送による影響
両側とも公称48kHzですが、ソースクロックとローカルPLLは厳密には一致していません。レートマッチングを行わないRX→メモリ→TX転送では、このわずかな周波数差が徐々にバッファマージンを消費します。時間が経つにつれて、これは周期的なサンプルの欠落または重複につながり、続いてTX FIFOのアンダーランまたはオーバーランが発生する。
3. エラー回復コードが事態を悪化させる
TX FIFO エラーが発生すると、ISR は TX のみを中止し、 emptyBlock = BUFFER_NUMを設定します。しかし、RX転送はまだ進行中であり、 txIndex / rxIndexはリセットされません。すると、バッファの記録は実際のDMAの状態と一致しなくなります。キューに入ったTXブロックはスキップされ、再起動後のTX/RX距離は任意になるため、次の故障がより早く起こる可能性があります。また、 kSPDIF_RxFIFOErrorはISRで処理されますが、有効化されることはありません。
そして、あなたの応募に関する私たちの提案は以下の通りです:
SCR[TxSel] = 001)を試してみてください。このモードで出力がクリーンであれば、基板と計測チェーンは問題なく、問題はソフトウェアの転送経路にあります。お役に立てば幸いです!
よろしくお願いします、
ギャビン
あなたの言う通りでした。試験装置のクロックソースを変更し、SPDIFクロックと同期するように設定しました。その後、ジッターは消えた。ありがとう。
もしSPDIFや他の問題があれば、再度お問い合わせいたします。