Community Translation - KBA#45 Invalid Sequence Error in Multi-Channel Commit Buffer - KBA218830

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
RyKi_1693141
Level 5
Level 5
Distributor - Marubun (Japan)
10 solutions authored 5 solutions authored 25 replies posted

Hello,

I would like to translate this KBA218830 into Japanese.

Invalid Sequence Error in Multi-Channel Commit Buffer - KBA218830

I will start right away.

Regards,

RiKiRyKi_1693141

0 Likes
2 Replies
RyKi_1693141
Level 5
Level 5
Distributor - Marubun (Japan)
10 solutions authored 5 solutions authored 25 replies posted

Community Translated byRyKi_1693141

==========================

タイトル:マルチチャネルコミットバッファでの無効なシーケンスエラー

Version:**

質問:

"Error in CyU3PDmaMultiChannelCommitBuffer: code 71 "というメッセージがFX3で動画をストリーミングしているときにUART端末に表示されます。

このエラーの原因と復旧方法を教えてください。

回答:

"Error in CyU3PDmaMultiChannelCommitBuffer: code 71 "というメッセージは、DMAバッファオーバーフローが発生した場合に表示されます。

code 71のエラーは「CY_U3P_ERROR_INVALID_SEQUENCE」エラーを指します。

このエラーは、UVC ホストアプリケーションが DMA バッファをクリアするのに十分な速さで IN トークンを発行しなかった場合に発生する可能性があります。

code 71のエラーから回復するには、

1.ファームウェアに割り当てられた DMA バッファ領域を増やす。

2.AN75779 に関連付けられたサンプル・プロジェクトに以下を実装します。

 -1.CyU3PDmaMultiChannelCommitBuffer() APIがCY_U3P_SUCCESSを返すのに失敗した場合、CyFxUvcApplnDmaCallback()関数にフラグ(例えば、commit_buffer_failure)を設定する。

 -2,UVCAppThread_Entry()関数のfor(;;)ループで、このフラグがセットされているかどうかを確認します。セットされている場合は、以下のコードスニペットを実装して、DMA チャネルをリセットし、GPIF II ステートマシンを再起動します。

if (commit_buffer_failure == 1)

   

            {

   

                        commit_buffer_failure = 0;

   

                        /* Stop the GPIF state machine to stop data transfers through FX3 */

   

                        CyU3PGpifDisable (CyFalse);

   

                        streamingStarted = CyFalse;

   

   

                        /* Place the Endpoint in NAK mode before cleaning up the pipe. */

   

                        apiRetStatus = CyU3PUsbSetEpNak (CY_FX_EP_BULK_VIDEO, CyTrue);

   

                        if (apiRetStatus != CY_U3P_SUCCESS)

   

        {

   

                                    CyU3PDebugPrint (4, "\r EP_NAK=%d\n", apiRetStatus);

   

                        }

   

                        /* Reset the DMA channel and flush the endpoint pipe. */

   

                        apiRetStatus = CyU3PDmaMultiChannelReset (&glChHandleUVCStream);

   

                        if (apiRetStatus != CY_U3P_SUCCESS)

   

      {

   

                            CyU3PDebugPrint (4, "\r DMA_RESET=%d\n", apiRetStatus);

   

                         }

   

                        apiRetStatus = CyU3PUsbFlushEp (CY_FX_EP_BULK_VIDEO);

   

                        if(apiRetStatus != CY_U3P_SUCCESS)

   

     {

   

                            CyU3PDebugPrint (4, "\r EP_FLUSH=%d\n", apiRetStatus);

   

                          }

   

                        apiRetStatus = CyU3PDmaMultiChannelSetXfer (&glChHandleUVCStream, 0, 0);

   

                        if (apiRetStatus != CY_U3P_SUCCESS)

   

                        {

   

                                    CyU3PDebugPrint (4, "\r DMA_XFER  = %d\n", apiRetStatus);

   

                        }

   

                        apiRetStatus = CyU3PUsbSetEpNak (CY_FX_EP_BULK_VIDEO, CyFalse);

   

                        if(apiRetStatus != CY_U3P_SUCCESS)

   

    {

   

                            CyU3PDebugPrint (4, "\r EP_ACK=%d\n", apiRetStatus);

   

                          }

   

           apiRetStatus = CyU3PGpifSMStart (START_SCK0, ALPHA_START_SCK0);

   

                        if (apiRetStatus != CY_U3P_SUCCESS)

   

                      {

   

                         CyU3PDebugPrint (4, "CyU3PGpifSMStart  = %d\n", apiRetStatus);

   

                        }

   

                        apiRetStatus = CyU3PGpifSMSwitch (257, 0, 257, 0, 2);

   

                        if (apiRetStatus != CY_U3P_SUCCESS)

   

                     {

   

                         CyU3PDebugPrint (4, "CyU3PGpifSMSwitch  = %d\n", apiRetStatus);

   

                      }

   

                        streamingStarted = CyTrue;

          }

0 Likes
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,

We receive your translation, and this KBA is claimed to translate.

I will get back to you after conducting internal review.

Thanks for your contribution!,

Jenna Jo

Jenna Jo