SPI
シリアル ペリフェラル インターフェイスは、高速、全二重、同期通信バスです。
SCK クロック信号はホストによって送信されます。
SPI インターフェイスは主にメモリ チップで使用されます。
- SPI 関連ピン: MOSI (出力データ ライン)、MISO (入力データ ライン)、SCK (クロック)、NSS (チップ セレクト)。
- データ送受信: バッファ、シフトレジスタ、ピンに関連します。
- クロック信号: SPI クロック信号は SPI_CR1 レジスタを通じて設定されます。
- メイン制御ロジック: 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年間保存可能です。