GPIFのデータ幅変更に伴う挙動の違いについて

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

AN75779をベースにFX3で以前設計した回路をベースに、GPIF側のデータ幅を

8bitと16bitと双方の構成を検討しています。

(8bitと16bitのスピードは同等で、結果的にbit幅の拡張により転送レート自体は倍になります)

8bitでは正常に動作していたのですが、16bit入力で動かそうとしているのですが、

現状うまくいっていません。

パケットを見る限りは、想定よりもパケットが少ないようです。

またヘッダーのEOFビットが立っているパケットが無いためか、

PCのビュアーでは1枚もフレームを受け取れていません。

Full HD解像度なので、1フレームのデータは約4MByteあり、

1パケットは16380Byteなので、1フレームは254パケットで構成されるはず、と考えています。

ところが、ISP側でUSBパケットをキャプチャして数えると、フレームの切り替わり

(ヘッダー内のBFHバイトのFIDが変わるまで)が安定しておらず、160パケット程度になっているようです。

また、FID変化の直前のパケットでは、EOHが立つはずですが、立ったり立たなかったりと安定していないようです。

データクロックは74.25MHzで、FHD(1920x1080)です。

GPIO0:7 に CrCb、 GPIO8:15にYデータが入力されます。

GPIO28にVS、GPIO29にDEを入力しています。

8bit版からのファームの設定変更箇所は、GPIF2 Designer で入力を8bitから16bitに変更したのみなのですが、

他に変更しなければいけない箇所はあるでしょうか。

すみませんが、ご回答のほどよろしくお願いします。

0 件の賞賛
1 解決策
HirotakaT_91
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

変更点としては、データ幅の他に、GPIF-II アドレスカウンターとデータカウンターのCounter limit valueの変更が必要です。

Counter limit valueは16bit幅用に8183に変更されていますか?

ステートマシンは、GPIF II アドレス カウンターADDR とデータ カウンターDATA という 2 個の GPIF II 内部カウンターを使用して DMA バッファのバイト数をカウントします。GPIF II ステート マシンは GPIF スレッドを切り替えるたびに、他の GPIF スレッド用に適切なカウンターを初期化します。

転送カウンターはクロックサイクル毎に 1 増加します。従って、インターフェースのデータ バス幅に応じてカウンター限界値が変わります。16 ビット インターフェースでは、DMA バッファサイズが 8184 の 16 ビットワードであるため、プログラムされる限界値は 8183 となります。詳細はAN75779「3.5  GPIF II ステート マシン」をご参照ください。

pastedImage_0.png

必要な変更事項はAN75779「3.6.5  GPIF II インターフェースの詳細変更」に書かれております。

ご確認よろしくお願い致します。

Hirotaka Takayama

元の投稿で解決策を見る

2 返答(返信)
HirotakaT_91
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

変更点としては、データ幅の他に、GPIF-II アドレスカウンターとデータカウンターのCounter limit valueの変更が必要です。

Counter limit valueは16bit幅用に8183に変更されていますか?

ステートマシンは、GPIF II アドレス カウンターADDR とデータ カウンターDATA という 2 個の GPIF II 内部カウンターを使用して DMA バッファのバイト数をカウントします。GPIF II ステート マシンは GPIF スレッドを切り替えるたびに、他の GPIF スレッド用に適切なカウンターを初期化します。

転送カウンターはクロックサイクル毎に 1 増加します。従って、インターフェースのデータ バス幅に応じてカウンター限界値が変わります。16 ビット インターフェースでは、DMA バッファサイズが 8184 の 16 ビットワードであるため、プログラムされる限界値は 8183 となります。詳細はAN75779「3.5  GPIF II ステート マシン」をご参照ください。

pastedImage_0.png

必要な変更事項はAN75779「3.6.5  GPIF II インターフェースの詳細変更」に書かれております。

ご確認よろしくお願い致します。

Hirotaka Takayama

TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

ご回答ありがとうございます。

確かにデフォルトのままになっておりました。

変更したところ、フレームが正しく受け取れていることが確認できました。

ご対応ありがとうございました。

0 件の賞賛