JP2000122921A - メモリサイズ自動判定方法及び判定装置 - Google Patents

メモリサイズ自動判定方法及び判定装置

Info

Publication number
JP2000122921A
JP2000122921A JP10291741A JP29174198A JP2000122921A JP 2000122921 A JP2000122921 A JP 2000122921A JP 10291741 A JP10291741 A JP 10291741A JP 29174198 A JP29174198 A JP 29174198A JP 2000122921 A JP2000122921 A JP 2000122921A
Authority
JP
Japan
Prior art keywords
memory size
eeprom
address
bit
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10291741A
Other languages
English (en)
Inventor
Osamu Isaki
修 伊崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Data Corp filed Critical Oki Data Corp
Priority to JP10291741A priority Critical patent/JP2000122921A/ja
Publication of JP2000122921A publication Critical patent/JP2000122921A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【解決手段】 シリアルアクセス型のEEPROMにア
ドレスを供給すると、アドレスの最後のビットがEEP
ROMに入力された後、EEPROMのデータ出力がハ
イからローに落ちる。アドレス供給開始時からデータ出
力がハイからローに落ちるまでの時間の違いにより、E
EPROMのメモリサイズを自動的に判定する。 【効果】 EEPROMのメモリサイズを、その使用前
に自動的に正確に判定するので、メモリサイズに影響さ
れない汎用性のあるEEPROM制御装置ができる。メ
モリサイズの異なるEEPROMに交換することも自由
になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シリアル型EEP
ROMメモリのメモリサイズ自動判定方法及び判定装置
に関する。
【0002】
【従来の技術】電子機器において、不揮発性であるこ
と、電気的に消去可能なこと、及び、入出力信号数が少
ないことから、シリアルアクセス型のEEPROM(電
気的消去可能プログラマブルリードオンリメモリ)に各
種設定情報を格納するケースが増えてきている。シリア
ルアクセス型のEEPROMには、データ読み出しのた
めのアドレスを制御クロックにあわせてシリアルに供給
する。EEPROMのメモリサイズによってアドレスの
ビット長が異なるから、アドレスを供給するのに必要な
クロック数はメモリサイズに応じて異なる。従って、予
めEEPROMのメモリサイズを知った上で、EEPR
OMを制御しなければならない。こうしたシリアルアク
セス型のEEPROMの制御には、従来、専用のハード
ウェアやソフトウェアを使用していた。
【0003】
【発明が解決しようとする課題】ところで、上記のよう
な従来の技術には次のような解決すべき課題があった。
従来、シリアルアクセス型のEEPROMを制御するた
めのハードウェアやソフトウェアは、上記にようにその
メモリサイズに応じた設計が必要になるから、例えば、
制御対象のEEPROMのメモリサイズを固定化した
り、ディップスイッチやショートプラグ等で、メモリサ
イズに応じた設定をするようになっていた。しかしなが
ら、メモリサイズを固定化しては、汎用性がなく、メモ
リサイズ毎にハードウェアやソフトウェアを設計しなけ
ればならず、コストアップになるという問題があった。
また、ディップスイッチやショートプラグ等を用いてそ
のつど設定をすると、設定ミスにより正常なアクセスが
できなくなるような問題も発生することがある。
【0004】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉任意のメモリサイズのEEPROMをアクセ
スするための所定ビットのアドレスを、未知のメモリサ
イズのシリアルアクセス型EEPROMに供給して、必
要なアドレスの全てのビットを供給し終えたタイミング
で出力されるアドレス終了応答ビットを監視し、上記ア
ドレス供給開始時を基準にして、上記アドレス終了応答
ビットが上記EEPROMから出力されるタイミングを
検出して、そのタイミングと対応するメモリサイズを、
上記シリアルアクセス型EEPROMのメモリサイズと
判定することを特徴とするメモリサイズ自動判定方法。
【0005】〈構成2〉構成1に記載のメモリサイズ判
定方法において、EEPROMからシリアルに読み出さ
れるデータの先頭に付加されたアドレス終了応答ビット
を、一定の受け入れ条件で上記読み出しデータとともに
一時メモリに受け入れて、この一時メモリ中の上記アド
レス終了応答ビットの格納位置に応じたメモリサイズ
を、上記シリアルアクセス型EEPROMのメモリサイ
ズと判定することを特徴とするメモリサイズ自動判定方
法。
【0006】〈構成3〉任意のメモリサイズのEEPR
OMをアクセスするための所定ビットのアドレスを、未
知のメモリサイズのシリアルアクセス型EEPROMに
供給して、上記EEPROMのリードアクセスが始まっ
てから、EEPROMからアドレス終了応答ビットが出
力されるまでの、制御用クロックの個数を数えるカウン
タと、そのカウンタ値に対応するメモリサイズを上記E
EPROMのメモリサイズと判定する判定回路とを備え
たことを特徴とするメモリサイズ自動判定装置。
【0007】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 《具体例1》本発明では、メモリサイズ判定用の制御プ
ログラムやハードウェアを設ける。図1には、メモリサ
イズ判定処理動作フローチャートを示す。なお、このフ
ローチャートの説明をするために、予めシリアルタイプ
EEPROMの具体的なリードライト処理を順に説明す
る。
【0008】〈EEPROMのアクセス〉図2(a)
は、シリアルタイプのEEPROMのシンボル図であ
る。このEEPROMは、データ入力端子DI、データ
出力端子DO、チップセレクト端子CS、クロック入力
端子SKを備える。図2(b)は、このEEPROMの
リードシーケンスチャートである。また、図3は、この
EEPROMのライトシーケンスチャートである。シー
ケンスは、CS信号を“1”にすることから始まる。な
お、図において、各信号がハイレベルのときは1、ロウ
レベルのときは0とする。図のように、SKクロックに
同期して、リードかライトかどうかを区別するためのコ
マンド及びアドレスが、この順番にDI信号線に入力さ
れる。
【0009】図2と図3の例では、リードシーケンスの
場合もライトシーケンスの場合も、4種類の異なるメモ
リサイズの場合について、それぞれDI信号の内容を例
示した。最初の2ビットがコマンドで、1ビットのスペ
ースビット(内容が0)を挟んで残りがアドレスであ
る。アドレスの各ビットはA0〜A11というように表
示した。それぞれ実際の長さは異なるが、最後のビット
A0の位置が揃うように図示した。
【0010】図2に示すリードシーケンスの場合は、そ
の後SKクロックに同期してDO信号線からデータが出
力される。図3に示すライトシーケンスの場合は引き続
きSKクロックに同期してDI信号線にデータが入力さ
れる。データの各ビットはD0〜D15というように表
示した。各シーケンスはCS信号を“0”にすることで
終了する。図3に示すライトシーケンスの場合、書き込
みが終了したかどうかは、再度CS信号を“1”にし、
DO信号が“0”から“1”に変化するのを確認するこ
とで判定される。
【0011】図2、図3のシーケンス図から分かるよう
に、EEPROMのメモリサイズによってアドレスのビ
ット長が異なり、それを送出するのに必要なクロック数
はメモリサイズ毎に異なる。
【0012】〈EEPROMアクセス専用ハードウェ
ア〉図4は、EEPROMアクセス専用ハードウェアの
ブロック図である。図において、CPU(中央処理装
置)1は、バス2を介してROM(Read Only Memory)
3、EEPROMアクセスハードウェア4、RAM(Ra
ndom AccessMemory)5と接続され、装置各部を制御す
るように構成されている。EEPROMアクセスハード
ウェア4には、制御対象となるEEPROM6が接続さ
れている。VCC7とプルアップ抵抗8とは、DO信号
線のレベルを制御する。制御用プログラムはROM3に
格納されており、RAM5は、制御中の情報を格納する
作業エリアとして使われる。EEPROMアクセスハー
ドウェア4には、制御用の各種レジスタ41〜43とフ
ラグ44〜47が用意されていて、そこに値を書き込ん
だり、読み出したりすることでEEPROMを制御でき
るようになっている。
【0013】ADRレジスタ41は、リード処理かライ
ト処理かを示すコマンド及びアクセスするEEPROM
のアドレスを格納するためのものである。ハードによっ
てはコマンドが別レジスタになっている場合もある。C
LKレジスタ42は、コマンドとアドレスを送出するの
に必要なクロック数を格納するためのものである。クロ
ック数の代わりにEEPROMのメモリサイズを指定す
るようになっている場合もある。この場合、その値を基
に必要クロック数を内部的に生成する。
【0014】DTレジスタ43はデータ用で、リードの
ときにはこのレジスタにEEPROMのデータが読み込
まれ、ライトのときはこのレジスタの値がEEPROM
に書き込まれる。書き込みフラグ44は、シーケンスが
リードかライトかを区別するためのフラグである。この
フラグがセットされると、書き込み確認シーケンスが発
生するようになっている。ハードによってはADRレジ
スタのコマンドを見て、自動的にリードかライトかを決
定する機構を持つものがあり、その場合この書き込みフ
ラグは不要である。
【0015】開始フラグ45はアクセスシーケンス開始
を表示する。開始フラグ45を“1”にセットするとE
EPROMのアクセスシーケンスが開始される。終了フ
ラグ46は、アクセスの終了を表示する。ハードによっ
ては、終了フラグを例えば割り込み信号として出力する
ようになっているケースや、開始フラグ45を終了フラ
グと兼用しているケースがある。書き込みエラーフラグ
47は、書き込みに失敗したことを示すフラグである。
通常は、書き込み確認シーケンスで一定時間内に書き込
み終了が確認できなかった場合にセットするようになっ
ている。
【0016】図5は、ハードウェア制御によるリード処
理フローチャートである。まず、図5のステップS1
で、リードコマンドとアクセスしようとしているアドレ
スをADRレジスタ41にセットする。次にステップS
2で、コマンドとアドレスを送出するのに必要なクロッ
ク数をCLKレジスタ42にセットする。リード処理で
あることを示すため、ステップS3で、書き込みフラグ
44をクリアする。ステップS4で開始フラグ45をセ
ットすると、リード処理が始まる。終了すると終了フラ
グ46がセットされるので、ステップS5でそれを待
つ。リードの結果はDTレジスタ43に格納されてい
る。
【0017】図6は、ハードウェア制御によるライト処
理フローチャートである。まず、図6のステップS1
で、ライトコマンドとアクセスしようとしているアドレ
スをADRレジスタ41にセットする。次に、ステップ
S2で、コマンドとアドレスを送出するのに必要なクロ
ック数をCLKレジスタ42にセットする。ステップS
3で、書き込むデータをDTレジスタ43にセットす
る。ライト処理であることを示すため、ステップS4
で、書き込みフラグ44をセットする。
【0018】ステップS5で、開始フラグ45をセット
するとライト処理が始まる。終了すると終了フラグ46
がセットされるので、ステップS6でそれを待つ。書き
込みに失敗した場合、書き込みエラーフラグ47がセッ
トされるので、ステップS7でそれをチェックし、失敗
していたらエラー処理に移る。
【0019】図7は、EEPROMのメモリサイズ毎の
ADRレジスタの値とCLKレジスタの値、及びDTレ
ジスタの値の例である。図に示すように、EEPROM
のアドレスビット長はメモリサイズによって異なる。左
側にはリードコマンドかライトコマンドかの種別を示
す。中央上側には、ADRレジスタ41の値を示す。右
側には、CLKレジスタ42の値を示す。この値が9な
らば、ADRレジスタ41の右から9ビット分が有効な
アドレスであり、下位3ビット(b2,b1,b0)に
は図2で示されているコマンド3ビットが入っている。
中央下側には、DTレジスタ43の値を示す。
【0020】EEPROMが256バイト〜1Kバイト
のメモリサイズならば、アドレスは9ビット、2Kバイ
ト〜4Kバイトのメモリサイズならば、アドレスは11
ビット、8Kバイト〜16Kバイトのメモリサイズなら
ば、アドレスは13ビット、32Kバイト〜64Kバイ
トのメモリサイズならば、アドレスは15ビットとな
る。また、リード時のアドレスは下位ビットb2、b
1、b0が「011」で、ライト時のアドレスは下位ビ
ットb2、b1、b0が「101」になる。入出力デー
タはメモリサイズにかかわらず全て16ビット幅で処理
する。
【0021】〈EEPROM制御専用ソフトウェア〉図
8は、プログラムでEEPROMを制御する場合のハー
ドウェアブロック図である。図において、CPU(中央
処理装置)1は、バス2を介してROM(Read Only Me
mory)3、とRAM(Random Access Memory)5に接続
され、装置各部を制御するように構成されている。CP
U1には、制御対象となるEEPROM6が接続されて
いる。VCC7とプルアップ抵抗8とは、DO信号線の
レベルを制御する。制御用プログラムはROM3に格納
されており、RAM5は、制御中の情報を格納する作業
エリアとして使われる。
【0022】以下の動作は、EEPROMのメモリサイ
ズが既知の場合で説明をする。また、CPU内部には、
ADRレジスタ41、CLKレジスタ42及びDTレジ
スタ43が設けられている。その機能は図4に示したも
のと同様である。
【0023】図9は、プログラム制御によるリード処理
フローチャートである。まずステップS1で、リードコ
マンドとアクセスしようとしているアドレスをADRレ
ジスタ41にセットする。ステップS2で、必要なクロ
ック数をCLKレジスタ42にセットする。そして、ス
テップS3のアドレス送出処理を実行する。その後、ス
テップS4のデータリード処理を実行する。結果はDT
レジスタ43に格納される。
【0024】図10は、プログラム制御によるアドレス
出力処理フローチャートである。まず、ステップS1
で、A2ポート=EEPROMのCSに“1”を出力し
て、EEPROMアクセスシーケンスを開始する。次
に、ステップS2で、tCSS時間ウエイトしてタイミ
ング調整した後ステップS3で、ADRレジスタ41の
最初のビットをA1ポート=EEPROMのDIに出力
する。ステップS2のウエイト時間は、EEPROMの
仕様で規定された時間である。ステップS4からステッ
プS7にかけて、A3ポート=EEPROMのSKへク
ロックを1クロック送出する。ステップS4、ステップ
S6のウエイト時間tSKも、EEPROMの仕様で規
定された時間である。ステップS8で、ADRレジスタ
41を1ビット右シフトして、DIへ出力する次のビッ
トを準備する。
【0025】次のステップS9でCLKレジスタ42か
ら1を引き、ステップS10で、CLKレジスタ42が
ゼロになっていないか確認する。ゼロでなければステッ
プS3へ飛び、次のビットをDIへ出力する。ステップ
S10で、CLKレジスタ42がゼロであれば、必要な
コマンドとアドレスの送出が完了したので、処理を終了
させる。
【0026】図11は、プログラム制御によるデータリ
ード処理フローチャートである。データの長さは16ビ
ットなので、ステップS1でCLKレジスタ42に“1
6”をセットする。ステップS2で、A1ポート=EE
PROMのDIに“0”を出力する。ステップS3でt
SKL時間ウエイトした後、ステップS4で、A3ポー
ト=EEPROMのSKに“1”をセットする。更に、
ステップS5で、tSKH時間ウエイトした後、A0ポ
ート=EEPROMのDOの値を読み、DTレジスタ4
3のビット0にセットする。そして、ステップS7で、
A3ポート=EEPROMのSKに“0”をセットす
る。これで、SKクロックを1パルス出力し、データを
1ビット読み込んだことになる。
【0027】次に、ステップS9で、CLKレジスタ4
2から1を引き、全ビット読み込んだかどうかをステッ
プS9でチェックする。CLKレジスタ42がゼロでな
い、即ち全ビット読み込んでいない場合は、ステップS
10でDTレジスタ43を1ビット左へシフトして次の
ビットの読み込みの準備をした後、ステップS3へ飛ん
で、次のビットを読む。
【0028】ステップS9で、DTレジスタ43がゼロ
の場合、全ビットの読み込みが完了しているので、ステ
ップS11でtCSH時間ウエイト後、ステップS12
でA2ポート=EEPROMのCSに“0”を出力して
EEPROMアクセスシーケンスを終了させる。ステッ
プS3、ステップS5、ステップS11のウエイトはE
EPROMの仕様で規定された時間である。
【0029】図12は、プログラム制御によるライト処
理フローチャートである。まず、ステップS1で、ライ
トコマンドとアクセスしようとしているアドレスをAD
Rレジスタ41にセットする。ステップS2で、必要な
クロック数をCLKレジスタ42にセットする。そし
て、ステップS3のアドレス送出処理を実行する。その
後、ステップS4で書き込むデータをDTレジスタ43
にセットした後、ステップS5のデータライト処理を実
行する。
【0030】図13は、プログラム制御によるデータラ
イト処理フローチャートである。データの長さは16ビ
ットなので、ステップS1で、CLKレジスタ42に
“16”をセットする。ステップS2で、DTレジスタ
43の最初のビットをA1ポート=EEPROMのDI
に出力する。ステップS3からステップS6にかけて、
A3ポート=EEPROMのSKへクロックを1クロッ
ク送出する。ステップS7で、DTレジスタ43を1ビ
ット右シフトして、DIへ出力する次のビットを準備す
る。
【0031】ステップS8で、CLKレジスタ42から
1を引き、ステップS9でCLKレジスタ42がゼロに
なっていないか確認し、ゼロでなければステップS2へ
飛び、次のビットをDIへ出力する。ステップS9で、
CLKレジスタ42がゼロであれば、書き込み用データ
の送出が完了したので、書き込み確認処理へ移行する。
【0032】ステップS10からステップS13にかけ
て、A2ポート=EEPROMのCSを一旦“0”にセ
ットした後、再び“1”にセットし直して、書き込み確
認シーケンスに入る。書き込み完了はA0ポート=EE
PROMのDOが“0”から“1”へ切り替わることで
確認できるので、ステップS14でそれを待つ。書き込
みが完了したら、ステップS15でA2ポート=EEP
ROMのCSを“0”にセットしてEEPROMのアク
セスシーケンスを終了させる。
【0033】〈具体例1のメモリサイズ判定処理〉図2
に示したリードシーケンスから分かるように、EEPR
OMをアクセスする動作中に、アドレスの最後のビット
がEEPROMに入力された後、データ出力がハイから
ローに落ちる。この具体例では、この性質を利用して、
メモリサイズ判定用の制御プログラムを追加し、EEP
ROMのメモリサイズを自動的に判定する。
【0034】具体的には、想定している最大アドレスま
で、アドレスビットをEEPROMに順に入力し、この
EEPROMのデータ出力を監視する。EEPROMの
データ出力がローに変化した時点で、入力済みのアドレ
スビット数によりEEPROMのメモリサイズを判定す
る。同一のアドレスビット数を持つ2出力以上のメモリ
サイズがある場合は、更に実際にデータを書き込み、そ
れを読み出すことで最終的なメモリサイズを判定する。
【0035】〈動作〉ここで、図1に戻って、プログラ
ム制御によりメモリサイズを判定する動作を説明する。
なお、この具体例では、図7に示したような8種類のメ
モリサイズのEEPROMを想定して、対象となったE
EPROMがどのメモリサイズのものかを判定する。ま
た、ハードウェアは、図8に示したものと同一とする。
これらの図を参照しながら、図1のフローチャートを説
明する。
【0036】まず、ステップS1で、想定している最小
メモリサイズの任意のアドレスをリードする。即ち、本
具体例では、256ビットのEEPROMが最小メモリ
サイズなので、ADRレジスタ41に、リードコマンド
と共に図7に示したようなA5〜A0のアドレスをセッ
トする。ステップS2ではCLKレジスタ42に最小メ
モリの場合のアドレス供給のためのクロック数をセット
する。本具体例の場合は図7に示したように9をセット
する。ステップS3で通常のデータリードを行う。DT
レジスタ43に読み込まれたデータは、接続されている
EEPROMのメモリサイズによって異なる。ステップ
S4でDTレジスタ43の各ビットの値を調べる。
【0037】図14には、具体例1によるリード結果の
説明図を示す。この例では、EEPROMの出力するデ
ータはメモリサイズにかかわらず16ビットとする。図
に示すように、EEPROMに何も書き込まれていない
状態で、9ビットのアドレスを供給し終えると、続いて
EEPROMからシリアルに16ビットのデータが順に
読み出される。読み出されるデータの内容は、全て1で
ある。メモリサイズが256/1Kバイトの場合、9ビ
ットのアドレスの供給が終了したタイミングで内容が0
のデータが1ビット読み出される。直前までの出力は全
て1である。ここで出力が0に変化する。これがアドレ
ス供給の終了に応答するビットである。その後16ビッ
トのデータが順にシリアルに読み出される。この内容を
図14の(a)に示す。
【0038】一方、メモリサイズが2K/4Kバイトの
場合、アドレスが9ビットしか供給されないと、その後
2ビット分の無効なアドレスが入力したタイミングで、
内容が0の応答ビットが1ビット読み出される。その後
16ビットのデータが順にシリアルに読み出される。9
ビットのアドレスを供給し、続いて16ビットのデータ
を読み出すシーケンスを実行すると、2ビット分のデー
タの読み出しが不足する。従って、図14(b)に示す
ように、最初に読み出された内容が0の応答ビットを先
頭にして、14ビット分のデータD15〜D12がDT
レジスタに記憶されてた状態になる。
【0039】その結果、メモリサイズが2K/4Kバイ
トのEEPROMを9ビットのアドレスでアクセスする
と、ビット14が必ずゼロになる。同様にして、メモリ
サイズが8K/16Kバイトの場合、ビット12がゼロ
になる。メモリサイズが32K/64Kバイトの場合、
ビット10がゼロになる。この規則性に基づいて、メモ
リサイズを判定する。なお、この原理で、例えばこのE
EPROMはメモリサイズが8K/16Kバイトという
ように、2種のサイズのいずれかという判定ができる。
その後は、2種のサイズのうちのどちらかという判定を
後処理で行う。
【0040】図1のステップS4でビット10が0であ
ったときは、メモリサイズは32Kか64Kである。こ
のときは、ステップS5へ行き、メモリサイズは64K
または32Kと判定する。ステップS4でビット12が
0であったときは、ステップS6へ行き、メモリサイズ
は16Kまたは32Kと判定する。ステップS4でビッ
ト14が0であったときは、ステップS7へ行き、メモ
リサイズは4Kまたは2Kと判定する。ステップS4で
全てのビットが1であったときは、ステップS8へ行
き、メモリサイズは1Kまたは256と判定する。ステ
ップS4で上記いずれにも該当しない場合、EEPRO
Mが正常にアクセスできなかったということで、エラー
処理が実行される。
【0041】図15に、後処理の動作フローチャートを
示す。まず、後処理Aは、メモリサイズが64Kまた
は、32Kと判定をした場合である。ステップS1で、
メモリサイズが32Kとした場合の最後のアドレス7F
FhにFFFFhを書き込む。それから、ステップS2
でメモリサイズが64Kとした場合の最後のアドレスF
FFhに0000hを書き込む。32Kの場合、FFF
hアドレスは7FFhと同じ扱いになるので、7FFh
にも0000hが書き込まれる。
【0042】その後、ステップS3で7FFhアドレス
からデータを読み、値が0000hかどうかステップS
4でチェックする。0000hであれば、メモリサイズ
は32Kなので、ステップS5で32Kと判定する。そ
うでない場合はステップS6で64Kと判定する。
【0043】後処理Bは、メモリサイズが8Kか16K
と判定した場合である。ステップS7でメモリサイズが
8Kとした場合の最後のアドレス1FFhにFFFFh
を書き込む。それから、ステップS8でメモリサイズが
16Kとした場合の最後のアドレス3FFhに0000
hを書き込む。8Kの場合、3FFhアドレスは1FF
hと同じ扱いになるので、1FFhにも0000hが書
き込まれる。
【0044】その後、ステップS9で1FFhアドレス
からデータを読み、値が0000hかどうかステップS
10でチェックする。0000hであれば、メモリサイ
ズは8Kなので、ステップS11で8Kと判定する。そ
うでない場合はステップS12で16Kと判定する。
【0045】後処理Cは、メモリサイズが2Kか4Kと
判定した場合である。ステップS13で、メモリサイズ
が2Kとした場合の最後のアドレス7FhにFFFFh
を書き込む。それから、ステップS14でメモリサイズ
が4Kとした場合の最後のアドレスFFhに0000h
を書き込む。2Kの場合、FFhアドレスは7Fhと同
じ扱いになるので、7Fhにも0000hが書き込まれ
る。
【0046】その後、ステップS15で7Fhアドレス
からデータを読み、値が0000hかどうかステップS
16でチェックする。0000hであれば、メモリサイ
ズは2Kなので、ステップS17で2Kと判定する。そ
うでない場合はステップS18で4Kと判定する。
【0047】後処理Dは、メモリサイズが256か1K
と判定した場合である。ステップS19で256の最後
のアドレス0FhにFFFFhを書き込む。それから、
ステップS20で1Kの最後のアドレス3Fhに000
0hを書き込む。256の場合、3Fhアドレスは0F
hと同じ扱いになるので、0Fhにも0000hが書き
込まれる。
【0048】その後、ステップS21で0Fhアドレス
からデータを読み、値が0000hかどうかステップS
22でチェックする。0000hであれば、メモリサイ
ズは256なので、ステップS23で256と判定す
る。そうでない場合はステップS24で1Kと判定す
る。なお、256ビットと1kビットの2種類のEEP
ROMだけを区別する場合には、ステップS19で、ア
ドレス1FhにFFFFhを書き込んでもよい。その後
アドレス1Fhを読み、アドレス1FhからFFFFh
が読み出されれば1kビットと判定できる。しかし、2
56ビットと1kビットの他に、512ビットのEEP
ROMが存在する場合には、図のように、ステップS1
9で、アドレス0FhにFFFFhを書き込むとよい。
256ビットの場合アドレス0Fhから0000hが読
み出されるから、これで、256ビットと512ビット
の区別ができる。
【0049】上記の例では、未知のメモリサイズのEE
PROMに対して、最少メモリサイズのEEPROMを
アクセスするためのアドレスを供給して、その出力デー
タの内容を調べた。シリアルアクセス型EEPROMに
所定ビットのアドレスをシリアルに供給すると、必要な
アドレスの全てのビットを供給し終えたタイミングで内
容が0のデータが出力される。このデータをアドレス終
了応答ビットと呼べば、EEPROMからシリアルに読
み出されるデータの先頭にこのアドレス終了応答ビット
が付加されることになる。また、上記所定ビットのアド
レス供給開始時を基準にすると、アドレス終了応答ビッ
トがEEPROMから出力されるタイミングは、EEP
ROMのメモリサイズによって異なる。このタイミング
を検出する。一定の受け入れ条件でこのアドレス終了応
答ビットを上記読み出しデータとともにレジスタ等の一
時メモリに受け入れると、上記アドレス終了応答ビット
の格納位置が、EEPROMのメモリサイズによって異
なってくる。このアドレス終了応答ビットの位置を比較
することによってメモリサイズを判定することができ
る。
【0050】なお、必ずしも最少メモリサイズのEEP
ROMをアクセスするためのアドレスを供給する必要は
ない。任意のメモリサイズのEEPROMをアクセスす
るための所定ビットのアドレスを未知のメモリサイズの
EEPROMに供給しても、同様の結果を得る。いずれ
の場合にも、所定のタイミングでアドレス終了応答ビッ
トが必ず出力されるからである。また、判定すべきEE
PROMのメモリサイズは8種類に限定されない。例え
ば、256、4K、16K、64Kの4種類しかないと
すれば、図1の後処理無しにメモリサイズの判定が終了
する。128Kや256Kといったさらに大サイズのE
EPROMの判定も可能である。また、上記の例では、
例えば始めにアドレス終了応答ビットの位置により64
Kまたは32Kと判定して、後処理によりそのいずれか
という最終判定をした。しかし、始めに64Kと仮判定
し、後処理によりその結果が否定されたら32Kと判定
し、否定されなければ仮判定の結果を採用するといった
手順にしてもよい。
【0051】〈具体例1の効果〉以上述べたように、従
来装置にこの具体例のメモリサイズ判定用制御プログラ
ムを追加すると、EEPROMの容量が自動的に判定で
きるようになる。このような判定を行って、その判定結
果に基づいてアクセス条件を設定すれば、アクセス条件
を出荷時に固定しておく必要がないから、EEPROM
制御回路やEEPROM制御プログラムを汎用性のある
仕様にできる。従ってそのコストダウンを図ることがで
きる。しかも、設定ミス等による不具合の発生するおそ
れがない。また、将来的にEEPROMのメモリサイズ
を増やしたりしても、自動的に設定が変更されるので、
その取り扱いが容易になる。
【0052】《具体例2》具体例1では、EEPROM
のメモリサイズ判定時には、EEPROMに何も書き込
まれていないことを前提とした。一旦データの書き込み
を行ってしまうと、読み出されるデータには1以外のデ
ータが含まれる。アクセス終了応答ビットの内容は0で
あるから、具体例1の場合には、他のデータと区別でき
た。しかし、メモリサイズ判定に使ういくつかの位置の
ビットに0が書き込まれていたとすると、アクセス終了
応答ビットと区別がつかなくなる。図14(a)のb1
0のビットに内容が0のデータが書き込まれていると、
256のサイズのEEPROMが実装されていても、3
2Kもしくは64Kと判定されてしまう。これを避ける
には、メモリサイズ判定用のアドレスを、データ書き込
み禁止にする方法がある。しかし、それではEEPRO
M中に使えない領域ができてしまうため非効率的な場合
もある。本具体例では、データを読む代わりに、リード
アクセスが始まってから、EEPROMのDO信号がゼ
ロになるまでのSKクロックの個数を数えることで、メ
モリサイズを判定する。
【0053】〈構成〉図16と図17は、メモリサイズ
判定制御ハードウェアのブロック図である。これらの回
路は、例えば図8のCPU1の出力するA2=CS信号
を受け入れて動作する。また、図17の回路は、図8の
CPU1の出力するA3=SK信号を受け入れ、EEP
ROM6の出力するD0=A0信号を受け入れて動作す
る。図17の回路の出力するSCLK−N信号とRST
−N信号は図16の回路に供給される。図16の回路の
データバスとアドレスバスとは図8の回路のバス2に接
続されている。
【0054】図16の4ビットのバイナリカウンタ1
1,12は、カスケード接続することにより、8ビット
のカウンタを構成している。このバイナリカウンタ1
1,12によって、SKクロックの個数を数えて、メモ
リサイズ判定に利用する。カウントするのはSCLK−
N信号である。これは図17のノアゲート17により、
EEPROMのクロックSKを反転した信号である。ア
ドレスバスに接続されたアドレスデコーダ14は、バイ
ナリカウンタ11,12をCPU1の特定のアドレスに
マップするためのものである。
【0055】即ち、CPU1が、特定のアドレスをアク
セスすると、このバイナリカウンタ11,12から、カ
ウント値が読み出されるように構成されている。アドレ
スデコーダ14の出力は、CPU1のRD−N信号とと
もにNORゲート15に入力し、3STATEバッファ
13のゲート信号Gとなる。RD−N信号はCPU1の
リード信号である。これらの回路により、8ビットのバ
イナリカウンタ11,12の出力C0〜C7は、アドレ
スデコーダ14でデコードされたアドレスをCPU1が
リードしたときのみ、3STATEバッファ13を通じ
てデータバスに出力される。8ビットバイナリカウンタ
11,12は、RST−N信号がローになるとリセット
される。即ち出力C0〜C7が全てゼロとなる。その後
CS信号がハイになると、SCLK−N信号の立ち上が
りをカウントし始める。
【0056】図17に示すノアゲート17は、SKクロ
ック信号をGATE−N信号がローのときのみ反転して
SCLK−N信号を出力する回路である。GATE−N
信号がハイの間は、SCLK−N信号はローとなる。図
17に示すオアゲート18、フリップフロップ21、ナ
ンドゲート19は、CS信号がハイになってからDO信
号がローになるまでの間GATE−N信号をローに保つ
ための回路である。このGATE−N信号がローになっ
ている間、SCLK−N信号が出力され、8ビットバイ
ナリカウンタ11,12によりSCLK−N信号がカウ
ントされる。フリップフロップ22、オアゲート20、
インバータ23、24は、8ビットバイナリカウンタ1
1,12のリセット信号RST−Nを作る回路で、CS
信号がハイになってから、最初にSKクロック信号がハ
イに立ち上がるまでの間RST−Nをローに保つ。
【0057】〈動作〉図18は図16と図17に示した
ハードウェアの動作シーケンスを示す。図の(a)〜
(o)には、それぞれCS,SK,DI,DO,RST
−N,GATE−N,SCLK−N,C0〜C7の信号
の内容を示す。(b)、(c)、(d)は、図2(b)
に示した動作と同様である。まず、CS信号がハイにな
ると、即ちEEPROMへのアクセスが始まると、8ビ
ットバイナリカウンタ11,12がリセットされ、C0
〜C7出力が全てゼロとなる(時刻t1)。そして、C
Sクロック信号が最初にハイに立ち上がったところでリ
セットが解除され、8ビットバイナリカウンタ11,1
2はSCLK−Nの立ち上がり、即ちSK信号の立ち下
がりをカウントし始める。このカウント動作は、DO信
号がローになったところ(時刻t2)でストップする。
【0058】CS信号がローになった後(時刻t3以
後)、アドレスデコーダ14でデコードされるアドレス
をリードすると、8ビットバイナリカウンタ11,12
でカウントされたSKクロックの個数(図18の(g)
のクロック数)を読み込むことができる。
【0059】図19は、具体例2によるメモリサイズ判
定処理動作フローチャートである。まず、ステップS1
〜ステップS3で、適当なアドレスをリードする。そう
すると、図16と図17に示したメモリサイズ判定制御
ハードウェアが動作する。この回路が、リードアクセス
が始まってから(CS信号がハイになってから)、EE
PROMのDO信号がゼロになるまでのSKクロックの
個数を数える。ステップS4でカウントしたSKクロッ
クの個数をこの具体例で新たにCPU1内部に設けた図
示しないACNTレジスタに読み込む。ステップS5
で、ACNTレジスタの値をチェックして、値に応じて
それぞれの処理にジャンプする。
【0060】まず、値が8であった場合、メモリサイズ
は256か1Kなので、ステップS6へ進む。値が10
であった場合、メモリサイズは256か1Kなので、ス
テップS7へ進む。値が12であった場合、メモリサイ
ズは256か1Kなので、ステップS8へ進む。値が1
4であった場合、メモリサイズは256か1Kなので、
ステップS9へ進む。ステップS6、7、8、9の内容
と、その後の後処理A,B,C,Dの内容は、図15を
用いて説明したとおりである。これらの処理により、最
終的なメモリサイズを判定する。
【0061】〈具体例2の効果〉以上述べたように、こ
の具体例では、EEPROMに既になんらかのデータが
書き込み済みであっても、リードアクセスが始まってか
ら、EEPROMのDO信号がゼロになるまでのSKク
ロック(制御用クロック)の個数をカウンタで数えるこ
とによって、メモリサイズが正確に判定できる。この具
体例ではCPUがメモリサイズの判定回路になる。従っ
て、これまで搭載されていたEEPROMを交換するよ
うな場合に、そのEEPROMが未書き込み品でなく、
使用済み品であっても、自動的にメモリサイズを判定し
て使用することができる。
【0062】《具体例3》具体例2においては、図16
や図17に示すようなメモリサイズ判定制御ハードウェ
アが必要とされた。本具体例では、特別なハードウェア
を用いること無く、制御プログラムを追加するだけで同
等の機能を実現する。
【0063】〈構成〉図20に、具体例3によるメモリ
サイズ判定処理動作フローチャートを示す。この動作を
実現するためのハードウェアは、図8に示したとおりの
ものでよい。なお、図4に示したハードウェアを使用す
る場合には、EEPROMの各信号線をCPU1の汎用
入出力ポートに接続すればよい。
【0064】〈動作〉以下、図20の制御プログラムの
動作を説明する。まず、ステップS1〜ステップS2
で、最大メモリサイズのアドレスをリードするためリー
ドコマンドとアドレスをADRレジスタにセットし、ク
ロック数をCLKレジスタにセットする。次に、後で説
明するステップS3のアドレス長処理を実行する。この
処理は、リードアクセスが始まってから(CS信号がハ
イになってから)、EEPROMのDO信号がゼロにな
るまでのSKクロックの個数を調べる処理である。その
結果がACNTレジスタに読み込まれる。
【0065】また、ステップS3の処理が正常終了しな
かった場合、正常終了フラグがゼロになるので、ステッ
プS4で正常終了フラグチェックし、ゼロであったなら
ば、のエラー処理で飛ぶ。正常終了の場合、ステップS
5でACNTレジスタの値をチェックして、値に応じて
それぞれの処理にジャンプする。
【0066】以下は具体例1や具体例2と同様の処理で
ある。即ち、まず、値が8であった場合、メモリサイズ
は256か1Kなので、ステップS6へ進む。値が10
であった場合、メモリサイズは256か1Kなので、ス
テップS7へ進む。値が12であった場合、メモリサイ
ズは256か1Kなので、ステップS8へ進む。値が1
4であった場合、メモリサイズは256か1Kなので、
ステップS9へ進む。ステップS6、7、8、9の内容
と、その後の後処理A,B,C,Dの内容は、図15を
用いて説明したとおりである。これらの処理により、最
終的なメモリサイズを判定する。
【0067】図21はアドレス長処理のフローチャート
である。まず、ステップS1で、ACNTレジスタをゼ
ロクリアする。次に、ステップS2で、A2ポート=E
EPROMのCSをハイにし、リードシーケンスを開始
する。ステップS3でtCSS時間ウエイトした後、ス
テップS4でADRレジスタのビット0をA1ポート=
EEPROMのDIに出力する。ステップS5からステ
ップS8でA3ポート=EEPROMのSKにクロック
を1クロック出力する。
【0068】ステップS9でA0ポート=EEPROM
のDOがゼロになっていないかチェック後、ゼロでなけ
ればステップS10でACNTレジスタに1を足し、ス
テップS11でADRレジスタを1ビット右へシフト
し、ステップS12でCLKレジスタから1引いて、次
のクロックの処理を行う。ステップS13でCLKレジ
スタがゼロでない、即ち送出するアドレスがまだADR
レジスタ内に残っている場合は、ステップS4へ戻り、
次のアドレスまたはコマンドを出力する。
【0069】ステップS9でA0ポート=EEPROM
のDOがゼロになっていないかチェックし、ゼロであれ
ば接続されているEEPROMの最終アドレスが出力さ
れたことを意味するので、SKクロックのカウントを止
めるためステップS14へ飛ぶ。ここで、正常終了した
ことを示す正常終了フラグをセットし、ステップS16
でtCSH時間ウエイトした後、ステップS17でA2
ポート=EEPROMのCSをローにして、シーケンス
を終了する。
【0070】ステップS13で、CLKレジスタがゼロ
になった場合、想定しているEEPROMが接続されて
いないことを意味するので、ステップS14で異常終了
したことを示すため正常終了フラグをクリアし、ステッ
プS16へ飛ぶ。
【0071】以上の処理では、リードアクセスが始まっ
てから、EEPROMのDO信号がゼロになるまでのS
Kクロックの個数をプログラムによってカウントして、
その数を取得する。その数はEEPROMのメモリサイ
ズに対応するから、具体例2と同様にしてメモリサイズ
の判定が出来る。
【0072】〈具体例3の効果〉以上述べたように、こ
の具体例により、メモリサイズ判定制御プログラムを追
加すれば、具体例2と同様にしてEEPROMのメモリ
サイズが自動的に判定できる。その他の効果は具体例2
と同様である。
【図面の簡単な説明】
【図1】メモリサイズ判定処理動作フローチャートであ
る。
【図2】(a)は、シリアルタイプのEEPROMのシ
ンボル図、(b)は、このEEPROMのリードシーケ
ンスチャートである。
【図3】EEPROMのライトシーケンスチャートであ
る。
【図4】EEPROMアクセス専用ハードウェアのブロ
ック図である。
【図5】ハードウェア制御によるリード処理フローチャ
ートである。
【図6】ハードウェア制御によるライト処理フローチャ
ートである。
【図7】EEPROMのメモリサイズ毎のADRレジス
タの値とCLKレジスタの値、及びDTレジスタの値の
例である。
【図8】プログラムでEEPROMを制御する場合のハ
ードウェアブロック図である。
【図9】プログラム制御によるリード処理フローチャー
トである。
【図10】プログラム制御によるアドレス出力処理フロ
ーチャートである。
【図11】プログラム制御によるデータリード処理フロ
ーチャートである。
【図12】プログラム制御によるライト処理フローチャ
ートである。
【図13】プログラム制御によるデータライト処理フロ
ーチャートである。
【図14】具体例1によるリード結果の説明図である。
【図15】後処理の動作フローチャートである。
【図16】メモリサイズ判定制御ハードウェアのブロッ
ク図(その1)である。
【図17】メモリサイズ判定制御ハードウェアのブロッ
ク図(その2)である。
【図18】図16と図17に示したハードウェアの動作
シーケンスである。
【図19】具体例2によるメモリサイズ判定処理動作フ
ローチャートである。
【図20】具体例3によるメモリサイズ判定処理動作フ
ローチャートである。
【図21】アドレス長処理のフローチャートである。
【符号の説明】
S1〜S8 処理ステップ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 任意のメモリサイズのEEPROMをア
    クセスするための所定ビットのアドレスを、未知のメモ
    リサイズのシリアルアクセス型EEPROMに供給し
    て、 必要なアドレスの全てのビットを供給し終えたタイミン
    グで出力されるアドレス終了応答ビットを監視し、 前記アドレス供給開始時を基準にして、前記アドレス終
    了応答ビットが前記EEPROMから出力されるタイミ
    ングを検出して、 そのタイミングと対応するメモリサイズを、前記シリア
    ルアクセス型EEPROMのメモリサイズと判定するこ
    とを特徴とするメモリサイズ自動判定方法。
  2. 【請求項2】 請求項1に記載のメモリサイズ判定方法
    において、 EEPROMからシリアルに読み出されるデータの先頭
    に付加されたアドレス終了応答ビットを、一定の受け入
    れ条件で前記読み出しデータとともに一時メモリに受け
    入れて、 この一時メモリ中の前記アドレス終了応答ビットの格納
    位置に応じたメモリサイズを、前記シリアルアクセス型
    EEPROMのメモリサイズと判定することを特徴とす
    るメモリサイズ自動判定方法。
  3. 【請求項3】 任意のメモリサイズのEEPROMをア
    クセスするための所定ビットのアドレスを、未知のメモ
    リサイズのシリアルアクセス型EEPROMに供給し
    て、前記EEPROMのリードアクセスが始まってか
    ら、EEPROMからアドレス終了応答ビットが出力さ
    れるまでの、制御用クロックの個数を数えるカウンタ
    と、そのカウンタ値に対応するメモリサイズを前記EE
    PROMのメモリサイズと判定する判定回路とを備えた
    ことを特徴とするメモリサイズ自動判定装置。
JP10291741A 1998-10-14 1998-10-14 メモリサイズ自動判定方法及び判定装置 Pending JP2000122921A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10291741A JP2000122921A (ja) 1998-10-14 1998-10-14 メモリサイズ自動判定方法及び判定装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10291741A JP2000122921A (ja) 1998-10-14 1998-10-14 メモリサイズ自動判定方法及び判定装置

Publications (1)

Publication Number Publication Date
JP2000122921A true JP2000122921A (ja) 2000-04-28

Family

ID=17772811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10291741A Pending JP2000122921A (ja) 1998-10-14 1998-10-14 メモリサイズ自動判定方法及び判定装置

Country Status (1)

Country Link
JP (1) JP2000122921A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527553A (ja) * 2005-01-14 2008-07-24 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動デバイスの起動手順を初期化するための方法及びデバイス
JP2010040035A (ja) * 2008-07-07 2010-02-18 Ricoh Co Ltd メモリ読み書き装置および画像形成装置
KR101014573B1 (ko) 2007-06-21 2011-02-16 주식회사 코아로직 메모리 액세스 장치, 방법 및 그 방법을 실행하기 위한프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
JP2016524769A (ja) * 2014-06-27 2016-08-18 華為技術有限公司Huawei Technologies Co.,Ltd. コントローラ、フラッシュメモリ装置及びデータをフラッシュメモリ装置に書き込む方法
CN111273852A (zh) * 2018-12-04 2020-06-12 智微科技股份有限公司 存储器区块大小判定方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527553A (ja) * 2005-01-14 2008-07-24 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動デバイスの起動手順を初期化するための方法及びデバイス
KR101014573B1 (ko) 2007-06-21 2011-02-16 주식회사 코아로직 메모리 액세스 장치, 방법 및 그 방법을 실행하기 위한프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
JP2010040035A (ja) * 2008-07-07 2010-02-18 Ricoh Co Ltd メモリ読み書き装置および画像形成装置
JP2016524769A (ja) * 2014-06-27 2016-08-18 華為技術有限公司Huawei Technologies Co.,Ltd. コントローラ、フラッシュメモリ装置及びデータをフラッシュメモリ装置に書き込む方法
CN111273852A (zh) * 2018-12-04 2020-06-12 智微科技股份有限公司 存储器区块大小判定方法

Similar Documents

Publication Publication Date Title
EP0329725B1 (en) Microcomputer with on-board chip selects and programmable bus stretching
US4672534A (en) Integrated circuit device incorporating a data processing unit and a ROM storing applications program therein
US5263168A (en) Circuitry for automatically entering and terminating an initialization mode in a data processing system in response to a control signal
US5201036A (en) Data processor having wait state control unit
AU620450B2 (en) Memory write protection circuit
KR970006644B1 (ko) 버스의 데이터전송처리능력(Data throughput)을 향상시키는 버스제어장치
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
US6473841B1 (en) Signal processing apparatus with memory access history storage
JP2000122921A (ja) メモリサイズ自動判定方法及び判定装置
JP2866896B2 (ja) 読取り専用記憶装置の試験方法とその方法を実行するデバイス
US5704033A (en) Apparatus and method for testing a program memory for a one-chip microcomputer
US20030120973A1 (en) Microprocessor and processing method of microprocessor
JP3630350B2 (ja) メモリデータ比較方式
US7020813B2 (en) On chip debugging method of microcontrollers
KR100499851B1 (ko) 마이크로컴퓨터의 기입 종료 판별 방법
US7395399B2 (en) Control circuit to enable high data rate access to a DRAM with a plurality of areas
EP0619546A1 (en) Programmable memory controller and method for configuring same
US20020188810A1 (en) Cache memory control apparaus and processor
US7360055B2 (en) Two address map for transactions between an X-bit processor and a Y-bit wide memory
US9690723B2 (en) Semiconductor device for performing test and repair operations
US5809264A (en) Interface with device having unusual access time and method thereof
EP0505051A1 (en) Data storage system with intrinsic burst detection
US20020199050A1 (en) Method and apparatus to select configuration addresses for the peripherals in a computer system
JP3224946B2 (ja) 半導体集積回路
JP2002073411A (ja) Eepromの記憶容量判別装置およびeepromの記憶容量判別方法