Project_OKI’s diary

エンジニアの勉強ブログ

STM32マイコン38(CubeIDE SPI通信設定について)

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について

誤り検出符号の一種で、主にデータ転送などに伴う偶発的な誤りの検出によく使われている。
送信側は定められた生成多項式で除算した余りを検査データとして付加して送信し、受信側で同じ生成多項式を使用してデータを除算し、その余りを比較照合することによって受信データの誤り・破損を検出する。

 

参考動画:

www.youtube.com

 

 

 

3.関連記事

関連記事一覧:
 
組み込みC言語
 
STM32のデータシートなど: