STM32_SPI通信設定
table:設定内容
設定 内容
Basic Parameters 基本パラメータ
Frame Format モトローラ又はTIを設定
Data Size SPIフレーム内のデータビットを指定。8ビット又は16ビットサイズ。通信先のデバイスに依存する。
First Bit 送信する最初のビット位置を指定する。 LSB:一番右端のビット。MSB:一番左のビットを指す。通信先のデバイスに依存する。
Clock Parameters クロックパラメータ
Prescaler SPIクロックの分周比を指定する。SPIクロック速度の調整をする。
Clock Polarity クロック信号の初期状態を指定。 CPOL=0:クロックがLowから開始。 CPOL=1:クロックがHighから開始
Clock Phase データサンプリングのタイミングを指定。 CPHA=0:クロックの立ち上がりエッジでサンプリング。
Advanced Parameters 高度なパラメータ
CRC Calculation SPI通信で、CRCのエラーチェックを有効/無効を設定。有効の場合、送信データにCRCビットが追加される。
NSS Signal Type SPIのスレーブセレクト。
table:モード設定
Mode 意味
Full-Duplex Master 全二重通信方式_マスター
Full-Duplex Slave 全二重通信方式_スレーブ
Half-Duplex Master 半二重通信方式_マスター
Half-Duplex Slave 半二重通信方式_スレーブ
Receive Only Master 受信のみ_マスター
Receive Only Slave 受信のみ_スレーブ
Transmit Only Master 送信のみ_マスター
Transmit Only Slave 送信のみ_スレーブ
Full Duplex Transmission:全二重通信方式
→送信回線、受信回線をそれぞれ別に備えることで、送受を同時に行う事が可能
Half Duplex Transmission:半二重通信方式
→一度に「送信」と「受信」のどちらか片方しか行えない通信方法
→通信相手との間に1本だけ経路が繋がっていて、「送信」と「受信」を交互に行う
マスター:指示を出す側。開始側。
スレーブ:指示を受ける側。
通信の流れ
マスターが対象のスレーブを選択する(NSSをアクティブにする)。
マスターがクロックを発生させ、データをMOSI経由でスレーブに送信する。
同時に、スレーブはMISOを通じてデータをマスターに返信する。
通信が終了したら、マスターはNSSを非アクティブにし、次のデバイスとの通信に進む。
table:Hardware NSS Singnal
Hardware NSS Signal 内容
Disable NSS Signalを使用しない場合設定(ソフトウェア制御下のGPIOで置き換える)
Hardware NSS Input Signal NSS signalの入力設定:スレーブの時に使用
Hardware NSS Output Signal NSS signalの出力設定:マスターの時に使用
NSSは、マスターの場合は出力信号になり、通信時にローレベルへ落ちます。
スレーブの場合は入力となり、SS信号として働きます。
NSS:個別のスレーブ選択信号
table:パラメータ設定
Frame Format Motorola:
TI:
Data Size 送受信するbit数。通信相手に合わせる。
First Bit 最上位ビットか、最下位ビットを設定。通信相手に合わせる。
Prescaler 分周比、クロック周波数によって設定。通信相手に合わせる。
Clock Polarity(CPOL) アイドル状態(非通信時)の時にHightかLowか。 通信相手に合わせる。
Clock Phase(CPHA) クロックの立ち上がりエッジ、立下りエッジどちらで、データの取得をするか。
CRC Calculation
NSS Singnal Type
CRC:誤り検出符号の一種で、主にデータ転送などに伴う偶発的な誤りの検出によく使われている。
送信側は定められた生成多項式で除算した余りを検査データとして付加して送信し、受信側で同じ生成多項式を使用してデータを除算し、その余りを比較照合することによって受信データの誤り・破損を検出する。
Motorola:
通常のSPI通信設定
TI:
Hardware NSS Signalが使用する場合に選択可能。
データの最後のビットに、マスタによって提供されたNSSパルスによって同期される。
クロック極性と位相の設定が固定される。
スレーブデータ出力は、自動的にバストラフィックが停止したときにハイインピーダンスに切り替え、特定の設定可能なタイムアウトにされる。
https://www.youtube.com/watch?v=HLCTDL_5QWw