STM32 SPI学習

SPI

シリアル ペリフェラル インターフェイスは、高速、全二重、同期通信バスです。

ここに画像の説明を挿入
SCK クロック信号はホストによって送信されます。
SPI インターフェイスは主にメモリ チップで使用されます。
ここに画像の説明を挿入
ここに画像の説明を挿入

  1. SPI 関連ピン: MOSI (出力データ ライン)、MISO (入力データ ライン)、SCK (クロック)、NSS (チップ セレクト)。
  2. データ送受信: バッファ、シフトレジスタ、ピンに関連します。
  3. クロック信号: SPI クロック信号は SPI_CR1 レジスタを通じて設定されます。
  4. メイン制御ロジック: SPI 動作を設定するための 2 つの制御レジスタ SPI_CR1/2 と、動作ステータスを表示するための SPI_SR が含まれます。

ソフトウェアを使用して NSS を管理すると、ハードウェアの NSS ピンを他の目的に使用でき、レベルは SSM および SSI を通じて制御されます。マスター NSS は High にプルされ、スレーブ NSS はアクティブ Low になります。

SPIペリフェラルに対応するピン

STM32 チップには複数の SPI ペリフェラルがあり、各 SPI ペリフェラルから出力された信号は異なる GPIO ポートに送られます。
STM32F1 には 3 つの SPI があります。
ここに画像の説明を挿入
SPI はエッジ プロトコル、IIC はレベル プロトコルです。
マスターはスレーブに書き込むだけであり、スレーブから受信したデータは無視できます。
主にスレーブで読み取り操作を実行するには、空のデータを送信してスレーブのデータ送信をトリガーする必要があります。

SPI動作モード

クロック極性 (CPOL) データが送信されていないときのクロック ラインのアイドル状態レベル。

  • 0: SCK はアイドル状態でも Low のままです
  • 1: アイドル状態でも SCK は High のままです

クロック位相 (CPHA) クロック ラインは、クロック エッジでデータをサンプリングします。

  • 0: SCK (奇数) の最初のエッジでデータ ビットがサンプリングされ、データはクロックの最初のエッジでラッチされます。
  • 1: SCK の 2 番目のエッジ (偶数) でデータ ビットがサンプリングされ、データはクロックの 2 番目のエッジでラッチされます。

ここに画像の説明を挿入

SPI関連レジスタ

ここに画像の説明を挿入
SPI_CR1
ここに画像の説明を挿入
ここに画像の説明を挿入
SPI_SR
ここに画像の説明を挿入
ここに画像の説明を挿入
SPI_DR
ここに画像の説明を挿入

SPI関連のHALライブラリドライバ

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

フラッシュもありません

FLASHはデータを保存する半導体デバイスとして広く使われており、大容量、書き換え可能、「セクタ/ブロック」単位で書き換え可能、停電後もデータを保存し続けることができるという特徴を持っています。

FLASH は 1 ではなく 0 のみを書き込むことができ、消去することで 1 を書き込むことができます。

FLASHには主にNORフラッシュとNANDフラッシュの2種類があり、NORとNANDはデジタルゲート回路の2種類です。

ここに画像の説明を挿入
ここに画像の説明を挿入

NM25Q128

NM25Q128 はシリアル フラッシュ メモリ デバイスで、容量が 128Mb の NOR FLASH の一種です。消去・書き込みサイクルは10W回に達し、データは最長20年間保存可能です。

おすすめ

転載: blog.csdn.net/Caramel_biscuit/article/details/131974849