W25Q128チップマニュアルを集中的に読む

序文

以前SPI通信を書いたときはW25Q128を使ったのですが、チップのマニュアルを読んで必要な部分だけ書きました。
このブログではこのチップを詳しく読み解いて記録していく予定で、記事は比較的長くなるかもしれませんが、私の理解に基づいて確実に説明しています。

私が初めてチップのマニュアルを読み始めたとき、最大の障害は英語でした、私は中国語で読むことに慣れていたので、純粋な英語のマニュアルを直接読むのは本当に不快でした。でも、マニュアルを読むことは試験ではありませんし、翻訳ソフトもたくさんありますので、分からなければコピペして翻訳するだけでも良いです。この翻訳の唯一の欠点は、機械翻訳が正確ではない可能性があり、一部の専門用語は素人の言葉で説明できることです。

このブログではwinbond同社のW25Q128チップのマニュアルに沿って解説していきます。


1。概要

概要

この章では主にこのチップの概要について説明しており、チップの目的や内部構成など、このチップの基本的な情報を素早く理解するのに役立ちます。

最初の段落では、このチップは 8M ビットのシリアル フラッシュ メモリ チップであることがわかります。このチップは主にストレージ システムが限られたシステムに適しています。このようなシステムは通常、スペース、ピン、電源が限られています。つまり、適用可能なソリューションです。このチップの場合。後で、その動作電圧と電流について説明しましたが、これは電力を間接的に説明します。

2 番目の段落では、チップの内部メモリの割り当てが示されており、それぞれ 256 バイトのプログラム可能なページが 65536 個含まれています。一度に最大 256 バイトをプログラムできます。消去は、16、128、256 個のグループ、またはチップ サイズ全体で実行できます。

3 番目の段落では、このチップが SPI 通信をサポートし、デュアル チャネルおよびスレッド SPI をサポートしていることがわかります。SPI のクロック周波数は最大 104M に達し、デュアル出力の等価クロック周波数は 208MHz、4 ウェイ SPI の等価クロック周波数は 280MHz (70MHz x 4) になります。
つまり、本質的な意味は、このチップが SPI をサポートしており、SPI の周波数が比較的高いということです。

4 番目の段落では、主にこのチップのいくつかの制御ピンについて説明しており、これら 3 つのピン、Hold、WriteProtect、Programmable Write Protection によってチップの制御が容易になります。

これら 4 つの段落を簡単に要約すると、チップの目的、チップ メモリの構成と使用、SPI 通信、デュアル チャネル マルチチャネル、通信周波数のサポート、制御ピン、および制御ピン、およびその他の機能です。


2. 特徴

特長 本章
では第 1 章の概要と比較し、チップのフラッシュメモリ特性、機能特性、電気的特性、パッケージング特性などについて説明します。

  • SpiFlash メモリ ファミリ SPI フラッシュ メモリ ファミリ
    128M ビット/16M バイト
    プログラマブル ページ ページあたり 256 バイト
    标准SPI引脚:CLK,/CS,DI,DO,/WP,/Hold
    デュアル チャネル SPI ピン: CLK、/CS、IO 0 IO_{0}アイ・オー0I 1 I{1}アイ・オー1、DO、/WP、/ホールド
    4 チャネル SPI ピン: CLK、/CS、IO 0 IO_{0}アイ・オー0I 1 I{1}アイ・オー1I 2 I{2}アイ・オー2I 3 I{3}アイ・オー3
    この部分は、このチップが SPI シングルおよびダブル 4 チャネルを使用するときにどのピンが使用されるかを示します。

  • 最高性能シリアルフラッシュ 最高性能のシリアルフラッシュメモリ
    デュアルチャネルSPIクロック最大出力104MHz、クアッドチャネルクロック最大出力70MHz
    208/280MHz相当のデュアル/クワッドSPI
    35MB/sの連続転送データ一般的なシリアルフラッシュメモリの
    最大5倍の速度10
    万回のプログラム消去/書き込みサイクル
    20年以上のデータ保持

  • 効率的な「連続読み取りモード」 効率的な連続読み取りデータ モード
    低い命令
    オーバーヘッド 8/16/32/64 バイト ラッピングによる連続読み取り
    メモリのアドレス指定に必要なクロックは 8 クロックのみX16 パラレル フラッシュよりも優れ
    た真の XIP (execution in place)
    操作パフォーマンス可能

  • 低消費電力、広い温度範囲 低消費電力、広い温度範囲
    单个2.7至3.6V电源
    4mA有效电流,<1µA断电电流
    -40°C至+85°C工作范围

  • 4KB セクタの柔軟なアーキテクチャ
    均一セクタ/ブロック消去 (4K/32K/64K バイト)
    プログラム 1 ~ 256 バイト
    消去/プログラムの一時停止および再開

  • 高度なセキュリティ機能
    ソフトウェアおよびハードウェア書き込み保護
    トップ/ボトム、4KB 補助アレイ保護
    ロックおよび OTP アレイ保護各デバイス
    の 64 ビット固有のシリアル番号
    検出可能パラメータ (SFDP)
    レジスタ OTP ロック付き 3X256 バイト セキュリティ レジスタ
    揮発性および不揮発性ステータス レジスタビット

  • 省スペースパッケージ
    8 パッド WSON 8x6 mm
    16 ピン SOIC 300 mil
    24 ボール TFBGA 8x6 mm

そうです、私はそれを翻訳しただけです。
通常、この部分では次のような最初のいくつかだけを確認します。
使用したい SPI ピン、サポートされる最大クロック、動作電圧、電流、および動作環境は何ですか。


3. パッケージの種類と端子配置

パッケージの種類とピン構成

チップを手に入れたらやはりパッケージを見る必要がありますが、同じ種類のチップであっても、パッケージやサイズの違いにより、実装されている機能が多少異なります。

W25Q128BV は、8 パッド WSON 8x6 mm (パッケージ コード E)、16 ピン SOIC 300 mil (パッケージ コード F)、および 24 ボール 8x6 mm TFBGA (パッケージ コード C) で提供されます。

3.1 8 パッド WSON 8x6 mm

ここに画像の説明を挿入します

上面図から、ピン 1 の位置にピン 1 を表す小さな灰色の円があることがわかります。
回路のデバッグ時、チップの小丸の位置を見ればすぐに1番ピンを見つけることができ、チップマニュアルと組み合わせることで全ピンの対応状況を知ることができます。

ここの各ピンにはロゴが付いており、一部のピンの後に が付いています()。これは、このピンがピン多重化できることを示しています。
ここに画像の説明を挿入します

各ピンの機能は、このピン説明表から知ることができます。
ピン No.1 はチップセレクト、アクティブ Low レベルです。
2 番ピンはデータ出力端子であり、IO1 のデータ入出力端子としても使用できます。
3 番ピンはライトプロテクト端子で、Low レベルでアクティブとなり、IO2 のデータ入出力端子としても使用できます。
ピン 4 はグランド、
ピン 5 はデータ入力ピンであり、IO0 のデータ入出力ピンとしても使用できます。
ピン番号 6 はクロック ピンで、通常はホストからシリアル クロック入力を受け取ります。
7 番ピンはホールド入力端子で、Low レベルでアクティブとなり、IO3 のデータ入出力端子としても使用できます。
ピン8は電源ピンです

ここでも、IO0 と IO1 は標準およびデュアルチャネル SPI 命令の送信に使用されることに注意してください。
IO0 ~ IO3 は 4 つの SPI コマンドを送信するために使用されます。


3.2 その他のパッケージ

ピン配置 SOIC 300-mil
ここに画像の説明を挿入しますここに画像の説明を挿入します看的方法类似,就不再一一阐述。
ボール配置 TFBGA 8x6-mm

ここに画像の説明を挿入します
ここに画像の説明を挿入します


4. 端子説明

端子説明表では各端子の機能を簡単に説明していますが、ここでは主に主要な端子について詳しく説明します。

4.1 フィルムの選択

Chip Select (/CS)
チップセレクト端子、Low レベルが有効、High レベルが無効。
ハイの場合、デバイスの電力消費は、内部レジスタへの消去、プログラミング、および書き込み操作が発生しない限り、スタンバイ状態のままになります。
低い場合、デバイスの消費電力は有効状態まで増加し、コマンド情報とデータをデバイスとやり取りできるようになります。
高レベルと低レベルが有効であるためには重要な値があり、レベルが VCC サポート レベルに達した場合にのみ、高レベルを示すようにトリガーされます。たとえば、3.0V を超えるレベルは高レベルを示すことができますが、そうでない場合は依然として低レベルのままです。

4.2 シリアルデータ入出力

シリアル データ入力、出力、および IO (DI、DO および IO0、IO1、IO2、IO3)
W25Q128 は、シングル チャネル、デュアル チャネル、およびクアッド チャネル SPI 通信をサポートします。
シングルチャネル SPI は標準の SPI 通信で、CLK の立ち上がりエッジで制御ワード、アドレス、またはデータをデバイスに書き込むには DI ピンを使用します。
シングルチャネル SPI は標準の SPI 通信で、DO ピンを使用して CLK の立ち下がりエッジでデバイスからデータまたはステータスを読み取ります。

デュアルおよびクワッド SPI 制御命令は、IO ピンを使用してデータをシリアルに書き込みます。データの読み取りおよび書き込みに対応するクロックは、読み取りの場合は CLK↓、書き込みの場合は CLK↑ です。
4 ウェイの場合、Quad イネーブル ビット (QE=1) も必要です。
QE=1 のとき、ライトプロテクト端子 /WP を IO2 として使用でき、ホールド端子 /HOLD 端子を IO3 として使用できます。

4.3 書き込み保護

ライトプロテクト (/WP)
書き込み保護ピンは、主にステータス レジスタへのデータ書き込みを保護するために使用されます。
ステータス レジスタのブロック保護 (CMP、SEC、TB、BP2、BP1、および BP0) ビットおよびステータス レジスタ保護 (SRP) ビットと組み合わせて使用​​すると、4KB セクタの一部またはメモリ アレイ全体を保護できます。ハードウェアで保護されていること。/WP ピンはアクティブ ローです。ステータス レジスタ 2 の QE ビットがクワッド I/O に設定されている場合、このピンは IO2 に使用されるため、/WP ピンの機能は使用できません。ピン配置は、図 1a ~ 図 1c のクアッド I/O 動作の構成に示されています。

4.4 足元を保つ

HOLD (/HOLD)
/HOLD ピンを使用すると、アクティブに選択するとデバイスを一時停止できます。/HOLD が Low になり、
/CS が Low になると、DO ピンはハイ インピーダンスになり、DI ピンと CLK ピンの信号は無視されます (ドントケア)。/HOLD が High になると、デバイスの動作が再開されます。/HOLD 機能は、複数のデバイスが同じ SPI 信号を共有する場合に役立ちます。/HOLD ピンはアクティブ ローです。
ステータス レジスタ 2 の QE ビットがクワッド I/O に設定されている場合、このピンは IO3 に使用されるため、/HOLD ピン機能は使用できません。クワッド I/O 動作のピン構成を図 1a ~ 図 1c に示します。

4.5 時計

シリアル クロック (CLK)
SPI シリアル クロック入力 (CLK) ピンは、シリアル入力および出力動作のタイミングを提供します。


5. ブロック図

ここに画像の説明を挿入します

ブロック図に関連するいくつかの用語を説明します。

  • SPI Command&Control Logic:SPI シリアル データ解析を実行して、ページ アドレス (選択されたワード ラインとして理解できる)、バイト アドレス (ページ内のオフセット アドレス、選択されたビット ラインとして理解できる)、データ、およびコマンドを取得します。

  • Status Register:オンチップステータスレジスタ。

  • Write Control Logic:書き込み保護制御ロジック。

  • High Voltage Generators:チャージポンプはメモリセルの消去、読み出し、書き込みのために内部高電圧を生成します。

  • Page Address Latch:ページアドレスラッチ

  • Byte Address Latch:バイトアドレスラッチ

  • Write Protect Logic And Row Decode:書き込み保護ロジックと行デコード。行はワード線です。

  • Column Decode And 256-Byte Page Buffer:カラムのデコードと 256KB のページ バッファ、カラムはビット ラインであり、このことからフラッシュ内の読み取りと書き込みはページに基づいていることがわかります。1ページは1本のワード線に接続された8個のメモリセル、つまり256個の8個のビット線であることが分かりました。

  • 存储阵列:合計 256 個の 64KB ブロックがあり、各ブロックには 16 個の 4KB セクターがあります。

  • SFDP Register:デバイス構成情報、利用可能な命令、およびその他の機能を含む 256 バイトのシリアル フラッシュ検出可能パラメータ (SFDP) レジスタ。

  • Security Register:このチップには、製造情報やその他の重要な情報を保存するための 256 バイトのセキュリティ レジスタが 3 つあり、このレジスタは個別にプログラムまたは消去できます。


6. 機能説明

ここで重要なのは翻訳することですが、チップのマニュアルにあるピンの説明の一部は非常に繰り返しになっています。

6.1 SPI関数

6.1.1 標準 SPI

標準 SPI 命令
W25Q128BV は、シリアル クロック (CLK)、チップ セレクト (/CS)、シリアル データ入力 (DI)、およびシリアル データ出力 (DO) の 4 つの信号で構成される SPI 互換バスを介してアクセスされます。標準 SPI 命令は、DI 入力ピンを使用して、クロック CLK の立ち上がりエッジで命令、アドレス、またはデータをデバイスにシリアルに書き込みます。DO 出力ピンは、CLK の立ち下がりエッジでデバイスからデータまたはステータスを読み取るために使用されます。
SPI バス動作モード 0 および 3 をサポートします。モード 0 および 3 では、SPI バス マスターがスタンバイ状態になり、データはシリアル フラッシュ メモリに転送されません。
モード 0 の場合、CLK 信号は通常 /CS 遷移エッジで Low になります。
モード 3 の場合、CLK 信号は通常、/CS 遷移エッジで High になります。

6.1.2 デュアルチャネル SPI

デュアル SPI 命令
W25Q128BV は、「高速読み取りデュアル出力 (3Bh)」および「高速読み取りデュアル入出力 (BBh)」命令を使用しており、これらの命令により、通常のシリアル フラッシュ デバイスの 2 ~ 3 倍の速度での動作が可能になります。 SPI 命令 SPI 読み取り命令は、電源投入後にコードを RAM にすばやくダウンロードする場合 (コード隠蔽)、または速度が重要ではないコードを SPI バス (XIP) から直接実行する場合に最適です。デュアル SPI 命令を使用する場合、DI ピンと DO ピンは双方向 I/O ピン: IO0 および IO1。

6.1.3 クアッドチャネル SPI

クアッド SPI 命令
W25Q128BV は、「高速読み取りクアッド出力 (6Bh)」、「高速読み取りクアッド I/O (EBh)」、「ワード読み取りクアッド I/O (E7h)」、および「8 進ワード読み取りクアッド I/O(E3h)」を使用します。 )" 命令。
これらの命令により、シリアル フラッシュ メモリの通常の速度の 6 ~ 8 倍でデバイスとの間でデータを転送できます。クアッドリード命令により、アクセス転送速度の連続性とランダム性が大幅に向上し、RAM への高速コード シャドウイングや SPI バス (XIP) からの直接実行が可能になります。クアッド SPI 命令を使用する場合、DI ピンと DO ピンは双方向 IO0 と IO1 になり、/WP ピンと /HOLD ピンはそれぞれ IO2 と IO3 になります。クワッド SPI 命令では、不揮発性クワッド イネーブル ステータス レジスタ 2 のビット (QE) を設定する必要があります。

6.1.4 ホールド機能

ホールド機能
標準 SPI およびデュアル SPI 動作の場合、/HOLD 信号により、アクティブに選択されているとき (/CS が Low のとき)、W25Q128BV の動作を一時停止できます。/HOLD 機能は、SPI データおよびクロック信号が他のデバイスと共有される状況で役立つ場合があります。たとえば、優先割り込みで SPI バスの使用が必要な場合に、部分的にのみ書き込まれるページ バッファについて考えてみましょう。この場合、/HOLD 機能を使用すると命令とデータのステータスをバッファに保存できるため、バス上でプログラミングが開始されるとすぐにプログラミングを停止できます。/HOLD 機能は、標準 SPI および DualSPI 動作中にのみ動作し、Quad SPI 動作中には動作しません。

/HOLD 状態を開始するには、/CS が Low の状態でデバイスを選択する必要があります。
CLK 信号がすでに Low の場合、/HOLD 状態が有効になります。
CLK が Low でない場合、CLK の次の立ち下がりエッジの後に /HOLD が有効になります。
CLK がすでに Low の場合、/HOLD が High にプルされると、/HOLD アクティブ状態は終了します。
CLK がまだ Low になっていない場合、/HOLD 条件は CLK の次の立ち下がりエッジの後に終了します。
/HOLD 状態の間、シリアル データ出力 (DO) はハイ インピーダンスになり、シリアル データ入力 (DI) とシリアル クロック (CLK) は無視されます。チップ セレクト (/CS) 信号は、デバイスの内部論理状態のリセットを避けるために、/HOLD 動作の全期間中アクティブ ローのままでなければなりません。

6.2 書き込み保護

書き込み保護
不揮発性メモリを使用するアプリケーションでは、データの完全性を損なう可能性のあるノイズやその他の有害なシステム条件の可能性を考慮する必要があります。この問題に対処するために、W25Q128BV は不注意な書き込みからデータを保護するためのいくつかの方法を提供します。

6.2.1 ライトプロテクト機能

書き込み保護機能
• VCC がしきい値を下回った場合のデバイスのリセット
• 電源投入後の時間遅延書き込み禁止
• 消去またはプログラム後の書き込み許可 / 禁止命令と自動書き込み禁止
• ステータス レジスタ (/WP ピン) を使用したソフトウェアおよびハードウェアの書き込み保護
• 電源の使用書き込み保護のための -down コマンド
• 次回電源投入まで書き込み保護をロック
• ワンタイム プログラム (OTP) 書き込み保護*

電源をオンまたはオフにしても、VCC が VWI のスレッショルドを下回っている間、W25Q128BV はリセット状態のままになります (電源投入のタイミングと電圧レベルおよび図 38 を参照)。リセットすると、すべての操作が無効になり、コマンドは認識されません。電源投入中および VCC 電圧の後、すべてのプログラムおよび消去関連命令は tPUW の時間遅延の間さらに無効になります。これには、ライトイネーブル、ページプログラム、セクタ消去、ブロック消去、チップ消去、およびライトステータス登録命令が含まれます。チップ選択ピン (/CS) は、電源投入時に VCC 最小レベルと tVSL 時間遅延に達するまで、VCC 電源レベルを追跡する必要があることに注意してください。これは、必要に応じて /CS 上のプルアップ抵抗を使用して実現できます。

電源投入後、デバイスは自動的に書き込み禁止状態になり、ステータス レジスタの書き込みイネーブル ラッチ (WEL) が 0 に設定されます。ライトイネーブルコマンドは、ページプログラム、セクタ消去、ブロック消去、チップ消去、またはライトステータスレジスタコマンドが受け入れられる前に発行する必要があります。完了すると、書き込みイネーブル ラッチ (WEL) は自動的にクリアされて書き込み禁止状態 0 になります。Write Status Register コマンドを使用して、ステータス レジスタ保護 (SRP0、SRP1) およびブロック保護 (CMP、SEC、TB、BP2、BP1、および BP0) ビットを設定します。これらの設定により、4KB セクター程度の小さな部分またはメモリ アレイ全体を読み取り専用として構成できます。ライトプロテクト (/WP) ピンと併用すると、ハードウェア制御の下でステータス レジスタへの変更を有効または無効にできます。さらに、パワーダウン コマンドはパワーダウン コマンドに加えて解放されるため、パワーダウン コマンドは追加レベルの書き込み保護を提供します。


7. ステータスレジスタと命令

7.1 ステータスレジスタ

ステータス レジスタと命令 リード
ステータス レジスタ 1 およびステータス レジスタ 2 命令を使用して、フラッシュ アレイの可用性ステータス、書き込みステータス保護、クワッド SPI 設定、セキュリティ レジスタ ロック ステータス、およびデバイスが書き込み可能である場合の消去を提供できます。削除/プログラム保留ステータス。Write Status Register 命令を使用して、デバイスの書き込み保護機能、Quad SPI 設定、およびセキュリティ レジスタ OTP ロックを構成できます。ステータス レジスタへの書き込みアクセスは、不揮発性ステータス レジスタ保護ビット (SRP0、SRP1) のステータス、書き込みイネーブル コマンド、およびスタンダード/デュアルの SPI 動作中、/WP ピンによって制御されます。
ステータスレジスタにはたくさんの種類がありますが、以下に表で説明します。

IDを登録する フルネームを登録する レジスタの説明
忙しい ビジーステータス BUSY はステータス レジスタ (S0) の読み取り専用ビットで、デバイスがページ プログラム、クワッド ページ プログラム、セクタ消去、ブロック消去、チップ消去、ステータス レジスタ書き込み、またはセキュリティ レジスタ消去/プログラム命令を実行するときに発生します。ビットは 1 状態に設定されます。この間、デバイスはステータス レジスタの読み取りおよび消去/プログラム一時停止命令以外の命令を無視します (「AC 特性」の tW、tPP、tSE、tBE、および tCE を参照)。プログラム、消去、またはステータス/セキュリティ レジスタへの書き込み命令が完了すると、BUSY ビットは 0 状態にクリアされ、デバイスがさらなる命令を受け入れる準備ができていることを示します。
良い ライトイネーブルラッチステータス ライト イネーブル ラッチ (WEL) はステータス レジスタ (S1) の読み取り専用ビットで、ライト イネーブル命令の実行後に 1 に設定されます。デバイスが書き込み禁止になると、WEL ステータス ビットは 0 にクリアされます。書き込み禁止状態は、電源投入後、または次の命令のいずれかの後に発生します: 書き込み禁止、ページ プログラム、クワッド ページ プログラム、セクタ消去、ブロック消去、チップ消去、書き込みステータス レジスタ、消去セキュリティ レジスタ、およびプログラム セキュリティ レジスタ。
BP2、BP1、BP0 ブロックプロテクトビット ブロック保護ビット (BP2、BP1、BP0) は、書き込み保護制御とステータスを提供するステータス レジスタ (S4、S3、および S2) の不揮発性読み取り/書き込みビットです。ブロック保護ビットは、ステータス レジスタ書き込み命令を使用して設定できます (AC 特性の tW を参照)。メモリ アレイのすべて、すべて、または一部は、プログラムおよび消去命令によって保護できます (ステータス レジスタ メモリ保護テーブルを参照)。ブロック保護ビットの工場出荷時のデフォルト設定は 0 で、配列は保護されません。
結核 上下ブロックプロテクトビット 不揮発性の上位/下位ビット (TB) は、ブロック保護ビット (BP2、BP1、BP0) がアレイの上位 (TB=0) または下位 (TB=1) のどちらから保護されるかを制御します。ステータスレジスタメモリ保護テーブル表示。工場出荷時のデフォルト設定はTB=0です。SRP0、SRP1、および WEL ビットの状態に応じて、ステータス レジスタ書き込み命令を使用して TB ビットを設定できます。
SEC セクタ/ブロックプロテクトビット 不揮発性セクター/ブロック保護ビット (SEC) は、ブロック保護ビット (BP2、BP1、BP0) が、ブロック保護ビット (BP2、BP1、BP0) の先頭 (TB=0) または末尾 (TB=1) の 4KB セクター (SEC=1) を保護するかを制御します。ステータス レジスタのメモリ保護テーブルに示されているように、アレイまたは 64KB ブロック (SEC=0)。デフォルト設定は SEC=0 です。
CMP 補体保護ビット 相補保護ビット (CMP) は、ステータス レジスタ (S14) の不揮発性読み取り/書き込みビットです。これは、SEC、TB、BP2、BP1、および BP0 ビットを組み合わせて、アレイ保護の柔軟性を高めるために使用されます。CMP が 1 に設定されると、SEC、TB、BP2、BP1、BP0 によって以前に設定されたアレイ保護が無効になります。たとえば、CMP = 0 の場合、先頭の 4KB セクタは保護されますが、アレイの残りの部分は保護されません。CMP = 1 の場合、先頭の 4KB セクタは保護されず、アレイの残りの部分は読み取り専用になります。詳細については、「ステータス レジスタ メモリ保護テーブル」を参照してください。デフォルト設定は CMP=0 です。
SRP1、SRP0 ステータスレジスタ保護ビット ステータス レジスタ保護ビット (SRP1 および SRP0) は、ステータス レジスタ (S8 および S7) の不揮発性読み取り/書き込みビットです。SRP ビットは、書き込み保護の方法 (ソフトウェア保護、ハードウェア保護、電源ロックアウト、またはワンタイム プログラマブル (OTP) 保護) を制御します。
彼らの 消去/プログラム一時停止ステータス サスペンド ステータス ビットはステータス レジスタ (S15) の読み取り専用ビットで、消去/プログラム サスペンド (75h) 命令の実行後に 1 に設定されます。SUS ステータス ビットは、消去/プログラム回復 (7Ah) コマンドと電源オフと電源オンのサイクルによって 0 にクリアされます。
LB3、LB2、LB1 セキュリティ レジスタ ロック ビット セキュリティ レジスタ ロック ビット (LB3、LB2、LB1) は、ステータス レジスタ (S13、S12、S11) の不揮発性ワンタイム プログラマブル (OTP) ビットで、セキュリティ レジスタに書き込み保護制御とステータスを提供します。LB[3:1] のデフォルト状態は 0 で、セキュリティ レジスタはロック解除されています。LB[3:1] は、ステータス レジスタ書き込み命令を使用して個別に 1 に設定できます。LB[3:1] はワンタイム プログラマブル (OTP) で、1 に設定されると、対応する 256 バイトのセキュリティ レジスタが永続的に読み取り専用になります。
量的緩和 クワッドイネーブルビット クアッド イネーブル (QE) ビットは、クアッド SPI 動作を可能にするステータス レジスタ (S9) の不揮発性読み取り/書き込みビットです。QE ビットが 0 状態 (工場出荷時設定) に設定されると、/WP ピンと /HOLD ピンが有効になります。QE ビットが 1 に設定されると、クワッド IO2 ピンと IO3 ピンが有効になり、/WP 機能と /HOLD 機能が無効になります。

SRP1、SRP0 ステータスレジスタ保護ビットおよび /WP 書き込み保護胃に関しては、下表に示すようにいくつかの設定状態があります。
SRP1=0、SRP0=0、/WP=x の場合は制御を受けません。このとき、ソフトウェアプロテクトが行われており、ライトイネーブル命令の後にステータスレジスタにデータを書き込むことができます。これが工場出荷時の設定です。
SRP1=0、SRP0=1、/WP=0 のときローレベル。このとき、ハードウェア保護がかかり、ステータスレジスタがロックされ、データを書き込むことができません。
SRP1=0、SRP0=1、/WP=1 のときハイレベル。このとき、ハードウェア保護が作動し、ステータスレジスタのロックが解除され、データの書き込みが可能になります。
SRP1=1、SRP0=0、/WP=x の場合は制御を受けません。このとき、電源はロックされ、ステータス レジスタは保護され、次の電源オフと電源オンのサイクルまで書き込むことができません。
SRP1=1、SRP0=1、/WP=x の場合は制御を受けません。これは 1 回限りのプログラミングであり、ステータス レジスタへの書き込みは 1 回のみであり、永続的に保護されており、再度書き込むことはできません。

当SRP=1,SRP0=0或1时,一个断电上电周期将把SRP1和SRP0都改为0状态。
ここに画像の説明を挿入します

ステータス レジスタの内部ビットマップは次のとおりです。
ステータス レジスタにデータを書き込む場合は、図 3a-3b の制御ビットの書き込みを参照してください。
ここに画像の説明を挿入します

CMP ビットが 0 および 1 の場合、メモリ内の一部のアドレスは保護されたアドレスです。詳細についてはチップのマニュアルを参照してください。
ここに画像の説明を挿入します
ここに画像の説明を挿入します


7.2 指示

説明書

W25Q128BV の命令セットは 35 の基本命令で構成されており、これらは SPI バスを通じて完全に制御されます (命令セット 1 ~ 3 を参照)。命令はチップセレクト (/CS) の立ち下がりエッジによって開始されます。クロック入力 DI によって入力されるデータの最初のバイトは命令コードを提供します。DI 入力のデータは、クロックの立ち上がりエッジで最上位ビット (MSB) から最初にサンプリングされます。命令の長さは 1 バイトから数バイトまでさまざまで、その後にアドレス バイト、データ バイト、ダミー バイト (ドント ケア)、場合によってはそれらの組み合わせが続く場合があります。命令はedge/CSの立ち上がりエッジで完了します。各命令のクロック相対タイミング図を図 4 ~図 37 に示します。すべての読み取り命令は、任意のクロック ビットの後で完了できます。ただし、書き込み、プログラム、または消去のすべての命令はバイト境界で完了する必要があります (8 ビット全体がクロックされた後に /CS が High に駆動される)。そうでない場合、命令は無視されます。この機能により、デバイスは不注意な書き込みからさらに保護されます。さらに、メモリがプログラムまたは消去されているとき、またはステータス レジスタが書き込まれるとき、プログラムまたは消去サイクルが完了するまで、ステータス レジスタの読み取り以外のすべての命令は無視されます。

メーカーとデバイスの識別
ここに画像の説明を挿入します

7.2.1 命令の一般的なリスト

次の表は、W25Q128 チップ上の一連の操作の命令をまとめたものです。コマンドと制御のプロセスは基本的に同じだからです。
大まかに言うと、タブを引いて選択、時計を見て、命令を送信し、データを送信し、タブを引いて選択します。

ここに画像の説明を挿入しますここに画像の説明を挿入します
ここに画像の説明を挿入します

このブログでは、デバイスのメーカー情報とID情報を読み取る手順について書いています。
他の指示も実際には同様です。
他にもいくつか選んで書きます。

7.2.2 書き込み許可と書き込み禁止

ライトイネーブルに対応するコマンドコントロールワードは06hで、
mode0を例にしてタイミング図を見てみましょう。
まず、チップ セレクト/CS が Low に引き下げられ、Mode=0、CLK は Low レベルでアイドル状態になります。つまり、0 から 1 へのジャンプが開始されます。作成した命令は 1 バイト、つまり 8 ビットを占有するため、これは CLK の 8 つの遷移に相当します。06h は実際には 2+4 に相当します。実際に送信されたデータは 00000110 です。0101 のデータは DI の位置に対応しており、それがたまたま 06h であることがわかりました。
送信後、チップセレクトはHighになって終了します。

ここに画像の説明を挿入します

次に、書き込みイネーブルと書き込みディスエーブルが実際には同じであることがわかり、チップ セレクトを Low にプルし、コマンドを入力して、チップ セレクトを High にプルします。

ここに画像の説明を挿入します

7.2.3 データの読み取り

/CS チップセレクトが Low になり、制御命令が書き込まれますが、ここには上記よりアドレスが 1 つ多くあります。データを読み取るときに、どこからデータを読み取るか、どこからデータを読み取るかを知る必要があるため、アドレス情報をコントロールワードに入れる必要があります。合計表によると、アドレスの桁数は 3 バイト、つまり 24 ビットであり、これはタイミング図のビット 8 ~ 31 (24 ビット) に相当します。コントロールワードとアドレスワードを書き込むと読み出しデータがDOポートから出力されるので、SPIに対応したHAL関数を使用して取得するだけです。
ここに画像の説明を挿入します

ここに画像の説明を挿入します

高速読み取りモードについてはどうですか?

ここに画像の説明を挿入します比較しやすいように、以下のタイミング図と上記のタイミング図をまとめました。
プロセスは同じで、チップ セレクトを Low にし、制御ワード 0Bh、アドレス ワード 24 ビットを書き込み、書き込み後にデータを読み取ります。ただし、ここにはアイドル クロックがさらにいくつかあるため、データを受信するときに数クロック サイクルを遅らせる必要があります。このクロック サイクルは、独自のバス周波数がどの程度分周されるかによって決まります。

ここに画像の説明を挿入します以下はデュアルチャネルの場合ですが、出力が1ポートから2ポートに変わる以外は同様の処理であることがわかりますが、実際の動作では受付関数を追加するだけです。
ここに画像の説明を挿入します

7.2.4 その他の指示

関数が多いので書き方もかなり異なりますが、具体的なコード実装サンプルについては私のSPI ID読み取りブログを参照してください。


8. 電気的特性

電気的特性

次の表は、主にチップの供給電圧範囲、任意のピンに印加される電圧、瞬時電圧、保管温度などを示しています。
最初のいくつかの電圧のパラメータを確認する必要があります。そうしないと、電源が高すぎてGになります。
ここに画像の説明を挿入しますこれは動作パラメータの範囲です。
VCC の最小値は 2.7V、最大値は 3.6V、
標準モードでは、デュアルチャネルモード/クアッドチャネルモードの周波数はそれぞれ 104MHz、70MHz です。

ここに画像の説明を挿入します電源投入タイミングと書き込み禁止しきい値
の表は、チップの選択、書き込みの有効化と無効化、データの読み取りおよびその他の操作をプルダウンするときに、対応するレベルが最小値、つまり送信する制御ワードに対応する電圧になることを意味します。 . どの範囲にすべきか。
ここに画像の説明を挿入します

直流電気製品の主に給電時の電圧と電流、チップの選択、データ転送時の特性を以下に示します。主に回路設計完了後、回路をデバッグする際の確認に使用されます。

ここに画像の説明を挿入します通信に関することは書きませんが、詳しくはマニュアルを参照してください。

制御データを書き込む際に注意が必要なパラメータがいくつかありますが、例えばクロックドロップがクリフドロップではなく台形ドロップになっているのですが、この台形の一辺はどれくらいの時間がかかるのでしょうか?これは、タイミング図と電気的特性の組み合わせに基づいています。これは遅延するかどうかなどに関係します。

以下のタイミング図を見てください、/WP が High にプルされ、チップ セレクトが Low にプルされますが、これをいつ High にするかには特殊性があります。8.7 の表を見ると、チップセレクトが Low になる前に少なくとも 20ns 前に書き込み保護をオフにする必要があることがわかります。チップセレクトが High に引き上げられた後、書き込み保護は 100ns 経過しても閉じたままになります。
つまり、チップセレクトが Low に引き下げられる 20ns 前に、書き込み保護シャットダウン制御が有効になるまで 20ns かかり、チップセレクトが High に引き下げられた後、書き込み保護シャットダウンは 100ns 継続します。

他のタイミング図の対応する時間も同様のビューを持ち、これはプログラミングに比較的大きな影響を与えます。場合によっては、与えた遅延が十分ではないために指示が有効にならず、その結果、指示がまったく有効にならない場合があります。

ここに画像の説明を挿入します
ここに画像の説明を挿入します


9. 梱包の詳細

ここでのパッケージ仕様
には、主にピンの間隔、穴の間隔などの情報が書き込まれます。これは描画する場合でも非常に重要です。
ここでは 8 ピン パッケージのみを掲載し、他のパッケージは掲載しません。

ここに画像の説明を挿入します

10. チップ名の意味

これは一目で理解できるので、多くの説明は必要ありません。
ここに画像の説明を挿入します

要約する

このブログを書く目的は主に SPI を学習する際に W25Q128 チップを使用することですが、一方ではその印象を深めること、もう一方ではチップのマニュアルを読む能力を高めることです。

おすすめ

転載: blog.csdn.net/Edwinwzy/article/details/132842434