2 Replies Latest reply on Jul 30, 2020 5:06 PM by MaMi_1205306

    Communitiy Transration - Delay between Bytes when SPIM_PutArray API is used - KBA82854

    MaMi_1205306

      Dear Sirs and Madams,

       

      I would like to translate KBA82854, please confirm to my work.

       

      Regards,
      Masashi

        • 1. Re: Communitiy Transration - Delay between Bytes when SPIM_PutArray API is used - KBA82854
          JuyoungJ_06

          Hi, Masashi-san

          Confirm to work this KBA.

           

          Thanks

          Jenna

          • 2. Re: Communitiy Transration - Delay between Bytes when SPIM_PutArray API is used - KBA82854
            MaMi_1205306

            Jenna-san,

             

            I translated KBA82854 into Japanese.

            We would appreciate it if you could confirm.

             

            Regards,

            Masashi

             

            /***************************************************************************/

             

             

            SPIM_PutArray APIを使用する時のバイト間の遅延- KBA82854

            Version: *A

             

            質問:

            SPIM_PutArray APIを使用すると、連続するバイト間に遅延が発生するのはなぜですか?

             

            回答:

            SPIM_PutArray APIはSPIマスターコンポーネントで使用される場合、SPIM_WriteTxDataを内部的に複数回呼び出すのみです。

            この関数は本質的にブロックしています。

            つまり、送信FIFOのスペースを継続的にチェックし、スペースがある場合にのみ書き込みを行います。

             

            現在、SPIのデータレートが非常に高いく、特にCPUが低いクロックレートで実行されている場合、もしくはコード最適化レベルが低い場合、CPUがSPIマスターのスループットを維持するのに十分な時間がありません。

            この状況ではSPIマスターが1バイトのデータの送信を完了すると、次のバイトはまだ送信FIFOに書き込まれていません。

            したがって、そのバイトがFIFOに書き込まれるまで遅延が発生します。

             

            この問題を解決する方法の一つとして、DMAを使用してメモリアレイからSPIマスターにデータを転送することです。