2411724_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2411724_ja-JP

2411724_ja-JP

i.MX RT1176 – FlexIO2パラレル受信:達成可能な最大シフトクロックは?わずか約48 MSPSしか到達しなかった

iMXR1176 SDK 25.09.00 Manifest 3.15.0

ゴール

i.MX RT1176に搭載されているLTC2164 16ビットADCからデータを取得しています。データパスは次のとおりです。

LTC2164(フルレートCMOS出力)→FlexIO2(パラレルRX)→eDMA→外部SDRAM

ハードウェアのセットアップ

  • LTC2164フルレートCMOS出力モードで構成され、外部100MHz発振器(100MSPS、16ビット並列)でクロックされます。
  • ADCデータ出力D0–D15はGPIO_AD_00...GPIO_AD_15。
  • ADC CLKOUT+はGPIO_AD_30に接続され、FlexIOタイマークロック(外部ピンクロックソース)として使用されました。

ソフトウェアのセットアップ

  • FlexIO2は並列レシーバとして構成され、データはシフター7にラッチされます。シフター7から>0は、DMA要求が主張される前に32バイトバッファリングされるようにチェーンされています。
  • kDmaRequestMuxFlexIO2Request0Request1によってトリガーされたeDMAは、ピンポン(スキャッター/ギャザー)モードで2つのTCDを使用します。各メジャーループ完了時、つまり16384サンプルごとに割り込みが発生します。
  • FlexIO2の機能クロック:120MHz。
  • バスクロック(eDMA/SEMC側):240MHz。

問題

100 MSPS の場合、16384 サンプルの処理には163.84 µsかかるはずです。連続する 2 つの DMA 割り込み間の時間を測定 (GPIO トグル + オシロスコープ) すると、常に338 µsという結果が得られ、これは約 2.06 倍です。

これは約48 MSPSの実効持続レートに相当し、ボトルネックはADCやSDRAMではなくFlexIO側にあることを示唆している。

質問

  1. RT1176の並列受信モードにおけるFlexIOの最大シフトクロック周波数に関する公式な文書はありますか?RMやデータシートにはそのような数値は見つかりませんでした。
  2. タイマークロックのソースが外部ピンの場合、FlexIOの機能クロックと外部シフトクロックの比率はどのようになりますか?私のFlexIOクロック(120MHz)は、入力される100MHzクロックのわずか1.2倍ですが、それで十分でしょうか?それとも、入力同期ロジックには2倍または4倍が必要ですか?
  3. ほぼ正確な×2の比率を考えると、これはFlexIOタイマーがクロックの両端で減少している(TIMMPの慣例)によるもので、タイマー比較値が実質的にスループットを半分に減らしているのではないでしょうか?

この部分でのFlexIO + eDMAの最大現実的な持続スループットについてのガイダンスがあれば、非常に助かります。なぜなら、別のペリフェラルに移行するか外部FIFOに切り替えるかを判断するからです。

よろしくお願いいたします。

通信・制御(I3C |I2C |SPI |FlexCAN |イーサネット |FlexIO)Re: i.MX RT1176 – FlexIO2 parallel receive: maximum achievable shift clock? Only ~48 MSPS reached

こんにちは、ご返信ありがとうございます。確かに望ましい性能は達成できましたが、Flexioペリフェラルの推奨クロック周波数を最大を超えたことでしかできませんでした。具体的には、120MHzでクロックを設定するのではなく、100MSpsの取得には200MHz以上のクロック速度が必要ですが、120MHz構成ではクロックエッジがミスされます。問題は、200 MHzで動作しているにもかかわらず(リファレンスマニュアルには最大120 MHzと記載されていますが)、温度条件や生産バッチごとに安定して動作する保証がないことです。

Re: i.MX RT1176 – FlexIO2 parallel receive: maximum achievable shift clock? Only ~48 MSPS reached

こんにちは、@azed38 さん

外部ピンをクロックソースとして使用した場合、わずかな同期レイテンシが発生することに注意してください。RMのセクション67.3.3.2によると、このレイテンシは0.5から1.5 FlexIOクロックサイクルの範囲です。

Habib_MS_1-1788818202534.pngHabib_MS_1-1788818202534.pngHabib_MS_1-1788818202534.pngHabib_MS_1-1788818202534.png

FlexIOとDMAで達成可能な最大スループットに関しては、FlexIOとDMAの性能テストは存在しません。しかし AN12686 、FlexIOとDMAを用いた並列通信実装を示しているため、あなたのユースケースに関連する指針となるかもしれません。


BR
ハビブ

Re: i.MX RT1176 – FlexIO2 parallel receive: maximum achievable shift clock? Only ~48 MSPS reached

こんにちは、@azed38 さん

このトピックに関してはすでに別のチャネルでサポートを受けているのに気づきましたので、すべてのコミュニケーションを集中管理するために引き続きサポートを続けます。FlexIOを最大周波数仕様を超えて運用すると、最終アプリケーションに影響を与える予期せぬ挙動を引き起こす可能性があることを付け加えたいと思います。RMの表15-4「クロックルート」に記載されている情報に基づき、最大周波数を120MHzにすることを推奨します。

BR
ハビブ

Tags (1)
No ratings
Version history
Last update:
a week ago
Updated by: