JAJZ030C November 2024 – November 2025 MSPM0G1518 , MSPM0G1519 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0G3529-Q1
I2C モジュール
機能
I2C BUSY ビットをポーリングしても、コントローラの転送が完了したことが保証されない場合があります。
I2C コントローラ転送を開始するために CCTR.BURSTRUN ビットを設定した後、BUSY ステータスがアサートされるまでに約 3 回の I2C 機能クロックサイクルかかります。CCTR.BURSTRUN を設定した後すぐに転送完了を待つために BUSY ビットのポーリングを使用すると、BUSY ステータスが設定される前にチェックされる可能性があります。この問題は、CLKDIV 値が高い場合 (I2C 機能クロックが遅くなる)、またはコンパイラの最適化レベルが高い場合に発生する可能性が高くなります。
BUSY ステータスをポーリングする前にソフトウェア遅延を追加してください。ソフトウェア遅延 = 3 x CPU CLK / I2C 機能クロック = 3 x CPU CLK / (CLKSEL / CLKDIV)。例えば、クロック分周器 (CLKDIV) が 8、クロックソース (MFCLK) が 4 MHz、CPU CLK が 32 MHz の場合、ソフトウェア遅延 = 3 x 32 MHz / (4 MHz / 8 ) = 192 CPU サイクル