12,925
回編集
191行目: | 191行目: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | |||
==== 送信と受信で異なる設定が必要な場合 ==== | |||
一般的に、SPIの初期化 (ピンの機能選択、クロック源の選択、ボーレートの設定、SPIモードの設定等) において、送信および受信で同じ設定を行う。<br> | |||
<br> | |||
しかし、以下に示すシナリオでは、送信用と受信用で異なる設定が必要になる。<br> | |||
そのため、SPIの初期化において、送信用と受信用に分けて実装する、または、送信と受信の切り替え時に動的に設定を変更する必要がある。<br> | |||
<br> | |||
ただし、多くの場合、送信と受信で同じ設定を使用できるため、共通化することが一般的である。<br> | |||
<br> | |||
* クロックの位相 (CPHA) や 極性 (CPOL) が異なる場合 | |||
*: スレーブデバイスによっては、クロックの位相や極性の要件が異なる場合がある。 | |||
*: 送信時と受信時で、クロックの位相や極性を変更する必要がある場合は、送信用と受信用で異なる設定が必要になる。 | |||
*: <br> | |||
* ボーレート (通信速度) が送信時と受信時で異なる場合 | |||
*: スレーブデバイスによっては、送信時と受信時でボーレートが異なる場合がある。 | |||
*: 送信時と受信時で異なるボーレートを使用する必要がある場合は、送信用と受信用で異なる設定が必要になる。 | |||
*: <br> | |||
* データ長が異なる場合 | |||
*: スレーブデバイスによっては、送信時と受信時でデータ長が異なる場合がある。 | |||
*: 送信時と受信時で異なるデータ長を使用する必要がある場合は、送信用と受信用で異なる設定が必要になる。 | |||
*: <br> | |||
* 送信と受信で異なるSPIモードを使用する場合 | |||
*: マスターとスレーブの役割が固定されている場合は、送信と受信で同じSPIモードを使用できる。 | |||
*: ただし、マスターとスレーブの役割が動的に切り替わる場合は、送信時と受信時で異なるSPIモードを使用する必要がある。 | |||
*: <br> | |||
* 送信と受信で異なるチップセレクト (CS) ピンを使用する場合 | |||
*: 複数のスレーブデバイスを接続する場合、送信先と受信先で異なるCSピンを使用することがある。 | |||
*: 送信時と受信時で異なるCSピンを使用する必要がある場合は、送信用と受信用で異なる設定が必要になる。 | |||
<br><br> | <br><br> | ||