MSP430G2553 - SPI

提供:MochiuWiki : SUSE, EC, PCB
2024年6月5日 (水) 00:33時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == SPI (Serial Peripheral Interface) は、マスター・スレーブ方式を採用するシリアル通信インターフェースの一種であり、主にマイコンとペリフェラル (周辺機器) 間の通信に使用される。<br> <br> 同期式通信で、マスターがクロック信号を生成する。<br> 全二重 (双方向) 通信が可能であり、少ないピン数で高速なデータ通信を実現することができる。<…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

SPI (Serial Peripheral Interface) は、マスター・スレーブ方式を採用するシリアル通信インターフェースの一種であり、主にマイコンとペリフェラル (周辺機器) 間の通信に使用される。

同期式通信で、マスターがクロック信号を生成する。
全二重 (双方向) 通信が可能であり、少ないピン数で高速なデータ通信を実現することができる。

SPIの主な特徴を以下に示す。

  • マスター・スレーブ方式
    マスター・スレーブ方式を採用しており、通常1つのマスターデバイスが1つ以上のスレーブデバイスを制御する。

  • 全二重通信
    全二重通信が可能であり、マスターとスレーブが同時にデータを送受信できる。

    3本以上の信号線
    SPIは、以下に示す信号線を使用する。
    • SCLK (Serial Clock)
      マスターが生成するクロック信号
    • MOSI (Master Output, Slave Input)
      マスターからスレーブへのデータ送信線
    • MISO (Master Input, Slave Output)
      スレーブからマスターへのデータ送信線
    • SS (Slave Select)
      マスターがスレーブを選択するための信号線
  • デイジーチェーン接続
    複数のスレーブを接続する場合、デイジーチェーン接続が可能である。
    これにより、マスターは最小限の信号線でスレーブを制御することができる。

  • 高速通信
    SPIは比較的高速な通信が可能であり、一般的にはMHz単位のクロック周波数で動作する。

  • 柔軟性
    SPIはクロック極性(CPOL)とクロック位相(CPHA)を設定できるため、様々なデバイスに対応可能です。


SPIは、EEPROM、フラッシュメモリ、センサ、ディスプレイ等、多様なペリフェラルとの通信に広く使用されている。

ただし、シンプルな構成と高速性が特徴であるが、デバイス数の増加に伴い信号線が増えるため、大規模なシステムには不向きな場合がある。


MSP430G2553のSPI通信

MSP430G2553におけるSPIモジュールは、USCI_A0レジスタ (Universal Serial Communication Interface) を使用することにより、実現することができる。
MSP430マイコンでは、マスターおよびスレーブとして動作可能である。

MSP430G2553のSPIは、センサ、メモリ、ディスプレイ等の外部デバイスとの高速なデータ通信に適している。
適切な設定と通信プログラムにより、効率的なデータ交換が可能である。

  - 7つの動作モードを選択可能(3線式SPI、4線式SPI、I2Cなど)
  - データ長は7ビットまたは8ビットを選択可能


SPI通信で使用する信号線

  • SCLK (Serial Clock)
    マスターが生成するクロック信号
  • MOSI (Master Out, Slave In)
    マスターからスレーブへのデータ送信線
  • MISO (Master In, Slave Out)
    スレーブからマスターへのデータ送信線
  • CS (Chip Select)
    スレーブを選択するための信号線


SPI通信の動作概要 =

まず、マスターがクロック信号を生成し、通信を開始する。
マスターとスレーブは、MOSIとMISOを介して同時にデータを送受信する。

次に、マスターはCSを使用して通信するスレーブを選択する。
クロックの極性 (CPOL) とフェーズ (CPHA) は設定可能である。

SPI通信の設定手順

  1. SPIに使用するピンの機能を選択する。 (UCA0SIMO、UCA0SOMI、UCA0CLK)
  2. クロック源の選択とボーレートを設定する。
  3. SPIモード (マスター / スレーブ) を選択する。
  4. データ長、クロックの極性とフェーズを設定する。
  5. 必要に応じて、割り込みを設定する。
  6. マスターの場合は、CSピンを制御する。