Hello,
プロジェクト作業中のSPI通信について質問があります。
開発環境はS32DS3.5とRTD 4.0.0です。
DMAを使ったSPI通信の実装例を見ました。AUTOSARを使用しておらず、おそらくMCALも使用しないでしょうが、DMAを利用するためにはRM(Resource Manager)の使用が必須ですか?
SPI通信では、LPSPIを使用するケースとFlexIOを使用してSPIを設定するケースがあることに気づきました。これら2つの違いは何ですか?
ありがとうございます。
Hi @malove
あなたの理解は正しいです、ボーレートを15MHzに設定することは、スレーブデバイスの指定された要件を満たすのに十分です。
コンフィギュレーション ツールに記載されているように、次の図に示すように、必要なボー レートの正確な近似値を得るために、より高い LPSPI モジュール クロック周波数を使用することをお勧めします。
RomanVR_0-1737584108879.png
LPSPIペリフェラルの機能と考慮事項の詳細については、S32K3xxリファレンスマニュアルRev.9の第70章を参照してください。
さらに疑問がある場合はお知らせください。
- RomanVR。
こんにちは、 @RomanVR
親切で丁寧なご回答をいただき、誠にありがとうございました。
ご説明から、 SCKを15MHzに設定することは、LPSPIのクロックソースを設定することとは別のものであることを理解しています。つまり、LPSPI0モジュールに40MHzのクロックが供給されていても、BaudRateを15MHzに設定すると、実際の通信速度は15MHzになります。
MCU ホストが 15MHz の SCK で SPI スレーブ デバイスと通信する必要がある場合、この要件を満たすには BaudRate を 15MHz に設定するだけで十分ですか?
さらに、BaudRate を構成する際に留意すべき点は他にありますか?
お手数ですが、よろしくお願いいたします。
Hi @malove.
BaudRate 設定フィールドでは、SCK の周波数は変更されません。代わりに、その目的は、SPIモジュールで使用されるソースクロック周波数の精度によって決定されるデータ転送速度を構成することです。
このモジュールは、S32K3xx リファレンス マニュアル Rev. 9 の第 70 章のセクション 70.6.1.12 に記載されている次の図に示すように、ボー レートを計算します。
RomanVR_0-1737480832205.png
さらに疑問がある場合はお知らせください。
- RomanVR。
こんにちは@RomanVR
LPSPI Clock Configurator で、 BaudRate というオプションがあることに気づきました。
この BaudRate を変更すると、SCK の周波数が直接変更されますか。
それとも、提供された画像に示すように、Clock Configurator で LPSPI クロック ソースを調整する必要がありますか。
malove_0-1737416498172.png
ありがとうございます。
Hi @malove.
目的の SCK である 15MHz を実現するには、次の図に示す変更に従います。
RomanVR_0-1737402910915.png
手記: HSE がインストールされている場合、この変更を行うには追加の手順が必要です。
この情報が役に立ったかどうか、また疑問がある場合はお知らせください。
- RomanVR。
さらに、LPSPI クロック (SCK) を 15MHz に設定する必要があります。これは Clock Configurator で構成する必要がありますか、それともこれを設定する特定の関数がありますか?