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

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

cross mob
MiNe_85951
Level 7
Level 7
Distributor - TED (Japan)
50 likes received 500 replies posted 50 solutions authored

Dear Sirs and Madams,

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

Regards,
Masashi

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

Hi, Masashi-san

Confirm to work this KBA.

Thanks

Jenna

Jenna Jo
0 Likes
MiNe_85951
Level 7
Level 7
Distributor - TED (Japan)
50 likes received 500 replies posted 50 solutions authored

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マスターにデータを転送することです。

0 Likes