Lesson
6.ROM
Appendix
|
コンピューター
MPU基礎システム(はじめに)
Lesson 6
Lesson 6ROMElenco Electronics社のコンピュータートレーニングボード MICRO-MASTER MM-8000 の Lesson 6 に関するメモです.ここでは,ROMの取り扱いを学習します.(参照:MM-8000のマニュアルのLesson 6)
目次ROMはじめに
Lesson 3では,RAMについて説明しました.RAMに記憶されたデータは,電源をOFFにすると消えてしまいます.もし,全てのコンピュータープログラムがRAMに格納され,電源をONする度に,ユーザー自身が(手で)入力する必要があるならば,多くの時間が浪費されるでしょう.それゆえ,少なくとも一つのプログラム(モニターと呼ばれる)を不揮発性のROMに常駐させます.ROMのデータは,電源をOFFにしても消えまえん.ROMは, 消去可能なものと,消去不可能なものに大別できます.消去可能なROMは,紫外線を用いるなどいろいろな方法でプログラムを消します.消去不可能なROMはプログラムの書き込みは,一度限りです.MM-8000では,電気的に消去可能なROM(E2PROM:ElectricallyErasable Programmable Read Only Memory)である2816を使っています.その名(Electrically Erasable)の通り,2816と同様にプログラムの消去と書き込みができます.書き込み処理のためには,10[msec]の時間がかかります. 2816は,2000以上の1バイト(8ビット)の記憶領域があります.トータル 16[K bits]になります.これが名前の由来となっています.2816のピン番号は, 左の図のようになります. このROMのデータシートは,ここにあります. 2816のピンの役割簡単に2816のピンの役割を示します.このピンの使い方は,次の「2816の動作モード」でもう少し詳しく説明します.あるいは,データシートを読んでください. ADDRESS LINES (A0 〜 A10)2000のアドレスを指定するために,アドレス線は11本あります.210 2000 211ですから. INPUT/OUTPUT LINES (I/O 0 〜 I/O 7)アドレス線で指定されたアドレスのデータを読み書きするときに,データの入出力に使われます.一つのアドレスのデータは,1バイト(8 bits)なので,I/Oの線は,8本です. CHIP ENABLE (CE)表記の上線は,NOTを表します.いわゆる負論理と呼ばれるもの,LOW(論理:0,0V)の時にチップ(Chip)が動作状態(Enable)になります. OUTPUT ENABLE (OE)この線とCEがLOW(論理:0,0V)かつWEがHIGH(論理:1,5V)のとき,2816からデータを読み込むことができます. WRITE ENABLE (WE)この線とCEがLOW(論理:0,0V)かつOEがHIGH(論理:1,5V)のとき,2816にデータを書き込むことができます. 2816の動作モード2816のピンの役割を理解するために,その動作を説明します.ここでは, データシートにしたがい動作モードの説明を行います.ただ,データシー トを見ても「???」と思うようなところがありますので,自分で2816を動かして, その内容を理解することを勧めます. 以下に示すように,3つのピン(CEとOE,WE) の状態で,2816の動作モードが決まります.
読み込みモード(Read Mode)WEがHIGHの状態で, CEとOEをLOWにすれば,読み込みモー ドになり,2816に保存されているデータを読み込むことができます.データの アドレスは,A0 〜 A10で指定します.このモードでは,いつでもアドレスを変 えて,データを読み込むことができます. 書き込みモード(Write Mode)2816にデータを書き込むための動作は,少々複雑です.まずOEがHIGH(1)の状態で,WEとCE をLOW(0)にします.このとき,WEとCE がLOW(0)になる立ち下がりの遅い方のエッジで,2816は書き込むアドレス(A0〜A10)をラッチします.そうして,書き込むデータ(IO 0〜IO 7)は,WEまたはCEがHIGHになる立ち上がりでラッチされます.ようするに,WEあるいはCEを,HIGH→LOW(min 150nsec)→HIGHとしなくてはなりません.WEをHIGH→LOW→HIGHとする場合を「WE Controlled」と言い,CEの場合を「CE Controlled」と言います. アドレスとデータがラッチされると,2816は(1)古いデータの消去,(2)新しいデータの書き込みを10[msec]以内に行います. ROM(2816)への書き込みの処理は10[msec]以内に終了しますが,これはコンピューターにとってはかなり長い時間です.しかしながら,書き込みの処理は 2816 自身が行うため,システム(コンピューター)は他の処理を進められます.この書き込み処理の間,読み込みコマンドを仮定すると7番ピンを除いてI/Oピンはハイインピーダンス(high impedance state)になります.と,データシートには書かれていますが,私にはちょっと「high impedance state」が理解できません.ただ単に,端子がハイインピーダンスになっているだけ? テスターで調べれば分かるかもしれませんが,2816が破損するのも嫌なので,このままにしておきます.ハイインピーダンスは,配線から見ると,何も接続されていないのと同じ状態です. 出力停止モード(Output Disable Mode)読み込みモードの時,OEをHIGHにしても,読み込みモードですが,出力は停止します(I/Oピンは,全てハイインピーダンス状態).これ,どういうこっちゃ!! スタンバイモード(Standby Mode)CEをHIGHにすると,2816 は全ての I/O ピンをハイインピーダンス状態にして,スタンバイモードになります.この状態でも,TTLレベルの入力では,40[mA]の電流が流れます(電力を使います).CEがHIGHの状態では,全てのインプットピンは停止し,2816はシステムバスから切り離されます.ハイインピーダンスなので,バス(線)から切り離されたのと同じ. 消去モード(Chip Erase — High Voltage Mode)次にようにすると,2816のデータを一度に消去することもできます.CEをLOWの状態で,OEピンにVH(15〜18[V])を印加します.消去は,I/OピンをHIGHの間,標準的なバイト書き込みコマンドにより実行されます(?動作不明.データシート直訳).全ての1を含んで いるバイトが,ROMの全ての場所に自動的にかかれます(?動作不明.データシート直訳). 74HCT573このROM(2816)は,RAM 8155のように,MM-8000で使用しているMPU 8085Aに直接接続することができません.8085Aの8本のバスは,アドレスバスとデータバスが共通です.それらのバスは,8155では共通ですが,2816では異なります.そのため,8085AでROMのデータを読み込み/書き込みを行う場合には,データあるいはアドレスをラッチするICを間に入れる必要があります.そのために,「74HCT573(Octal D-type transparent latch;3-state)」というICを使います.このICの詳細は,データシートを参照をしてください.. 以下は,MM-8000のマニュアルの記述と同じです(ほとんど和訳). Lesson 3で学習したRAM(8155)では,アドレスとデータは同じバスを使います.8155のデータを読み込み/書き込みを行う場合,最初にバスはアドレスのLSB(最下位バイト)を設定します.それは,8156の内部レジスターに保存されます.そして,同じバスをデータの読み込み/書き込みに使います. ROM 2816のアドレス指定方法は,RAM 8155と次の二つの点で異なります. 第一に,2816はアドレスレジスターが無いので,外部のアドレスレジスターを接続しなくてはなりません.MM-8000では,74HCT573(Octal D-type transparent latch;3-state)を使います. 第二に,2816の方が8155よりもアドレスバスが3本多いので,メモリー空間が広がります.これらの違いがあるものの,2816は8155と同じようにデータの読み込み/書き込みができます.
以下は,74HCT573のデータシートから読み取りました. アドレスのラッチ(アドレスレジスターの代わり)に使う74HCT573の機能とピン番号は,右上の図の通りです.20ピンのICで,10番がGND,20番がVcc(5V)です.1番ピンのOEは「Output Enable」,11番ピンのLEは「Latch Enable」からの命名です. OEがLOWかつLEがHIGHの場合,D0〜D7の信号は,そのままQ0〜Q7に出力されます(transparent mode). OEとLEがともにLOWの場合,D0〜D7の信号はラッチされ,74HCT573に蓄えられます.そのラッチされたデータは,Q0〜Q7に出力されます.ラッチされるデータは,LEがHIGH→LOWになる立ち下がりの時のD0〜D7です. OEがHIGHかつLEがLOWの場合,D0〜D7の信号はラッチされますが,Q0〜Q7には出力されません.このとき,Q0〜Q7はハイインピーダンスとなっています.
ASSEMBLY INSTRUCTIONSとくに難しい半田付けはなく,マニュアル(p.6-2)の通りにすれば,この Lesson の回路は完成します. CIRCUIT DESCRIPTIONLesson 6のROMの学習に使う回路は,下の図(ROM(2816)のテスト回路)の通りです.一部,MM-8000のマニュアル(Figure 6-3)とピンの名前が異なる部分がありますが,回路は同じです. また,この回路図には示されていないですが,「TEST PROCEDURE」での動作を理解する上で重要な接続もあります.
手動でのデータの書き込み/読み込みは,次のようにします.EN ROMスイッチをup側にすることにより,2816のCEピンがLになり,ROMは動作状態となります.次に,WENスイッチをupにして,キーボードのWRボタンとWEを接続します.AD0〜AD7のスライドスイッチで,書き込みアドレスを決めます.そして,ALEボタンを押します.次に,AD0〜AD7のスライドスイッチで,書き込むデータを指定します.WRボタンを押すことで,データの書き込みが完了します.データの読み込みの場合,はじめに,AD0〜AD7のスライドスイッチでアドレスを指定し,ALEボタンを押します.その後,RDボタンを押すことで,データを読み込むことができます.LEDでの表示が読み込んだデータです.
TEST PROCEDUREROM(2816)の動作を理解するために,マニュアル(p.6-4)にしたがい次のように操作します. 1.準備ここでは,ROMにデータを読み書きする前の準備作業を行います. 電源は接続しないで,POWERスイッチはオフ(down)の状態にしておきます.動作開始前,全てのスライドスイッチはdown側にしておきます.
2.書き込み
3.読み込み
4.書き込み次は,別のアドレスを使って,データの読み書きを行います.
参考文献・WEBサイトなど |