STM32マイコン38(CubeIDE SPI通信設定)
1.本日の内容
(1) STM32のSPI通信設定について記載する。
(2) STM32CubeIDEのSPI通信の設定について記載する。
使用マイコン:
・目次
2.内容
2.1 SPI通信とは
・マイクロコントローラとその周辺ICの間でよく使用される通信方式の1つ
・デバイスを選択するチップセレクト又はNSSと、データの送受信、クロックの4つの線で通信を行う。
詳細:SPI通信とは - Project_OKI’s diary
2.2 CubeIDEの設定
(a) CubeIDEのPinout & Configuration のConnectivityにSPIの設定がある。
(1) モードの種類と内容
意味 | |
---|---|
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本だけ経路が繋がっていて、「送信」と「受信」を交互に行う
・マスター
指示を出す側。開始側。
・スレーブ
指示を受ける側。
通信の流れ
(a) マスターが対象のスレーブを選択する(NSSをアクティブにする)。
(b) マスターがクロックを発生させ、データをMOSI経由でスレーブに送信する。
(c) 同時に、スレーブはMISOを通じてデータをマスターに返信する。
(d) 通信が終了したら、マスターはNSSを非アクティブにし、次のデバイスとの通信に進む。
(2) Hardware NSS Signalの設定
Hardware NSS Signal | 内容 |
---|---|
Disable |
NSS Signalを使用しない場合設定 (ソフトウェア制御下のGPIOで置き換える) |
Hardware NSS Input Signal | NSS signalの入力設定:スレーブの時に使用 |
Hardware NSS Output Signal | NSS signalの出力設定:マスターの時に使用 |
NSSは、マスターの場合は出力信号になり、通信時にローレベルへ落ちる。
スレーブの場合は入力となり、SS信号として働きます。
NSS:個別のスレーブ選択信号のこと。
Disableの場合、NSSとは別にチップセレクト用のGPIOを設定する。
参考:裏技!? SPIに複数のスレーブを接続する方法:Q&Aで学ぶマイコン講座(49)(2/3 ページ) - EDN Japan
(3) 基本パラメータの設定
設定 | 内容 |
---|---|
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:クロックの立ち上がりエッジでサンプリング。 CPHA=1:クロックの立下りエッジでサンプリング。 |
Advanced Parameters | 高度なパラメータ |
CRC Calculation |
SPI通信で、CRCのエラーチェックを有効/無効を設定。 有効の場合、送信データにCRCビットが追加される。 |
NSS Signal Type |
SPIのスレーブセレクト。 Hardware NSS Signalの設定で設定される。 |
・ CRCについて
誤り検出符号の一種で、主にデータ転送などに伴う偶発的な誤りの検出によく使われている。
送信側は定められた生成多項式で除算した余りを検査データとして付加して送信し、受信側で同じ生成多項式を使用してデータを除算し、その余りを比較照合することによって受信データの誤り・破損を検出する。
参考動画:
3.関連記事
・STM32マイコン_2(UART通信:TeraTermにHellow表示) - Project_OKI’s diary
・STM32マイコン_3(UART通信:複数文字送信) - Project_OKI’s diary
・STM32マイコン_4(NVICの設定内容) - Project_OKI’s diary
・STM32マイコン_5(スイッチ入力とLED点灯、消灯) - Project_OKI’s diary
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary