Renesas Synergy™

FAQ 1012000 : CSI によるマイクロワイヤ(Microwire)メモリの制御 [78K0/Kx2 他]

[はじめに]
Microwire はナショナルセミコンダクタ社が提唱したマスタ/スレーブ方式のインタフェースで、基本的なデータの転送は2 本のデータ(入力と出力)とクロックの3 本の信号で行うクロック同期式のシリアル通信方式です。これ以外に、チップ・セレクトとしてCS 信号が使用され、合計4 本で制御します。データは、基本的に16 ビットでやりとりされます。この部分は、78K0 シリーズなどに搭載されたシリアル・インタフェース(CSI)と、基本的に互換性があります。Microwire では、データ以外に1 ビットのスタート・ビットと、2 ビットのコマンド、デバイスの容量によってビット長の異なるアドレスが使用されます。

[EEPROM との接続]
Microwire インタフェースをもつEEPROM との接続例は、次のようになります。

2000203_1.png

EEPROM に対するチップ・セレクト信号は、ポートを用いて出力します。その他の信号は、3 線式シリアルの信号をそのまま使用します。なお、EEPROM には、これ以外に書き込みを禁止するための信号(PRE やPE)があるものもあります。ここでは、これらの信号は使用しないので、電源に接続しておきます。

[信号のやり取りタイミング]
Microwire インタフェースをもつEEPROM は、CS 信号がアクティブの状態で、シリアル・クロック(SK)の立ち下がりに同期して送られてきたコマンドやデータをSK の立ち上がりで受け取ります。ところがリードでは、SK の立ち上がりに同期してデータを出力するので、立ち下がりに同期して読み出す必要があります。これは、3 線式シリアルやSPI とは異なるので注意が必要です。78K のCSI では、送信(書き込み)方向ではタイプ4、受信(読み出し)方向ではタイプ3 の通信フォーマットを使用します。

2000203_2.png

[スタート・ビットでの同期]
Microwire インタフェースをもつEEPROM では、その容量によってアドレスのビット数が異なります。そのため、アドレス転送までに必要なビット数が、CSI のような8 ビット固定では合わなくなります。そこで、スタート・ビットが定義されています。つまり、最初に受信した1のビットまでは、CS がアクティブになっていても、SK は無視されます。これを利用すれば、全体の長さは8 ビットや16 ビットの倍数になります。たとえば、容量が256 ワードの場合には、ドレスが8 ビットになります。スタート・ビットとコマンドで3 ビットですから、スタート・ビットの前に5 ビットの0 を付加すると、全体で16 ビットにすることができます。この例を次図に示します。

2000203_3.png

[EEPROM のコマンド]
EEPROM にはいくつかのコマンドが定義されており、最初にこれらで動作を指定する必要があります。デバイスによって、使用できるコマンドの種類が異なるようなので、コマンドの詳細は個々のデバイスのマニュアルをご参照いただくことにして、ここでは概要を説明します。

2000203_3_2.png

WDS :デバイスへの書き込み禁止状態にします。コマンドが00 で、アドレス部分の最初の2 ビットが00 のときに、このコマンドとなります。残りのアドレス部分は何でも構いません。
アドレスが8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 00 00xxxxxx

WRALL :デバイスのすべてのアドレスに、同じデータを書き込みます。コマンドが00 で、アドレス部分の最初の2 ビットが01 のときに、このコマンドとなります。残りのアドレス部分は何でも構いません。
アドレスが8 ビット時のスタート・ビット以降のビット・パターンを示します。
SI: 1 00 01xxxxxx D15~D0
製品別 1.1 共 通 1.1.22 EEPROM の制御 1. マイコン
インフォメーション X18437JJ2V0IF 347

ERAL :デバイスのすべてのアドレスのデータをクリアします。コマンドが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 のアクセス・タイミング例を示します。

2000203_4.png

CSI10 での接続例を示します。CSI10 ではP10~12 を使用するので、CS 信号には、連続したP13 を使用します。

2000203_5.png

具体的なプログラムは「FAQ 1006553 : 78K0/Kx2のCSIによるマイクロワイヤ・EEPROMの制御プログラム例(78K0/Kx2)」をご参照ください。 

[78K0S/Kx1+での制御]
78K0S/Kx1+にはCSI 機能がないので、汎用ポートをソフトウエアで制御します。次にP2 での接続例を示します。

2000203_6.png

具体的なプログラムは「FAQ 1006554 : 78K0S/Kx1+の汎用ポートによるマイクロワイヤ・EEPROMの制御プログラム例(78K0S/Kx1+)」をご参照ください。

 

他にご質問がございましたら、リクエストを送信してください