AN74875 Designing with Serial I2C nvSRAM (Japanese).pdf

AN74875
シリアル I2C nvSRAM を使った設計
作成者: Shivendra Singh
関連プロジェクト: あり
関連製品ファミリ: CY14xxxxI、 CY14xxxxJ
ソフトウェア バージョン: PSoC ® Creator™ 3.0 以降
関連アプリケーション ノート: AN61546、AN43593
AN74875 は、I2C nvSRAM デバイスの設計ガイドラインと回路例を提供します。I2C nvSRAM は、ゼロサイクル遅延の書き
込み動作と無制限の SRAM 書き換え回数を備えた高性能の不揮発性シリアル メモリです。I2C nvSRAM はスレーブ I2C デ
バイスであり、システムにアクセスするために I2C のマスター コントローラが必要です。PSoC3 の関連ライブラリ コンポーネ
ントもサンプル プロジェクトとして提供されます。
目次
はじめに
はじめに ............................................................................. 1
サイプレスの nvSRAM は、SRAM セルと不揮発性メモリ セルを
単一の nvSRAM セルに統合しています。通常の動作モードでは、
全ての読み出しと書き込みは nvSRAM の SRAM 部からの読み
出 し と SRAM 部 へ の 書 き 込 み が 直 接 行 わ れ ま す 。 こ れ は
EEPROM やフラッシュなど既存の不揮発性メモリ技術に比べて、
より高速な読み書きアクセスを提供します。システムの電源喪失
が発生した場合、SRAM からのデータは、VCAP ピンに接続されて
いる小さなコンデンサに蓄積されたエネルギーを使用して、不揮発
性セルに自動的に転送されます。次の電源投入サイクル中に、不
揮発性セルからのデータは自動的に SRAM アレイにリコールされ、
利用できるようになります。VCAP ピンに接続されたコンデンサは通
常処理中に nvSRAM によって充電されます。
I2C nvSRAM のコンフィギュレーション ................................. 2
I2C バス プロトコル機能の適用性 ................................... 2
I2C nvSRAM デバイスのオプション ................................. 2
I2C nvSRAM デバイスの接続......................................... 3
2
I C のプルアップ抵抗値を決定 ............................................ 5
制御入力ピンのコンフィギュレーション ............................. 7
RTC 部固有のピン配置.................................................. 8
I2C nvSRAM の動作........................................................... 9
高速モード (Hs モード) の動作...................................... 10
I2C nvSRAM でのアドレス指定..................................... 10
I2C nvSRAM のアクセス .............................................. 12
まとめ ............................................................................... 16
付録 A (疑似コード例) ....................................................... 17
I2C の書き込み ............................................................ 17
I2C の読み出し............................................................. 18
ワールドワイドな販売と設計サポート ................................. 20
nvSRAM は、その不揮発性セルに対して 100 万回の書き換え回
数を仕様として定めています。nvSRAM での書き換え回数は、
STORE 処理を行っている間にデータが SRAM セルから不揮発
性セルに転送された場合にのみカウントされます。nvSRAM の不
揮発性ストア処理は、デバイスの電源が所定の閾値レベル
(VSWITCH) を下回った時に自動的に開始するか、またはコマンド レ
ジスタ (0xAA) にコマンドを書き込むか、あるいはハードウェア
ピン (HSB) を LOW にトグルすることで要求に応じて開始します。
nvSRAM のコマンド レジスタは制御レジスタ空間で定義されてい
ます。制御レジスタは専用の I2C スレーブ ID を介してアドレス指
定されます。nvSRAM のアドレス指定の詳細は、本アプリケーショ
ン ノートの後半に説明する I2C nvSRAM の節に記載されていま
す。
システムの電源障害が検出され、SRAM に書き込まれた新しい
データが不揮発性セルに安全にに移動する必要がある場合にの
み 、 nvSRAM は 不 揮 発 性 ス ト ア を 開 始 し ま す 。 し た が っ て 、
nvSRAM で測定される不揮発性セルの合計書き換え回数は、
SRAM 書き込みサイクルではなく、不揮発性ストア サイクルの合
計になります。
電力喪失が発生した場合に実行時の重要な情報を瞬時に保存す
ることを必要とする多くのデータ ロギング アプリケーションがあり
japan.cypress.com
文書番号: 001-92723 Rev. **
1
2
シリアル I C nvSRAM を使った設計
ます。この重要な情報には、コントローラの実行時の状態、スク
ラッチ パッド データ、パラメータ設定およびコントローラによって測
定された他の環境変数が含まれています。I2C nvSRAM はその
高速不揮発性書き込み速度によって、そのようなデータ ロギング
アプリケーションに理想的に適合することができます。nvSRAM
では、I2C マスター コントローラが数十マイクロ秒で数百バイトの
データをログできるのに対して、EEPROM やフラッシュ メモリでは
同 じ 量 の デ ー タ を 書 き 込 む に は 数 十 ミ リ 秒 が 必 要 で す 。 I2C
nvSRAM は、業界標準の 8 ピン SOIC と 16 ピン SOIC パッケー
ジで提供されています。

上記の 4 バス モードは全てのデバイス コンフィギュレーションで
提供されており (表 1 を参照) 、デバイスでの特別な設定を必要と
しません。
I2C バス プロトコル機能の適用性
表 1 は、標準的な I2C のスレーブ バス仕様のすべての必須の機
能と任意選択の機能をまとめたものです。I2C nvSRAM は、標準
的な I2C のスレーブ デバイスのすべての必須機能に対応してい
ます。
このアプリケーション ノートでは、I2C nvSRAM のコンフィギュレー
ション、異なるパッケージ オプションの回路例、I2C バスのプル
アップ抵抗の適切な値を決定する方法、nvSRAM での I2C 通信
のデータ バイト形式、メモリにアクセスするための I2C アドレス指
定機構、リール タイム クロック(RTC)、および nvSRAM の制御機
能について説明します。 I2C nvSRAM に関する他の詳細につい
ては、固有のデバイス データシートを参照してください。
表 1. I2C バス プロトコルの適用性
I2C nvSRAM のコンフィギュレーション
2
I C nvSRAM は、最高 3.4M ビット/秒のレート (I C クロック
周波数が 3.4MHz) で I2C のデータ転送をサポートし、I2C バス規
格の仕様で定義された他の全ての低周波数アクセスもサポートし
ています。



2
2
機能
PSoC 3 nvRAM I2C のライブラリ コンポーネントは関連プロ
ジェクトとして本アプリケーション ノートに添付されています。
2
高速モード (Hs) - ビット レートが最大 3.4Mbit/s
I C 仕様規格
I C nvSRAM
START 状態
必須
√
STOP 状態
必須
√
アクノリッジ
必須
√
7 ビット スレーブ アドレ
ス
10 ビット スレーブ アドレ
ス
クロック ストレッチ
必須
√
任意に選択
未提供
任意に選択
不要
一般的な呼び出しアドレ
ス
デバイス ID
任意に選択
未提供
任意に選択
未提供
ソフトウェア リセット
任意に選択
未提供
標準モード (Sm) - ビット レートが最大 100Kbit/s
I2C nvSRAM デバイスのオプション
ファースト モード (Fm) - ビット レートが最大 400Kbit/s
表 2 に示すように、サイプレスは異なるコンフィギュレーションと
パッケージ オプションで I2C nvSRAM に対応します。
ファースト モード プラス (Fm+) - ビット レートが最大 1Mbit/s
表 2. I2C nvSRAM のコンフィギュレーション
nvSRAM の
製品番号
状況
動作電圧
(標準値)
CY14CXXXJ1
NRND
2.5V
CY14BXXXJ1
NRND
3V
CY14EXXXJ1
NRND
5V
CY14CXXXJ2
NRND
2.5V
CY14BXXXJ2
NRND
3V
CY14EXXXJ2
NRND
5V
CY14CXXXJ3
NRND
2.5V
CY14BXXXJ3
NRND
3V
CY14EXXXJ3
NRND
5V
CY14CXXXI
サイプレスにお問
い合わせ
2.5V
CY14BXXXI
製造中
3V
CY14EXXXI
製造中
5V
パッケージ
WP
ピン
VCAP ピン/
AutoStore
(HSB) ピン
/HW ストア
A0 ピン
I2C バスに対す
るデバイス数
RTC
8 SOIC
有
無/無
無/無
有注 1
4 または 8 注 1
無
8 ピン
SOIC
有
有/有
無/無
無
4
無
16 ピン
SOIC
有
有/有
有
有注 1
4 または 8 注 1
無
16 ピン
SOIC
有
有/有
有
有注 1
4 または 8 注 1
有
NRND – 新規設計用にはお勧めできません。
注 1: 最下位のスレーブ アドレス ビット空間 (A0) は 1M ビットの nvSRAM デバイスで内部で使用されているため、1M ビットのメモリ容量オプションでは使用でき
ません。A0 ピンは J2 部を除き、全ての 512K ビット以下のメモリ容量オプションで利用可能です。A0 ピンがないと、I2C nvSRAM は、I2C バスに対して最大 4 個
のデバイスに制限されます。
japan.cypress.com
文書番号: 001-92723 Rev. **
2
2
シリアル I C nvSRAM を使った設計
I2C nvSRAM デバイスの接続
標準的な I2C のシングル マスター マルチ スレーブのコンフィ
2
ギュレーションは図 1 に示します。I C のマスター デバイスは、
2
I C のマスター プロトコルを生成できるマイクロコントローラま
たはプログラム可能なデバイスのいずれかであり、スレーブ
デバイスは標準的な I2C のスレーブ デバイスのいずれかです。
図 1 の例では、I2C nvSRAM は I2C のスレーブとして扱われ
ます。512K ビット以下のメモリ容量の I2C nvSRAM は、いくつ
かのパッケージ オプションで 3 つのスレーブ アドレス指定ビッ
トをサポートしているため、同じ I2C バスで最大 8 個のデバイ
スを接続できます。ユニークなスレーブ ID は、スレーブ選択ア
ドレス線 (A2、A1、A0) を 8 種類の異なる組み合わせで設定
することにより各スレーブ デバイスに割り当てられます。A0 が
使用できないパッケージ コンフィギュレーションでは、スレーブ
選択アドレス ピン A2 と A1 を設定することで同じバスを共有
する最大 4 個のスレーブ デバイスのみ接続できます。
図 1.標準的な I2C のマスター スレーブのコンフィギュレーション
Vcc
Rp
Rp
SCL
Microcontroller
SDA
Vcc
nvSRAM
A0
Vcc
nvSRAM
SCL
A0
A1
SCL
A0
A1
A2
SDA
SCL
A1
A2
#0
nvSRAM
SDA
A2
#1
SDA
#7
I2C nvSRAM デバイスの一般的なシステム レベルのコンフィギュレーションは図 2 に示します。専用 I2C バスを持たないマイクロコント
ローラの場合、汎用 I/O ポートはビット バンギングによって SCL と SDA 用に使用されます。
図 2. 一般的な I2C nvSRAM の接続
VCC
Controller or SOC
Controller
Core
Digital
Blocks
Power and
Clocks
I2C Control (Master)
Analog
Blocks
Rp
General Purpose I/O
Memory
Blocks
Rp
I2C nvSRAM
SCL
SCL
A0 /NC
SDA
SDA
A1
A2
GPIO1
WP
GPIO2
INT
GPIO3
HSB
Controlled
by GPIOs
or
Externally
hardwired
A0 is a NC pin in
1Mbit nvSRAM
devices
These are optional
connections. These pins can
be configured to their default
logic state
japan.cypress.com
文書番号: 001-92723 Rev. **
3
2
シリアル I C nvSRAM を使った設計
回路例
以下の図 (図 3~5) は、1M ビット I2C nvSRAM の詳しい回路図の接続を示します。I2C マスターと nvSRAM スレーブ間のハードウェ
ア接続は全ての小メモリ容量 (512K ビット以下) 部品で同じです。
図 3. 8 ピン SOIC の 1M ビット I2C nvSRAM のインターフェース (VCAP なし)
全ての任意選択の接続は
点線で示しています。
Vcc
0.1 µF
Vcc
10
KΩ
Vcc
10
KΩ
1*
NC/A0
FROM
MASTER
2
A1
FROM
MASTER
3
A2
CY14x101J1
8 SOIC
4
VSS
8
VCC
7
WP
6
SCL
5
SDA
Vcc
Vcc
FROM
MASTER
Rp
FROM
MASTER
Rp
FROM / TO
MASTER
A2 と A1 上のプルアップ
抵抗は、スレーブ アドレス
ビット A2 と A1 を「1」に設
定します。システムがアド
レス ピンのいずれかを「0」
に設定するよう要求する
場合は、プルアップ抵抗を
取り外して、ピンをフロー
ティング状態にします。弱
プルダウン 抵抗によ って
内部で LOW にプルされま
す。
図 4. 8 ピン SOIC の 1M ビット I2C nvSRAM のインターフェース (VCAP 付き)
Vcc
0.1 µF
Vcc
10
KΩ
FROM
MASTER
FROM
MASTER
Vcc
10
KΩ
47 uF +/-10%,
(6.3V)
VCAP
1
8
VCC
A1
2
7
WP
A2
VSS
japan.cypress.com
3
CY14x101J2
8 SOIC
4
文書番号: 001-92723 Rev. **
6
5
SCL
SDA
Vcc
Vcc
FROM
MASTER
Rp
FROM
MASTER
Rp
FROM /TO
MASTER
4
2
シリアル I C nvSRAM を使った設計
図 5. 16 ピン SOIC の 1M ビット (RTC) I2C nvSRAM のインターフェース
Vcc
0.1 µF
Vcc
VCC
NC
1
16
VRTCbat
2*
*
15 INT/SQW
XOUT
3*
14
XIN
4
10 KΩ
3V Li
Battery
47 uF +/-10%, (6.3V)
XOUT
XIN
Vcc
10
KΩ
FROM MASTER
WP
5
NC/A0
6
VRTCcap
7
VSS
8
*
CY14x101I
16 SOIC
FROM MASTER
470 mF
(12 days RTC
Backup)
TO MASTER
+
*
Vcc
VCAP
13
A2
12
SDA
11
SCL
10
A1
Vcc
Vcc
10
KΩ
FROM MASTER
Rp
Vcc
9
FROM / TO MASTER
Rp
Vcc
10
KΩ
FROM MASTER
10
KΩ
FROM MASTER
HSB
FROM/ TO MASTER
Y1 = 32.768 KHz (12.5 pF)
Pin marked with ‘*’ are specific to the RTC nvSRAM part. These pins become no
connect (NC) pin in non RTC parts.
XIN
XOUT
C1
12 pF
Pin 6 of CY14x101I (Figure 5)and Pin 1 of CY14x101J1 (Figure 3) are NC pins for 1
Mbit density. It is enabled as Slave Address bit 0 (A0) for 512 Kbit and lower density
parts.
C2
68 pF
Connect either a battery on the VRTCbat or a super capacitor on the VRTCcap pin.
I2C のプルアップ抵抗値を決定
I2C バスは SDA と SCL ライン上にデータとクロックを伝送し
ます。SDA と SCL ラインはオープンドレイン (TTL ファミリでは
オープンコレクタとしても知られている) 出力ドライバであり、即
ち、I2C マスターとスレーブ デバイスはこれらのラインを論理
LOW にのみ駆動するか、または開放したままにできます。同
じバスにある I2C デバイスがラインを LOW にプルしていない
場合、終端抵抗 (Rp) はラインの HIGH レベルを得るのに
VCC にプルします。マルチ マスターのコンフィギュレーションや
スレーブによるクロック ストレッチなどの特別な I2C の機能に
対応するためにオープンドレイン ドライバのコンフィギュレーシ
ョンが必要です。クロック ストレッチは I2C 規格の任意選択機
能であり、I2C nvSRAM ではサポートされていないため、I2C
のクロック信号は I2C nvSRAM では入力 (のみ) 信号になりま
す。
合計バス容量 (Cb) と共に終端抵抗 (Rp) は SDA と SCL の
信号のタイミング動作に影響を与えます。I2C デバイスはオー
プンドレインのドライバでラインをプルダウンしている間に、プ
japan.cypress.com
ルアップ抵抗 Rp は指定された時間内に信号を HIGH レベル
に戻す役割があります。プルアップ抵抗 Rp の値は、動作電圧
(VCC)、デバイスの出力 LOW 論理レベル (VOL) 仕様;即ち吸
い込み電流 (IOL) 仕様、バスの合計通信容量 (Cb) および立
ち上がり時間 (tR) 仕様のようなタイミング パラメータなど、複
数の電気的パラメータに依存します。
次の節では、特定のシステム コンフィギュレーションで I2C バ
スのプル抵抗の値を決定する方法について説明します。
Rp (Max) の決定
RC 時定数の計算のために、CMOS 論理レベルの入力閾値
を VIH = 0.7VCC (Min) および VIL = 0.3VCC (Max) と考えてみ
ます。
V(t) = VCC (1 − e−t / RC)、ここで「t」は充電開始時からの時間
であり、RC は時定数です。
V (t1) = 0.3 × VCC = VCC (1 − e−t1 / RC) のとき:
文書番号: 001-92723 Rev. **
𝐭𝟏 = 𝟎. 𝟑𝟓𝟔𝟔𝟕𝟒𝟗 × 𝐑𝐂
式1
5
2
シリアル I C nvSRAM を使った設計
𝐑𝐩 𝐌𝐢𝐧 ≤ 𝐑𝐩 ≤ 𝐑𝐩(𝐌𝐚𝐱) 式 6
V (t2) = 0.7 × VCC = VCC (1 − e−t2 / RC) のとき:
𝐭𝟐 = 𝟏. 𝟐𝟎𝟑𝟗𝟕𝟐𝟗 × 𝐑𝐂
式2
合計の立ち上がり時間 (T) は、バス容量の電圧レベルを VIL
から VIH に充電するのに要する時間です:
T = t2 − t1
= 1.2039729 × RC - 0.3566749 × RC
= 𝟎. 𝟖𝟒𝟕𝟑 × 𝐑𝐂
式3
式 3 は、I2C ラインに接続するためにプルアップ抵抗値の上限
を決定するために使用されます。表 3 は、全てのタイミング
モードに対してバス容量の関数として最大 Rp を示します。各
モードに対して Rp (max) は、最小立ち上がり時間 (tR) と推定
されるバス容量 (Cb) の関数です:
𝐭𝐫
𝐑𝐩 (𝐌𝐚𝐱) = (𝟎.𝟖𝟒𝟕𝟑∗𝐂𝐛) 式 4
バス容量 (Cb) は、配線部、接続部、端子部の合計容量です。
低消費電力の設計では、電流消費量を制限するために範囲
の上限に向かう値を使って選ぶ必要があります。
表 3 は、特定のバス負荷条件と動作電圧に対応する Rp の値
(Min, Max) の一覧を提供しています。表 3 に表示していない
値は、Rp (Max) と Rp (Min) を計算するための式 4 と式 5 か
ら得られます。
表 3 の網掛け領域は、特定の動作電圧の条件下でいくつか
のバス負荷 (Cb) に対して Rp (Min) が Rp (Max) を超えてい
ることを示します。Rp (Min) が Rp (Max) を超えることができ
ないため、これは I2C バスに使用される最大の容量負荷 (Cb)
を制限します。
例えば: 3V の部品が最小 VCC 電源 (VCC = 2.7V) で動作する
ように設定された場合、システムが以下のバス モードで動作
する時、SCL と SDA ライン上に以下に示す負荷 (pF 単位) を
超えてはいけません:
Sm = Cb ≤ 550 pF; 0.77 kΩ ≤ Rp ≤ 2.15 kΩ
Rp (Min) の決定
Fm = Cb ≤ 450 pF; 0.77 kΩ ≤ Rp ≤ 0.79 kΩ
動作電圧と吸い込み電流 (IOL) はプルアップ抵抗の最小値、
Rp (min) を 制 限 し ま す 。 VCC と IOL の 関 数 で あ る
Rp (Min) は式 5 を使って計算されます。
Fm+ = Cb ≤ 150 pF; 0.77 kΩ ≤ Rp ≤ 0.94 kΩ
𝐑𝐩 (𝐦𝐢𝐧) =
𝐕𝐜𝐜−𝐕𝐎𝐋 (𝐦𝐚𝐱)
𝐈𝐎𝐋
式5
Rp の値は、仕様の最小値と最大値の範囲内で選択する必要
があります。
Hs = Cb ≤ 100 pF; 0.77 kΩ ≤ Rp ≤0.94 kΩ
同様に、他の動作電圧と動作周波数に対応した最大のバス負
荷 (Cb) と I2C のプルアップ抵抗 (Rp) の値が表 3 と図 6 から
得られます。
表 3. 異なるバス負荷と動作電圧に対応する Rp (Min, Max)
Cb (pf)
10
20
30
40
50
60
70
80
90
100
125
150
200
250
300
350
400
450
500
550
Rp(Min) (kΩ)
Rp(Max) (kΩ)
2.45V
100 KHz 400 KHz 1 MHz 3.4 MHz
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
0.68
118.02 35.41 14.16
59.01 17.70 7.08
39.34 11.80 4.72
29.51 8.85 3.54
23.60 7.08 2.83
19.67 5.90 2.36
16.86 5.06 2.02
14.75 4.43 1.77
13.11 3.93 1.57
11.80 3.54 1.42
9.44
2.83 1.13
7.87
2.36 0.94
5.90
1.77 0.71
4.72
1.42 0.57
3.93
1.18 0.47
3.37
1.01 0.40
2.95
0.89 0.35
2.62
0.79 0.31
2.36
0.71 0.28
2.15
0.64 0.26
japan.cypress.com
9.44
4.72
3.15
2.36
1.89
1.57
1.35
1.18
1.05
0.94
0.76
0.63
0.47
0.38
0.31
0.27
0.24
0.21
0.19
0.17
Cb (pf)
10
20
30
40
50
60
70
80
90
100
125
150
200
250
300
350
400
450
500
550
Rp(Min) (kΩ)
Rp(Max) (kΩ)
2.7V
100 KHz 400 KHz 1 MHz 3.4 MHz
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
0.77
118.02 35.41 14.16
59.01 17.70 7.08
39.34 11.80 4.72
29.51 8.85 3.54
23.60 7.08 2.83
19.67 5.90 2.36
16.86 5.06 2.02
14.75 4.43 1.77
13.11 3.93 1.57
11.80 3.54 1.42
9.44
2.83 1.13
7.87
2.36 0.94
5.90
1.77 0.71
4.72
1.42 0.57
3.93
1.18 0.47
3.37
1.01 0.40
2.95
0.89 0.35
2.62
0.79 0.31
2.36
0.71 0.28
2.15
0.64 0.26
文書番号: 001-92723 Rev. **
9.44
4.72
3.15
2.36
1.89
1.57
1.35
1.18
1.05
0.94
0.76
0.63
0.47
0.38
0.31
0.27
0.24
0.21
0.19
0.17
Cb (pf)
10
20
30
40
50
60
70
80
90
100
125
150
200
250
300
350
400
450
500
550
Rp(Min) (kΩ)
Rp(Max) (kΩ)
4.5V
100 KHz 400 KHz 1 MHz 3.4 MHz
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
1.37
118.02 35.41 14.16
59.01 17.70 7.08
39.34 11.80 4.72
29.51 8.85 3.54
23.60 7.08 2.83
19.67 5.90 2.36
16.86 5.06 2.02
14.75 4.43 1.77
13.11 3.93 1.57
11.80 3.54 1.42
9.44
2.83 1.13
7.87
2.36 0.94
5.90
1.77 0.71
4.72
1.42 0.57
3.93
1.18 0.47
3.37
1.01 0.40
2.95
0.89 0.35
2.62
0.79 0.31
2.36
0.71 0.28
2.15
0.64 0.26
9.44
4.72
3.15
2.36
1.89
1.57
1.35
1.18
1.05
0.94
0.76
0.63
0.47
0.38
0.31
0.27
0.24
0.21
0.19
0.17
6
2
シリアル I C nvSRAM を使った設計
図 6.異なるバス負荷と動作電圧に対応する Rp (Min, Max)
3.4 MHz
1 MHz
400 KHz
100 KHz
Operating Voltage (Vcc), V
Bus Load (Cb), pF
制御入力ピンのコンフィギュレーション
I2C nvSRAM は入力ピンである数多くの制御ピンを備えてい
て、それらのピンはデバイスの正常な動作のために固定され
た論理状態 (HIGH または LOW) に適切にバイアスされる必
要があります。制御入力ピンが適切な論理レベル (HIGH また
は LOW のいずれか) にバイアスされずにフローティング状態
になっていると、フローティング ピンがデバイス動作をランダム
にするいくつかの中間準安定状態に定まることがあります。そ
のため、内部プルアップまたはプルダウン オプションがない未
使用の入力ピンは、常にプルアップまたはプルダウン抵抗を
使用して外部的に適切な論理レベルに接続する必要がありま
す。 1 kΩ~10 kΩ の抵抗がこの目的に使用されます。
WP ピン:
WP ピンはアクティブ HIGH ピンであり、書き込み処理からメモ
リ全体と全てのレジスタを保護します。このピンが HIGH にな
ると、全てのメモリとレジスタ書き込みは禁止され、アドレス カ
ウンタはインクリメントされません。I2C nvSRAM では、このピ
ンに内部プルダウン抵抗を取り付けています。したがって、
書き込み保護機能が使われない場合、このピンはフローティン
グ状態 (未接続) にできます。このピンが外部制御用にコント
ローラ I/O に接続される場合は、外部プルアップ抵抗が推奨さ
れて、このライン上のノイズに起因する望ましくないトリガを防
ぎます。1 kΩ~10 kΩ の抵抗がこの目的に使用されます。
A2、A1、A0 ピン:
これらはスレーブ アドレス ピンであり、マルチ スレーブのコン
フィギュレーションに際し異なるスレーブ デバイスに対応した
異なるスレーブ アドレスを設定するために使用されます。これ
らのピンは内部的に LOW にプルされるため、使用されない場
合はフローティング(未接続)のままにできます。論理 HIGH 状
態に設定するために、これらのピンは外部プルアップ抵抗に接
japan.cypress.com
続するか、または直接 VCC 電源に接続する必要があります。
1kΩ~10kΩ の抵抗がプルアップ抵抗として使用できます。シ
ステムがスレーブ アドレスをダイナミックに変更するよう要求
する幾つかのコンフィギュレーションでは、これらのアドレス ピ
ンは、実行中にスレーブ選択アドレス ピン (A2、A1、A0) を設
定するためにコントローラ I/O に接続し、デバイスにアクセスす
る必要があります。
HSB ピン:
HSBピンは nvSRAM の双方向ピンです。出力ピンとして動作
する場合、このピンは通常処理中は nvSRAM のレディまたは
ビジー状態にします。デバイスの電源投入時または不揮発性
ストア サイクルが進行中には、HSBピンはそのビジー状態を
表す示すデバイスによって LOW にプルされます。HSBピンは
HIGH 状態になると、デバイスが通常の読み書き処理に応じ
たレディ状態にあることを示します。入力ピンとして動作する場
合、HSBピンはコントローラで LOW にプルすることで外部で
ハードウェア STORE を開始するのに使用されます。このピン
は任意の GPIO に接続されていない場合、フローティングのま
まにすることができます。I2C nvSRAM は、通常動作中にHSB
ピンを HIGH に保つために、このピンに内部の弱プルアップ抵
抗を用意しています。このピンが外部制御用にコントローラ I/O
に接続される場合は、外部プルアップ抵抗が推奨されて、この
ライン上のノイズに起因する望ましくないトリガを防ぎます。
1 kΩ~10 kΩ の抵抗がこの目的に使用されます。
VCAP:
VCAP ピンに接続されたコンデンサは、電力喪失時にデータを
SRAM から不揮発性素子に転送するために nvSRAM に電源
を供給します。通常処理中に、デバイスは VCC から電流を引き
込んで、VCAP ピンに接続されたコンデンサを充電します。VCAP
での蓄積された電荷は、nvSRAM デバイスが一回の STORE
文書番号: 001-92723 Rev. **
7
2
シリアル I C nvSRAM を使った設計
処 理 を 実 行 す る た め に 使 用 さ れ ま す 。 VCC ピ ン の 電 圧 が
VSWITCH を下回ると、デバイスは自動的に VCAP ピンを VCC か
ら切り離し、STORE 処理は VCAP の蓄積電荷を使用して開始
されます。
正常な AutoStore 処理のために、VCAP ピンに適切な値のコン
デンサを接続する必要があります。選択したコンデンサの値は、
デバイスのデータシートに規定された範囲内である必要があり
ます。コンデンサの不適切な選択はデバイスの誤動作につな
がることがあります。nvSRAM 製品用のコンデンサ選択のガ
イドラインの詳細については、アプリケーション ノート
AN43593 - Storage Capacitor Options for Cypress
nvSRAM を参照してください。
RTC 部固有のピン配置
RTC 機能はパッケージに以下の追加ピンを必要とします。正
常な RTC 機能のために、これらのピンは適切に設定される必
要があります。
INT ピン: これは RTC 部の出力ピンです。RTC nvSRAM は、
アラーム、ウォッチドッグタイマ、校正クロック出力、および方形
波ジェネレータなど様々な機能を提供しています。INT 出力は、
nvSRAM 内で定義された RTC レジスタの設定とそれらの優
先順位に応じて、機能面の状態/出力を引き出すために多重
化されています。INT ピンは設定可能なドライバ出力です。
INT ピンの出力モードは、I2C スレーブ デバイス内の割り込み
状態/制御レジスタ (0x06) の「H/L」ビットをセットすることで
設定されます。H/L ビットを「1」にセットすると、INT 出力はアク
ティブ HIGH として設定され、ドライブ モードがプッシュ プルに
なります。H/L ビットを「0」にセットすると、INT 出力ドライブは
アクティブ LOW のオープン ドレイン出力として設定されます。
したがって、デバイスによって駆動されていない場合、INT 出
力を論理 HIGH 状態に駆動するための外部プルアップ抵抗が
必要です。アクティブ LOW モード (H/L ビットが「0」にクリアさ
れる) で INT を使用する場合、1kΩ~10kΩ の外部プルアップ
抵抗を使用して INT ピンを VCC にプルする必要があります。
「0」にセットされた H/L
H/L =0
P/L=0
Pulled HIGH
with External
Pull up
Hi-Z When no
pull up
Interrupt Occurs
200 ms
H/L =0
P/L=1
VRTCbat と VRTCcap ピン: システムの電源供給 (VCC) がダウンし
ている場合、これらのピンは、RTC 回路網にバックアップ電源
を供給するのに使用されて発振器のクロック実行を持続させ
ます。電源喪失中の RTC 発振をバックアップするためには、
VRTCbat を再充電できないバッテリに接続するか、VRTCcap ピン
のスーパーキャパシタに接続するかのどちらかです。使用され
ない場合、これらのピンはフローティングのままにする必要が
あります。
注意 VRTCcap ピンは通常の動作中にそれに接続されている
スーパー キャパシタを充電するために使用されるため、このピ
ンを直接 VSS に短絡することはできません。そのため、VRTCcap
ピンを直接グラウンド (VSS) に接続すると、nvSRAM から過剰
な電流を引き込むことがあります。
nvSRAM RTC の設計ガイドラインおよびベスト プラクティスに
ついては、アプリケーション ノート、AN61546 - Non Volatile
Static Random Access Memory (nvSRAM) Real Time
Clock (RTC) Design Guidelines and Best Practice を参照し
てください。
異なる H/L と P/L 設定に対応した INT ピンの動作: H/L ビット
の設定は、割り込みが発生した時に INT ピン出力の状態が
HIGH であるか、LOW であるかを決定します。同様に、P/L 設
定 は INT ピ ン の パ ル ス ま た は レ ベ ル を 決 定 し ま す 。 I2C
nvSRAM の割り込みピン (INT) の動作は図 7 に示します。
図 7. INT ピンの動作 (RTC)
「1」にセットされた H/L
H/L =1
P/L=0
Interrupt Occurs
200 ms
H/L =1
P/L=1
japan.cypress.com
文書番号: 001-92723 Rev. **
8
2
シリアル I C nvSRAM を使った設計
I2C nvSRAM の動作
み書きに対応しています。各バイトは、ACK 応答 (A) ビットの
後に続く必要があります。データは各バイト転送で最上位ビッ
ト (MSb) を最初に、最下位ビット (LSb) を最後に転送します。
図 8 は I2C nvSRAM のデータ転送を示します。
I2C nvSRAM のアクセスは常にバイト形式であり、SDA ライン
上の全てのバイトは 8 ビット長でなければなりません。転送ご
とに伝送できるバイト数は無制限のため、バースト モードの読
図 8.I2C nvSRAM のデータ転送
I2C nvSRAM のデータ転送は図 9 図 9 に示されている形式に
従います。START 状態(S)の後、スレーブ アドレスが送信さ
れます。このアドレスはデータ方向ビット(R/W)である 8 番目の
ビット後に続く 7 ビット長です。ビット (R/W)が 「0」にセットされ
ると、転送 (WRITE) を示し、ビット (R/W) が「1」にセットされる
と、データのリクエスト (READ) を示します。データ転送は、常
にマスターで生成された STOP 状態(P) で終了します。ただし、
マスターがバスでの通信をまだ要求している場合は、反復の
START 状態(Sr) を生成し、スレーブを再びアドレスするか、ま
たは STOP 状態を生成せずに別のスレーブ デバイスで通信
します。高速モードを除き、全ての標準的な I2C モードは図 9
に示すデータ形式に従います。
図 9. I2C のデータ バイト形式 (Sm、Fm、Fm+)
S
S
7 Bits Slave
Address
R/W
7 Bits Slave Address
A
DATA
A
A
DATA
R/W
A
DATA DATA
A/A
P
A/A
P
A = Acknowledged
(SDA LOW
ACK clock)
A = Acknowledged
(SDA during
LOW during
ACK clock)
= From I2C
Master
I2C Slave
= From
I2C to
Master
to I2C Slave
A = NotAAcknowledged
(NACK)
(SDA HIGH
in ACK
= Not Acknowledged
(NACK)
(SDA HIGH
in clock)
ACK clock)
S/P = START
Condition
/STOP/STOP
Condition
= From
I2CtoSlave
to I2C Master S/P = START
= From I2C
Slave
I2C Master
図 10. データ バイト形式 (Sm、Fm、Fm+) – 書き込み処理
S
7 Bits Slave Address
0
A
DATA
A
DATA
A
P
A/A
P
図 11. データ バイト形式 (Sm、Fm、Fm+) – 読み出し処理
S
japan.cypress.com
7 Bits Slave Address
1
A
DATA
A
文書番号: 001-92723 Rev. **
DATA
9
2
シリアル I C nvSRAM を使った設計
後に続く 7 ビットのスレーブ アドレスを転送します。 ビット
(R/W )が 「0」にセットされると、転送 (WRITE) を示し、ビット
(R/W) が「1」にセットされると、データのリクエスト (READ) を
示します。データ転送は、常にマスターで生成された STOP 状
態 (P) で終了します。ただし、マスターが HS モードのバスで
通信をまだ要求している場合は、反復の START 状態(Sr) を
生成し、STOP 状態を生成せずにスレーブをアドレスすること
ができます。
高速モード (Hs モード) の動作
Hs モードでは、nvSRAM は最高 3.4Mbit/s までのビットレート
でデータを転送することができます。START 状態(S) が生成さ
れ た 後 、 8 ビ ッ ト の マ ス タ ー コ ー ド (0000 1XXXb) は 、
nvSRAM が NACK (A)を送信しますが、全ての後続動作に対
応した HS モードのデータ インターフェースを配置するために
送信されます。デバイスは、STOP (P) 状態に従った後にのみ
HS モードを終了します。スレーブを HS モードに配置した後、
I2C マスターは、データ方向ビット (R/W) である 8 番目のビット
図 12. I2C のデータ バイト形式 (Hs)
SM/ FM/ Fm+ Mode
S
Hs Mode
Master Code (0000 1XXX)
A/A
Sr
7 Bits Slave Address
R/W
A
SM/ FM/ Fm+ Mode
DATA
A
DATA
A/A
P
A = Acknowledged (SDA LOW during ACK clock)
= From I2C Master to I2C Slave
Hs Mode Continues
A = Not Acknowledged (NACK) (SDA HIGH in ACK clock)
Sr
S/P = START /STOP Condition
= From I2C Slave to I2C Master
7 Bits Slave Address
Sr - Repeated Start
図 13. I2C のデータ バイト形式 (Hs) – 書き込み処理
SM/ FM/ Fm+ Mode
S
Hs Mode
Master Code (0000 1XXX)
A/A
Sr
7 Bits Slave Address
0
A
DATA
A
DATA
A
P
A
DATA
A/A
P
図 14. I2C のデータ バイト形式 (Hs) – 読み出し処理
SM/ FM/ Fm+ Mode
S
Hs Mode
Master Code (0000 1XXX)
A/A
S
7 Bits Slave Address
1
A
DATA
図 15 は、I2C バスを介して転送されているアドレス ビット例を
示します。
I2C nvSRAM でのアドレス指定
I2C マスター コントローラは、バイト単位で I2C nvSRAM のス
レーブと通信し、バイト転送の間は常に最初のクロック サイク
ルで最上位ビットを、8 番目のクロック サイクルで最下位ビット
を転送します。これは、コマンド、アドレスおよびデータ バイトを
含む全ての I2C 通信にとって良い状況です。同様に、I2C
nvSRAM が読み出し処理中にデータ バイトを転送する場合は、
常に最上位ビットを最初に、最下位ビットを最後に転送します。
7 ビット長のスレーブ アドレスは、頭文字「SA [16:0]」を使用す
るメモリ アドレス ビットと区別するために、頭文字「SA [6:0]」で
表現します。このため、これ以降の全ての節で、スレーブ アド
レス ビットを SA [x]として表示します。
図 15. I2C nvSRAM でのアドレス ビット転送
7 Bits Slave Address
S
4 Bits Slave Device Address
(SA [6:3])
japan.cypress.com
SA2
SA1
Address Byte2 (MSB)
SA0 /
A16
0
A
A15
A14
A13
A12
A11
A10
Address Byte1 (LSB)
A9
文書番号: 001-92723 Rev. **
A8
A
A7
A6
A5
A4
A3
A2
A1
A0
A
10
2
シリアル I C nvSRAM を使った設計
スレーブ デバイス アドレス
I2C の nvSRAM スレーブは、7 ビットのスレーブ アドレス指定
SA [6:0] に対応しています。その内最上位の 4 アドレス ビット
SA [6:3] がデバイス内で固定され、ユーザーは変更できませ
ん。残りの最下位 3 アドレス ビット SA [2:0] は、デバイスに用
意されている外部アドレス ピン (A2、A1、A0) を介して設定可
能です。I2C nvSRAM は、単一のデバイス内にデータ メモリ、
RTC 機能およびその他の制御として 3 つの異なる機能を備
えています。I2C nvSRAM は、I2C マスターがこれらの機能に
アクセスできるように、スレーブ アドレス SA [6:3] の上位
4 ビット (表 4 を参照) を固定することにより、3 つのユニーク
なスレーブ ID を割り当てています。
表 4.スレーブ デバイス アドレス
バス上で他の任意のスレーブ ID が、上位 4 スレーブ アドレス ビット SA [6:3] に一致している場合、ユーザーは、ユニークなスレーブ
ID が同じシステム バスを共有する各スレーブ デバイスに割り当てられるように、下位スレーブ アドレス ビット SA [2:0]を別々に設定
する必要があります。
図 16. スレーブ デバイス アドレス選択
7 Bits Slave Address
7 Bits Slave Address
S
1
0
1
Slave Device
Address (Memory)
0
SA2
SA1
SA0 /
A16/X
R/W
S
1
1
0
1
SA2
7 Bits Slave Address
SA1
SA0 /
X
Slave Device
Address (RTC)
R/W
S
0
0
1
1
SA2
SA1
SA0 /
X
R/W
Slave Device
Address (Controls)
表 5. SRAM 読み書き用の I2C nvSRAM のアドレス指定
注: 2 最上位アドレス バイト (MSB) の未使用ビットは「ドントケア」ビットであり、nvSRAM によって無視されます。ただし、ファームウェア内で未使用のアドレス ビッ
ト位置を「0」にセットするのは良い方法です。このアプローチにより、将来のさらなる大容量オプションに移行する際に、ファームウェアを更新するのは容易になり
ます。
注: 3 いくつかの nvSRAM デバイスのコンフィギュレーションでは、パッケージ上にピンが足りないか、または A0 アドレス ビットが内部で使用されているかのどち
らかに起因して、2 個のアドレス ピン (A2 と A1) のみが用意されています。1M ビットのメモリ容量を持つ I2C nvSRAM は、その全体のメモリ位置をマッピングす
るために、17 アドレス ビット A [16:0]を必要とします。したがって、スレーブ アドレス空間 SA0 は、これらの部品で A16 アドレス ビットを転送するために使用され、
2 ビット SA [2:1]のみがスレーブ アドレスを外部で設定することができます。ピン不足のパッケージ故に A0 が利用できない低メモリ容量のデバイス (512K ビット
以下) では、このビットは内部でドントケア (「X」) になります。スレーブ アドレス ビット A0 がドントケアである I2C のスレーブ デバイスは、I2C のマスターによって送
信された 2 つのスレーブ アドレス (A0=0 と A0=1) に対応して ACK 応答をします。
japan.cypress.com
文書番号: 001-92723 Rev. **
11
2
シリアル I C nvSRAM を使った設計
I2C nvSRAM のアクセス
する簡略化したフロー図を示します。I2C nvSRAM の各機能と
それらの実装の詳細については、デバイスのデータシートを参
照してください。
標準的な機能 (メモリの読み書き) と特別な機能 (NV 処理、デ
2
バイス ID、シリアル番号) を含めた全ての I C nvSRAM 機能
2
は、標準的な I C の読み書きプロトコルを介してアクセスされ
ます。図 17~図 21 は、I2C nvSRAM の読み書き処理を説明
図 17. I2C nvSRAM のデータ メモリ書き込みの簡略フロー図
Device Idle
Start (S) /Repeat Start (Sr)
Slave Address
1010 SA[2:0] (R/W =0)
No
Did Slave
Address Match?
Yes
Send ACK
Receive Addr bytes
Send ACK
Bus status
P or Sr?
No
Are Two Bytes
Addr Rcvd?
No
Yes
Internal address counter is
set to the new address.
Yes
Bus status
P or Sr?
No
Yes
Send NACK
Is it protected
memory?
No
Once address counter reaches to
the last addressable location of
data memory, the auto increment
will roll over to the start address
0x0000 and start overwriting
previously written data
Receive data byte. Auto
increment to next address
Send ACK
Bus status
P or Sr?
No
Yes
Device Idle
japan.cypress.com
文書番号: 001-92723 Rev. **
12
2
シリアル I C nvSRAM を使った設計
図 18. I2C nvSRAM RTC と制御レジスタ書き込みの簡略フロー図
Device Idle
Device Idle
Start (S) /
Repeated Start (Sr)
Start (S) /
Repeated Start (Sr)
Slave Address
0011 SA[2:0] (R/W =0)
Slave Address
1101 SA[2:0] (R/W =0)
No
Did Slave
Address Match?
No
Did Slave
Address Match?
Yes
Send ACK
Yes
Send ACK
Receive Addr bytes
Receive Addr bytes
Yes
Yes
Send NACK
Send NACK
Is Add Out
of Bound?
No
Send ACK
No
Send ACK
Bus status
P or Sr?
No
Bus status
P or Sr?
Internal address counter is
set to the new Cntrl Reg Addr.
No
Internal address counter is
set to the new RTC Reg Addr.
Yes
Is Add Out
of Bound?
Yes
Once the address counter reaches
to the last writable location in
control register, the auto increment
will go to the next addressable
location and stays there. Device will
return a NACK for all Subsequent
bytes sent by master for write.
Bus status
P or Sr?
No
Bus status
P or Sr?
No
No
Once address counter reaches to
the last addressable location of
RTC Regs, the auto increment will
roll over to the start address 0x00
and start overwriting previously
written data
Receive data byte. Auto
increment to next address
Send ACK
Bus status
P or Sr?
No
Is Current address
writable?
Yes
Receive data byte
Receive data byte. Auto
increment to next address
Send ACK
Send
NACK
Bus status
P or Sr?
Yes
Yes
Device Idle
Device Idle
japan.cypress.com
文書番号: 001-92723 Rev. **
No
13
2
シリアル I C nvSRAM を使った設計
図 19. I2C nvSRAM データ メモリの現時点でのアドレス読み出しの簡略フロー図
Device is Idle
Start (S) /
Repeated Start (Sr)
Slave Address
1010 SA[2:0] (R/W =1)
No
Did Slave
Address Match?
Yes
Send ACK
Yes
Once address counter reaches to
the last addressable location of the
data memory, the auto increment
will roll over to the start address
0x0000 and start reading data
from there onwards.
Bus status
P or Sr?
No
Send Data Byte from Current Addr.
Auto Increment to Next Addr.
No
ACK Rcvd
from Master?
Yes
No
Bus Status
P or Sr?
Yes
Device Idle
japan.cypress.com
文書番号: 001-92723 Rev. **
14
2
シリアル I C nvSRAM を使った設計
図 20. I2C nvSRAM RTC と制御レジスタの現時点のアドレス読み出しの簡略フロー図
Device is Idle
Device is Idle
Start (S) /
Repeated Start (Sr)
Start (S) /
Repeated Start (Sr)
Control
Function
RTC
Function
Slave Address
011 SA[2:0] (R/W =1)
Slave Address
1101 SA[2:0] (R/W =1)
Did Slave
Address Match?
Yes
Send ACK
Yes
Send ACK
Yes
Yes
No
Did Slave
Address Match?
No
Bus status
P or Sr?
No
Send Data Byte from Current Addr.
Auto Increment to Next Addr.
Once address counter reaches to
the last addressable location of te
RTC registers, the auto increment
will roll over to the start address
0x00 and start sending data out
from there onwards.
Once the address counter reaches
to the last readable address
location in control register, the
auto increment will go to the start
address 0x00 and start sending
data out from there onwards.
Bus status
P or Sr?
No
Send Data Byte from Current Addr.
Auto Increment to Next Addr.
No
No
No
No
ACK Rcvd
from Master?
ACK Rcvd
from Master?
Yes
Yes
No
No
Bus Status
P or Sr?
Bus Status
P or Sr?
Yes
Yes
Device Idle
Device Idle
図 19 と図 20 に示したフローチャートは、データ メモリ、RTC レジスタおよび制御レジスタから読み出された現時点の位置です。現時
点の位置は、前の読み書き処理を終了する際のアドレス カウンタのアドレスです。ユーザーは別の位置から読み出しをしようとする場
合、図 21 に示すように、書き込みサイクルを実行することでアドレス カウンタを新しいアドレスに設定する必要があります。
japan.cypress.com
文書番号: 001-92723 Rev. **
15
2
シリアル I C nvSRAM を使った設計
図 21. I2C nvSRAM データ メモリ、RTC、および制御レジスタのランダム アドレス読み出しの簡略フロー図
Set Current Address for Data
Memory
Set Current Address for RTC
Registers
Set Current Address for Control
Registers
Device Idle
Device Idle
Device Idle
Start (S) /
Repeated Start (Sr)
Start (S) /
Repeated Start (Sr)
Start (S) /
Repeated Start (Sr)
Slave Address
1101 SA[2:0] (R/W =0)
Slave Address
0011 SA[2:0] (R/W =0)
Slave Address
1010 SA[2:0] (R/W =0)
No
No
Did Slave
Address Match?
Did Slave
Address Match?
Yes
Send ACK
Yes
Send ACK
Yes
Send ACK
Receive Addr bytes
Receive Addr bytes
Receive Addr bytes
No
Did Slave
Address Match?
Send ACK
Bus status
P or Sr?
Is Add Out
of Bound?
No
Is Add Out
of Bound?
Send NACK
No
Send ACK
No
Are Two Bytes
Addr Rcvd?
Yes
Yes
Send NACK
No
Internal address counter is
set to the new RTC Reg Addr.
Internal address counter is
set to the new Cntrl Reg Addr.
Initiate a Read by S or Sr
Initiate a Read by S or Sr
Yes
Internal address counter is
set to the new address.
Initiate a Read by S or Sr
けを借りてアプリケーションで I2C nvSRAM を設定する方法を
示しています。
まとめ
サイプレスの I2C nvSRAM は、他の全ての不揮発性 I2C メモ
リ製品と同様に、標準的な I2C のアクセス プロトコルをサポー
トしています。これにより、nvSRAM と I2C マスター コントロー
ラとの互換性が高まり、システム開発サイクル時間を低減しま
す。このアプリケーション ノートは、回路図とタイミング図の助
japan.cypress.com
文書番号: 001-92723 Rev. **
16
2
シリアル I C nvSRAM を使った設計
付録 A (疑似コード例)
I2C の書き込み
/*Sm, Fm, Fm+ Mode*/
void I2C_Write_nvSRAM(BYTE slave_Addr,BYTE Addr_MSB, BYTE Addr_LSB, BYTE *Data, int
n_Byte)
{
int i=0;
BYTE txBuffer[2];
txBuffer[0]=Addr_MSB; //Copy I2C slave address in local buffer
txBuffer[1]=Addr_LSB;
I2CHW_ClrWrStatus(); //Clear the status register of I2C master
I2CHW_fSendStart(slave_Addr, I2CHW_WRITE); //Returns a non zero if slave device ACKs
while(!I2CHW_bReadI2CStatus() & I2CHW_WR_COMPLETE); //Wait till all bits are
transmitted
for (i=0;i<n_Byte; i++){
I2CHW_fWrite( Data[i]); //Master transmit data bytes
while (!I2CHW_bReadI2CStatus() & I2CHW_WR_COMPLETE);
}
I2CHW_SendStop (); // Master sends S/Sr to terminate write
\\}
/*Hs Mode*/
void I2C_Write_HSMODE_nvSRAM(BYTE slave_Addr,BYTE Addr_MSB, BYTE Addr_LSB, BYTE *Data,
int n_Byte)
\\{
int i=0;
BYTE txBuffer[2];
txBuffer[0]=Addr_MSB;
txBuffer[1]=Addr_LSB; //Copy I2C slave address in local buffer
I2CHW_ClrWrStatus(); //Clear the status register of I2C master
//0x00001xxx is a HS mode address hence. (Read/Write also don’t care).HS mode command
byte can be set anything from 0x08 to 0x0F
I2CHW_fSendStart( 0x04, I2CHW_WRITE); //No ACK from any slave.
while(!I2CHW_bReadI2CStatus() & I2CHW_WR_COMPLETE);//Wait till all bits are
transmitted
I2CHW_fSendRepeatStart(slave_Addr, I2CHW_WRITE); //Send repeat start with slave ID
to access a slave in HS mode.
while(!I2CHW_bReadI2CStatus() & I2CHW_WR_COMPLETE);
for (i=0;i<n_Byte; i++){
I2CHW_fWrite( Data[i]);
while(!I2CHW_bReadI2CStatus() & I2CHW_WR_COMPLETE);
\\}
I2CHW_SendStop (); //Master sends S/Sr to terminate write
\\}
japan.cypress.com
文書番号: 001-92723 Rev. **
17
2
シリアル I C nvSRAM を使った設計
I2C の読み出し
/*Sm, Fm, Fm+ Mode*/
void I2C_Read_nvSRAM(BYTE slave_Addr, int n_Byte)
\\{
int i=0;
BYTE dataRD;
I2CHW_ClrWrStatus();//Clear the status register of I2C master
I2CHW_fSendStart( slave_Addr, I2CHW_READ);
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE);
for(i=0;i<n_Byte; i++) {
if(i==(n_Byte-1)) {
dataRD =I2CHW_bRead (I2CHW_NAKslave); //Master sends NACK for the last read to terminate
the Read
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE); //Wait till all bits Rcvd
\\}
else {
dataRD =I2CHW_bRead (I2CHW_ACKslave);
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE);
\\}
\\}
I2CHW_SendStop (); //Master sends S/Sr to terminate Read
\\}
/*Hs Mode*/
void I2C_Read_HSMODE_nvSRAM(BYTE slave_Addr, int n_Byte)
\\{
int i=0;
BYTE dataRD;
I2CHW_ClrWrStatus();//Clear the status register of I2C master
I2CHW_fSendStart( 0x04, I2CHW_READ); //0x0000 1xxx is a HS mode address hence slave addr
can be 0x0X. No ACK from any slave.
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE);//Wait till all bits received
I2CHW_fSendRepeatStart( slave_Addr, I2CHW_READ); //Send repeat start with slave ID to
access a slave in the HS mode.
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE);
for(i=0;i<n_Byte; i++){
if(i==(n_Byte-1)) {
dataRD =I2CHW_bRead (I2CHW_NAKslave);
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE);
\\}
else {
dataRD =I2CHW_bRead (I2CHW_ACKslave);
while(!I2CHW_bReadI2CStatus() & I2CHW_RD_COMPLETE);
\\}
\\}
I2CHW_SendStop //Master sends S/Sr to terminate Read
\\}
japan.cypress.com
文書番号: 001-92723 Rev. **
18
2
シリアル I C nvSRAM を使った設計
改訂履歴
文書名: シリアル I2C nvSRAM を使った設計- AN74875
文書番号: 001-92723
版
ECN
変更者
提出者
**
4395691
HZEN
06/17/2014
japan.cypress.com
変更内容
これは英語版 001-74875 Rev. *E を翻訳した日本語版 Rev. **です。
文書番号: 001-92723 Rev. **
19
2
シリアル I C nvSRAM を使った設計
ワールドワイドな販売と設計サポート
サイプレスは、事業所、ソリューション センター、メーカー代理店および販売代理店の世界的なネットワークを保持しています。お客様
の最寄りのオフィスについては、サイプレスのロケーション ページをご覧ください。
PSoC® ソリューション
製品
車載用
cypress.com/go/automotive
psoc.cypress.com/solutions
クロック&バッファ
cypress.com/go/clocks
PSoC 1 | PSoC 3 | PSoC 4 |PSoC 5LP
インターフェース
cypress.com/go/automotive
サイプレス開発者コミュニティ
照明&電源管理
cypress.com/go/powerpsoc
cypress.com/go/plc
メモリ
cypress.com/go/memory
光学式ナビゲーションセンサ
cypress.com/go/ons
PSoC
cypress.com/go/psoc
タッチ センシング
cypress.com/go/touch
USB コントローラ
cypress.com/go/usb
ワイヤレス/RF
cypress.com/go/wireless
コミュニティ | フォーラム | ブログ | ビデオ | トレーニング
テクニカル サポート
cypress.com/go/support
本書で言及するその他すべての商標または登録商標は、各社の所有物です。
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
電話番号 : 408-943-2600
ファックス : 408-943-4730
ウェブサイト: www.cypress.com
© Cypress Semiconductor Corporation, 2011-2014. 本文書に記載される情報は、予告なく変更される場合があります。Cypress Semiconductor Corporation
(サイプレス セミコンダクタ社) は、サイプレス製品に組み込まれた回路以外のいかなる回路を使用することに対して一切の責任を負いません。サイプレス セミコン
ダクタ社は、特許またはその他の権利に基づくライセンスを譲渡することも、または含意することもありません。サイプレス製品は、サイプレスとの書面による合意
に基づくものでない限り、医療、生命維持、救命、重要な管理、または安全の用途のために使用することを保証するものではなく、また使用することを意図したもの
でもありません。さらにサイプレスは、誤動作や故障によって使用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネント
としてサイプレス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆる
リスクを負うことを意味し、その結果サイプレスはあらゆる責任を免除されることを意味します。
このソースコード (ソフトウェアおよび/またはファームウェア) はサイプレス セミコンダクタ社 (以下「サイプレス」) が所有し、全世界の特許権保護 (米国およびそ
の他の国)、米国の著作権法ならびに国際協定の条項により保護され、かつそれらに従います。サイプレスが本書面によりライセンシーに付与するライセンスは、
個人的、非独占的かつ譲渡不能のライセンスであり、適用される契約で指定されたサイプレスの集積回路と併用されるライセンシーの製品のみをサポートするカ
スタム ソフトウェアおよび/またはカスタム ファームウェアを作成する目的に限って、サイプレスのソースコードの派生著作物をコピー、使用、変更そして作成する
ためのライセンス、ならびにサイプレスのソースコードおよび派生著作物をコンパイルするためのライセンスです。上記で指定された場合を除き、サイプレスの書面
による明示的な許可なくして本ソースコードを複製、変更、変換、コンパイル、または表示することは全て禁止します。
免責条項: サイプレスは、明示的または黙示的を問わず、本資料に関するいかなる種類の保証も行いません。これには、商品性または特定目的への適合性の黙
示的な保証が含まれますが、これに限定されません。サイプレスは、本文書に記載される資料に対して今後予告なく変更を加える権利を留保します。サイプレス
は、本文書に記載されるいかなる製品または回路を適用または使用したことによって生ずるいかなる責任も負いません。サイプレスは、誤動作や故障によって使
用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとしてサイプレス製品を使用することを許可していません。生命
維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任
を免除されることを意味します。
ソフトウェアの使用は、適用されるサイプレス ソフトウェア ライセンス契約によって制限され、かつ制約される場合があります。
japan.cypress.com
文書番号: 001-92723 Rev. **
20