• No : 3704
  • 公開日時 : 2020/03/27 18:35
  • 印刷

【NXP:Kinetis】 K10のDSPIでCSの立下りエッジからクロックの立上りエッジまでを調整できますか。

MK10のSPIを使用して、SPIスレーブデバイスを接続して通信しようとしていますが、CSの立下りエッジ(アクティブLOW)からクロックの立上りエッジ(アクティブHIGH)がほぼ同一タイミングで正常に通信できません。
SPIスレーブのタイミングスペックでは、クロックの立上りエッジの時点では、データが確定している必要があるため、正常に通信できないようです。
解決策を教えてください。
カテゴリー : 

回答

MK10などに内蔵されているDSPIは、タイミングを設定するレジスタが各種あります。
ご連絡頂いた不具合を解決するには、SPIx_CTARn[PCSSCK]とSPIx_CTARn[CSSCK]に適切な値を設定する必要があります。
CSの立下りエッジからクロックの立上りエッジまでの時間 tCSC は、次の式で計算できます。
 
tCSC = SPI動作クロックの周期 x PCSSCK遅延プリスケーラ値 x CSSCK遅延スケーラ値
 
尚、PCSSCK遅延プリスケーラ値はPCSSCK x 2 +1、CSSCK遅延スケーラ値は、2 ^ (CSSCK + 1) です。
詳細は、リファレンスマニュアルのSPIx_CTARn[PCSSCK]、SPIx_CTARn[CSSCK]、PCS to SCK Delay (tCSC)、Module transfer timing diagramの図を参照ください。