• ベストアンサー

電気回路の設計

Z80CPU(ザイログ社製)を使って64KバイトのUV-EPROM(TMS27C020)とSRAM(TC55257DFL)、あとは適当なI/O(M66500FP)を使うだけのマイコンを設計しています。メモリーマップの電気的な決め方とソフト的な決め方を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • joshua01
  • ベストアンサー率66% (222/333)
回答No.2

どの程度の知識をお持ちかわかりませんが、とりあえずお話してみましょう。 メモリも手元に資料がないので容量もわかりませんが、型番から推定して、ROMは2Mビット(256Kバイト。アドレス線が18本)、RAMは256Kビット(64Kバイト。アドレス線が16本)かと推定します。 Z80は、メモリ空間が64Kバイト(アドレス線が16本)しかありません。 慣例では、メモリ空間は、0000~7FFF(32Kバイト)をROMに、8000~FFFFをRAMに割り当てます。 この場合、ROMのアドレス線の上位3本とRAMの上位1本は0固定(グラウンド)とし、残りのA0~A14はz80の同じ番号のアドレス線につなぎます。CPUのA15は、そのままROMのCS(バー;負論理)につなぐとともに、NOTを介してRAMのCS(バー;負論理)につなぎます。これで、A15が0(アドレスが7FFF以下)のときはROMが、1のときはRAMがデータバスにデータを出しますね。 I/O用のチップもわからないのですが、Z80はアドレスバス下位8ビットがポートアドレス(256ポート)となりますので、例えば4ポートを持つI/Oチップの場合、A0.A1をI/OチップのA0.A1につなぎ、残りの6本とI/OREQ(バー;負論理)をNOTして、7入力NANDにつないでその出力をCS(バー;負論理)につなぐと、00H~03HのアドレスのI/Oになります。おっと、当然R/W'もつないでね。 なお、慣例として、次のようなアドレス割り当てをする方が多いようです。 0000H(ROM)~;単に0100Hにジャンプとだけ書く。 0100H(ROM)~;プログラム本体。 (これらの不自然な配置は、z80の「割込機能」を使うと、勝手に0038H付近にジャンプしてしまうので、この周辺を空けておくため。) 6000H(ROM)~;BIOSなどのサブルーチン類 FF00H~FFFFH;I/0のイメージ(写し)。特に出力は、CPUが自分で命令しておきながら、今どうなっているのかわからなくなっちゃうので、I/Oに出力したら、同じデータをこのアドレスに書き込んでおく。 また、意外と面倒なのがI/Oチップの初期化です。CPUは、電源を入れれば(リセットで)勝手に0000Hから命令を実行し始めますが、最近の高機能のI/Oチップは、あらかじめ指定されたアドレスに決まった命令を書き込まないと、出力としても入力としても使えないことが多いのです。このため、0100H(プログラムの開始直後)付近(又はサブルーチン領域)では、かなり長いプログラムをI/Oチップの初期化コマンドのために作るはめになっています。

sametan
質問者

お礼

有難う御座います。初めての設計なので、多いに助かりました。

その他の回答 (3)

  • joshua01
  • ベストアンサー率66% (222/333)
回答No.4

joshua01です。 albertparkさんのいわれるとおり、RAMのFFFF付近は、特に指定しない場合のスタッカに使ってました。自分の作ったもののマップをみたら、I/OイメージはF000H~F0FFHを使ってました。 各種変数はF100H以降に使ってました。

回答No.3

電気的要件: ・複数のメモリICが重複するアドレスをつくらないこと。 ・デコードIC(または直接接続)で簡単にチップを選択できること。 ・デコードを簡単な回路ですませるにしても、I/O空間との重複も避けること。 ・メモリマップドI/Oを採用する場合は、そのアドレス領域にメモリを配置しないこと。 特に、I/Oポートについては、上位8ビットにCPUのAレジスタあるいはBレジスタの内容が出力されることにも留意。 ソフト的要件: ・CPUはリセット後に0000Hから実行するので、この部分をROMにすること。 ・0000H~0038HはRST命令、0066HはNMI割込みが使用します。 ・リセット後のスタックポインタの値は0000Hです。このため、最初にstack-inされる内容は、FFFEHに格納されます(変更すれば別ですが)。 ・バンク切替えによりメモリ空間を拡張する場合、特にROMを切り替える場合は切替えを行うコードの配置に注意すること。 くらいだと思います。 このため、一般的には↓の方の回答のような配置になりますね。 RAMについて明記してないようですが、 最終アドレス(FFFFH)がRAMになるように配置するのが普通のようです。 32Kバイトなら8000H~FFFFH、16KバイトならC000H~FFFFHとか。 これは、一般にスタック領域を~FFFFHに置くことによります。

sametan
質問者

お礼

有難う御座いました。よく分りました。

回答No.1

割り込みベクタがある下位アドレス側にROMを持ってくるのがよいと思う。 しかし、Z80のメモリー空間は64KBだから、メモリーをフルに使用しようとすれば、アドレスバスとCSに細工してバンク切換か? I/Oはメモリーと別空間にあるので特に気にしなくても良い。

関連するQ&A

  • Z80PIOには「RDピン」しかないのはなぜ?

    http://tech.nikkeibp.co.jp/it/article/Watcher/20070515/271113/?ST=developitp_leaf_index ↑「講師ヤザワのセミナー日記[14] 半日でマイコン作成を体験」のサイトに載っているZ80マイコンの回路図の中にある、メモリーに相当する「TC5517」と、I/Oに相当する「Z80PIO」のピンをよく見ると、メモリーには読み込み・書き込みができる「RDピン」「WRピン」 この2つのピンがありますが、Z80PIOには「RDピン」の1つしかありません。その代わりに、「0」「1」で読み書きを区別していますが、なぜTC5517には読み込み・書き込みができる「RDピン」「WRピン」の2つのピンがあって、Z80PIOには「RDピン」の1つしかない構造になっているのでしょうか? 1つのピンで区別できるようであれば、TC5517にある「RDピン」「WRピン」の2つのピンではなく、一つのピンで十分できると思いますが、なぜTC5517には「RDピン」「WRピン」の2つのピンがあって、Z80PIOには「RDピン」の1つしかないのでしょうか? 教えてください。よろしくお願いします。

  • ◆古いCPUやICの販売店舗について

    ◆古いCPUやICの販売店舗について zilog社が出した初期のZ80(白いDIP)や紫のUV-EPROMなどを店頭や通販で取り扱っている店舗は、どこにあるのでしょうか? もはや、古すぎて骨董品扱いなのでしょうか。できれば、TK-85なども欲しいのですが、よろしければお教えください。秋葉原の有名店ではZ80やTK-85は見あたらなかったと思うのですが、骨董品扱いであれば、そのような店もお教え頂ければ幸いです。主に昔のマイコンに触りながらにやにや学習するのが目的です(現在は一般的な黒いDIPのZ80キットでカチカチやってます)。

  • 経験5年 回路設計者のレベル

    私は回路設計者として、もうすぐ5年が経ち、 そろそろスキルアップを目指して転職を考えております。 27歳、男性です。 今の会社では理化学機器の電気設計担当として、 デジタル、アナログ回路設計、ハーネス設計、EMC試験、 製品評価、生産管理、製造上の不具合対応などを やっています。 社内の設計者はとても少なく、 電気設計の担当者レベルは私1人で、唯一の経験者は 上司に1名いるのみです。(50代半ば) しかしあまり回路には詳しくないどころか、 業務そのものが適当すぎる人物です。 一体、会社で30年間何をやっていたんだろうという感じです。 電気設計に関しては、ほぼ独学でこなして参りました。 しかし、回路を設計するといっても、レベル的には20年位前の 回路の一部を変更するようなものばかりで、新規に回路をつくったとしても データシートの引き写しが精一杯です。 デジタル回路はマイコン周辺回路のロジックICを見直したり、 抵抗やコンデンサの定数を見直すようなレベル。 (マイコンも10年位前のままです。エミュレータ等が高い!といって 会社は買ってくれません。全然進歩が無いのです・・。) アナログ回路は、オペアンプの基本回路~ADCに渡すまでのもの。 これらも、他に回路設計者がいないため、下手に昔から実績のある 回路を変更できず、ずっと同じ回路です。 (思い切って変更したいなという気持ちはあるんですが、 他の人に良い顔はされません。アナログの場合は仕方ないかもしれません。) また、あまり業績がよくないため、開発費は少なく、 基板を改版していくチャンスは滅多にありません。 どうしても必要な変更が出て、基板の原版代が何十万となろうものなら 目先の金しか頭に無い常務がやってきて目くじらを立てます。 私は製品の改良とともに基板も改版していくべきだと思うのですが・・。 さらに、基板が出来上がったら単体評価、システム評価と進み、 デジタル信号のタイミング検証、波形の品質確認、消費電流確認・・・etc かなりの項目を評価すべきと思うのですが、 社内には、基板なんて動きゃいいんだ!という考えがあるようで、 評価すらさせてもらえません。他メーカの方からすると異常に思われると思います。 (EMCなどはやるようになってきました。) 私は一人前の回路設計者になりたいと考えておりまして、 今いるような会社ではなく、もう少しちゃんとした経験を積める会社は ないものかと、転職を考えたわけです。 しかし、上記のような会社に居ますので、 果たして世の中の経験5年の設計者と比べて 同等なのか・・・。悩んでしまいました。 求人にある経験3年以上などを見てしまうと、 私の経験5年で大丈夫なのだろうかと、尻込みしてしまいます。 長くなりましたが、ここで質問です。 <質問> 皆さんの会社にいらっしゃる、経験5年程度の回路設計者は、 どの程度の設計が出来るのか。また、日程管理や部下のマネジメントなどの 能力はどのくらいあるのかを教えてください。 よろしくお願いいたします。

  • 簡単な電気回路の設計

    現在、弁理士と相談しながら特許出願の申請準備しております。 ところが、その弁理士は機械関係が専門なので、電気回路については、こちらの方で準備してくれと言われました。 仕組みは、AというスイッチをONにするとモーターが稼動し、Bのセンサーで信号をキャッチすると停止する、というものです。 また、同じシステムですが、AのスイッチONによって、モーターが一定の回転をして停止するという仕組みです。 素人考えでは、とても簡単な回路図になるはずですが、いざ、回路図を書いてもらおうとすると、誰に頼めばよいのやら、検討がつきません。 インターネットで数社に見積を頼みましたが、えー!!と言うほどの金額を提示されました。 どなたか格安で回路図を書いてくれる人(会社)はご存じないでしょうか。ご教授ねがいます。 ちなみに冒頭の弁理士は、なんでもかんでも引き受けるのではなく、得手不得手をはっきりさせるなど、信頼しております。

  • 電気や回路設計の入門書を教えてください!

    この度、業務でシーケンス制御を扱うことになりました。 しかし、電気や回路については全くの素人です。 そこで、有識者の方にお伺いしたいのですが、 次のような素人質問が解消できるような入門書をご存じないでしょうか?本屋で探しても入門書は中々見つからなかったもので、 何卒よろしくお願いします。 ・電気図面の解読  (COM?P24?N24?) ・回路や接点、信号について基礎知識の習得  (リレー?無電圧接点?ドライオープンコレクタ?DC24V入力?) ・電源やブレーカの選定方法  (複数の機器に使用する電源の選び方?NFBとは?

  • 電気回路のスイッチの設計について

    こちらカテゴリに質問して良いものかも分かりませんが、 しっくりくるカテゴリが見当たらなかったのでこちらに質問させていただきます。 --------------------------------------- 4つの端子A,B,C,Dがあります。 A○     ○C B○     ○D 以下の3通りの端子の接続の仕方を考えます。 (1)BD,CDを接続 A○     ○C        ┃        ┃        ┃ B○━━━━━○D (2)AC,BDを接続 A○━━━━━○C B○━━━━━○D (3)AC,CDを接続 A○━━━━━○C        ┃        ┃        ┃ B○     ○D これら3通りの接続の仕方を3段階のスライドスイッチ1つで切り替える方法はあるのでしょうか。 もしあるのでしたら、スイッチの配置箇所や配線の仕方を教えて頂けると助かります。

  • 電気回路の設計図

    パソコンでレポートを作成する際に電気回路の設計図を用いるのですが、わざわざペイントで設計図を書くのは時間がかかるので、楽に回路の設計図を書けるソフトを探しています。何かいいソフトはないでしょうか。有料でも構いません。 パソコンのOSはWindows 7で64bitを使用しています。

  • 電気回路設計のプロセスについて知りたいのです。

    まったくの初心者ですが、 電気回路を作る場合に、具体的にどのような順序で考えるのでしょうか? 適当な本が無いか探したのですが、「基礎理論」→「〇〇回路の話」→「完成した回路図」(たとえばラジオとか)、という内容のものは見つかるのですが、私が知りたいのは、「完成した回路図」をどうやって書いているのかということなのですが・・・。(どうもワンステップ飛んでるような気がして。) ごくごく簡単な回路を設計する手順を教えてくれる書籍などありましたお教えください。 よろしくお願いします。

  • なぜ「入力」「出力」の区別しなければならないのか?

    「コンピュータはなぜ動くのか 知っておきたいハードウエア&ソフトウエアの基礎知識」書籍内の「第2章:コンピュータを作ってみよう。」内の「メモリーとI/Oを区別して入出力する仕組みを配線」(P42)のところで >メモリーやI/Oに対してCPUが入力と出力のどちらを行うのかも区別しなくてはなり>ません。そのために使われるのが、Z80 CPUの(Read=入力を意味し、入力動作で>0になる)ピンと(Write=出力を意味し、出力動作で0になる)ピンです。 ↑このように記載されていますが、この >「メモリーやI/Oに対してCPUが入力と出力のどちらを行うのかも区別しなくてはなりません。」 ↑なぜ「入力」・「出力」の区別が必要なんでしょうか? これはつまり、電気信号が衝突してしまう(いわばショート)を防ぐために区別する必要があるのでしょうか? わかりやすく教えてください。よろしくお願いします。

  • 回路設計者について

    地方国立大学の工学部に所属している、2回生の学生です。 現在、将来の進路について考える中で、回路設計者とプログラマに興味を持っています。 そこでいくつかお聞きしたいことがあります。 1. 回路設計者になるために勉強しておくこと  回路設計者になるために、今のうちから勉強しておくべきことを教えてください。 一応、個人的にPICマイコンを使った回路は設計できますが、設計といってもすでにネットや本に書いてあるような回路から、必要な機能をパズルのように組み合わせることしかできません。 ラプラス変換などの計算をして一から自分で設計することができないのですが、どういう手順で学んでいけば、そういう設計ができるようになるのでしょうか。 2. 基本情報処理技術者の資格  現在、プログラマを目指すか、回路設計者を目指すかで悩んでいます。 そのため、プログラマの道に進んでもいいように、3回生のうちに基本情報処理技術者の資格を取っておこうと考えています。 ただ、もし回路設計者になりたいと思ったとき、この資格は邪魔にならないでしょうか。(この資格を持っていることで、希望が回路でもプログラム担当に回されないか) 3. 回路設計技術者のやりがいについて  この職業をやっていて楽しいこと、面白いこと、やってて良かったなと思うことなどがあれば、ぜひ教えてください。 4. プログラマのやりがいについて  3の質問と同じですが、この職業をやっていて楽しいこと、面白いこと、やってて良かったなと思うことなどがあれば、ぜひ教えてください。 以上、長々と申し訳ありません。 どれか、わかるものだけでも教えていただければ嬉しいです。