製品別 1. マイコン - Renesas Rulz

製品別
1.1 共
通
1.1.22 EEPROM の制御
1. マイコン
CSI によるマイクロワイヤ(Microwire)メモリの制御 [78K0/Kx2 など]
[はじめに]
Microwire はナショナルセミコンダクタ社が提唱したマスタ/スレーブ方式のインタフェースで、基本的なデータの
転送は 2 本のデータ(入力と出力)とクロックの 3 本の信号で行うクロック同期式のシリアル通信方式です。これ以
外に、チップ・セレクトとして CS 信号が使用され、合計 4 本で制御します。
データは、基本的に 16 ビットでやりとりされます。この部分は、78K0 シリーズなどに搭載されたシリアル・インタフ
ェース(CSI)と、基本的に互換性があります。Microwire では、データ以外に 1 ビットのスタート・ビットと、2 ビットの
コマンド、デバイスの容量によってビット長の異なるアドレスが使用されます。
[EEPROM との接続]
Microwire インタフェースをもつ EEPROM との接続例は、次のようになります。
EEPROM に対するチップ・セレクト信号は、ポートを用いて出力します。その他の信号は、3 線式シリアルの信号を
そのまま使用します。なお、EEPROM には、これ以外に書き込みを禁止するための信号(PRE や PE)があるもの
もあります。ここでは、これらの信号は使用しないので、電源に接続しておきます。
[信号のやり取りタイミング]
Microwire インタフェースをもつ EEPROM は、CS 信号がアクティブの状態で、シリアル・クロック(SK)の立ち下がり
に同期して送られてきたコマンドやデータを SK の立ち上がりで受け取ります。ところがリードでは、SK の立ち上が
りに同期してデータを出力するので、立ち下がりに同期して読み出す必要があります。これは、3 線式シリアルや
SPI とは異なるので注意が必要です。78K の CSI では、送信(書き込み)方向ではタイプ 4、受信(読み出し)方向
ではタイプ 3 の通信フォーマットを使用します。
R00ZZ0001JJ0400
Rev.4.00
363
製品別
1.1 共
通
1.1.22 EEPROM の制御
1. マイコン
[スタート・ビットでの同期]
Microwire インタフェースをもつ EEPROM では、その容量によってアドレスのビット数が異なります。そのため、アド
レス転送までに必要なビット数が、CSI のような 8 ビット固定では合わなくなります。そこで、スタート・ビットが定義
されています。つまり、最初に受信した1のビットまでは、CS がアクティブになっていても、SK は無視されます。こ
れを利用すれば、全体の長さは 8 ビットや 16 ビットの倍数になります。たとえば、容量が 256 ワードの場合には、
アドレスが 8 ビットになります。スタート・ビットとコマンドで 3 ビットですから、スタート・ビットの前に 5 ビットの 0 を
付加すると、全体で 16 ビットにすることができます。この例を次図に示します。
[EEPROM のコマンド]
EEPROM にはいくつかのコマンドが定義されており、最初にこれらで動作を指定する必要があります。デバイスに
よって、使用できるコマンドの種類が異なるようなので、コマンドの詳細は個々のデバイスのマニュアルをご参照
いただくことにして、ここでは概要を説明します。
コード
名 称
動
作
00+00
WDS
書き込み禁止
00+01
WRALL
全空間に同じデータを書き込む
00+10
ERAL
すべてのアドレスのデータを消去
00+11
WEN
書き込み許可
01
WRITE
指定されたアドレスに 16 ビットのデータを書き込む
10
READ
指定されたアドレスから順にデータを読み出す
11
ERASE
指定されたアドレスのデータを消去
WDS
:デバイスへの書き込み禁止状態にします。コマンドが 00 で、アドレス部分の最初の 2 ビットが 00 のと
きに、このコマンドとなります。残りのアドレス部分は何でも構いません。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 00 00xxxxxx
WRALL :デバイスのすべてのアドレスに、同じデータを書き込みます。コマンドが 00 で、アドレス部分の最初の
2 ビットが 01 のときに、このコマンドとなります。残りのアドレス部分は何でも構いません。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 00 01xxxxxx D15~D0
R00ZZ0001JJ0400
Rev.4.00
364
製品別
ERAL
1.1 共
通
1.1.22 EEPROM の制御
1. マイコン
:デバイスのすべてのアドレスのデータをクリアします。コマンドが 00 で、アドレス部分の最初の 2 ビット
が 10 のときに、このコマンドとなります。残りのアドレス部分は何でも構いません。
デバイスによっては、このコマンドがない場合もあるようです。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 00 10xxxxxx
WEN
:デバイスへの書き込みを可能状態にします。電源立ち上げ時、デバイスは書込み禁止状態になって
いるので、書き込みを行う場合には、必ずこのコマンドで書き込みを許可する必要があります。コマン
ドが 00 で、アドレス部分の最初の 2 ビットが 11 のときに、このコマンドとなります。残りのアドレス部
分は何でも構いません。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 00 11xxxxxx
WRITE :EEPROM へデータを書き込みます。コマンドに続いて、書き込みたいメモリのアドレスを転送します。
その後、指定されたアドレスへの書き込みデータ(16 ビット)を転送します。転送完了後、次の SK の立
ち上がりより前に、CS をロウ・レベルにすれば、実際の書き込みを行います。書き込んでいる最中に
は、再度 CS をハイ・レベルにして、DO 端子を確認することで、書き込みを完了したかどうかが分かり
ます。0 なら書き込み中で、1 になったら書き込みは完了です。なお、書き込み完了を確認する際は、
SI をロウ・レベルにする必要があるようです。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 01 A7~A0 D15~D0
READ
:EEPROM からデータを読み出します。コマンドに続いて、アドレスを転送すれば、その後の SK の立ち
上がりで、指定されたアドレスの内容を出力します。その後、SK を入力すれば、次のアドレスの内容
を読み出せます。CS をロウ・レベルにすれば、読み出しは完了となります。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 10 A7~A0
ERASE :EEPROM の指定したアドレスのデータをクリアします。このコマンドがないデバイスもあるようです。
アドレスが 8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 11 A7~A0
[78K0/Kx2 での制御]
EEPROM は、電源電圧が 2.7V 以上なら書き込み可能で、シリアル・クロックは約 250kHz までになります。そこで、
78K0/Kx2 を高速内蔵発振器の 8MHz で動作させ、CSI10 のクロックは 125kHz に設定します。クロック周波数の
変動を考慮すると、250kHz のシリアル・クロックに対して、250kHz の設定は問題があります。
マイクロワイヤでは、データとクロック(SK)の位相の関係で 2 つの状態があります。そのため、CSI の通信フォーマ
ットを送信時と受信時で切り替える必要があります。そこで、送信時には 78K0/Kx2 の CSI の転送タイプ 4、受信
時にはタイプ 3 を使用します。なお、CSIM10 は MSB ファーストの送受信モードに設定して使用します。
次に、EEPROM のアクセス・タイミング例を示します。
R00ZZ0001JJ0400
Rev.4.00
365
製品別
1.1 共
通
1.1.22 EEPROM の制御
1. マイコン
CSI10 での接続例を示します。CSI10 では P10~12 を使用するので、CS 信号には、連続した P13 を使用します。
具体的なプログラムは「CSI によるマイクロワイヤ EEPROM の制御プログラム例 [78K0/Kx2]」をご参照ください。
[78K0S/Kx1+での制御]
78K0S/Kx1+には CSI 機能がないので、汎用ポートをソフトウエアで制御します。次に P2 での接続例を示します。
具体的なプログラムは「汎用ポートによるマイクロワイヤ EEPROM の制御プログラム例 [78K0S/Kx1+]」をご参照
ください。
R00ZZ0001JJ0400
Rev.4.00
366