レトロ電子工作

電子工作はじめました!
基本的な所からゆっくりゆっくり進めていきます

C-MOSレベル (プルアップの必要性) & 歴史

2019年08月31日 06時30分33秒 | 技術資料
8085Aのアドレス・ラッチのために (8212ではなく)74HC573 を使う・・・
というのは、前回 決めました。

 三菱の M5L8085AP は内部が N-MOSで 信号はTTLレベルです。ここにこのICを接続するのは、そのままではちょっとマズイ理由を丁寧に説明しておきます。
TTLレベル 出力 ⇒ C-MOSレベル 入力

 インターネット上には Wikiを始め さまざまな解説が載っていますが、中には間違った説明や、データが古い説明も 多々 見受けられますので・・・
まずは、実際に使う HC573のデータシートを眺めてみます。

電源電圧5Vで使うので、横の行は Vcc=4.5Vの所を見ます。 それも最悪値-6mA流した所を!(電圧が5V→4.5V まで低下しても 保証しますよ!とう意味で4.5V で測定した結果です。 よってここが5Vの数値)
 縦の列は、周囲温度(TA)が 25度 の所で十分なのですが、環境温度 -55°C(北極か?)~ 高温125度(月の地表面でしょうか?)でも 動くように、VOH,VOLは 最悪値の方を使ってみましょうか?

分かりやすいよう 図に すると、こんな感じ ↓

 
C-MOSの素子の 出力は、Hiの時 3.7V以上もの電圧を出す事を保証し、Lowの時は0.4V 以下にすることを保証してくれます。 逆に入力は Hiと判断するのに 3.15V以上ないといけないし、Lowと判断するには 1.35V以下にしないといけません。
 ここまではいいでしょうか? Are you understand?

TTLレベルの時と比べて、かなり改善されている。(特にLow側が) ノイズマージンも幅が増えているのがわかります。 Hi側と Low側 どちらかに偏らないよう均等にレベルを振り分けたのが見て取れますね! また、電流を出すのが弱かったTTLに比べて、C-MOSは 電流吐き出し時も(電流吸い込み時と)同じ電流を出力できるよう改善されています。

よって、LED点灯駆動をさせる時、ソースでも、シンクでもどちらでも同じ条件で使えます。(±20mA程度 流せる&取り出せる素子が多い)

 良い所だらけの C-MOS部品です。 C-MOS同士を接続する分には、そのまま繋げば良いのですが、
TTLレベルのCPUが出力の所に C-MOSをつないだ場合、どうなるでしょうか? TTLレベル図 ↓ を再掲載 :

TTLの Hiの出力は 2.4V しか保証されないのに、C-MOSの入力は 3.15V以上ないと いけないことになっています。(0.75V 足りない!)
そうなんです、そのためにTTL-CMOSレベル変換なんてICもありますが、おおげさ過ぎるので プルアップ抵抗を付けてこの場を凌ぎます。

ーーーーー
では、プルアップ抵抗は どの位の値が良いのでしょうか?

 TTLの吸い込み可能な電流は、-2mAでしたので、抵抗値 2.2K Ωだと 目いっぱいです。 よって、(クロック信号の様な 急激に立ち上がらないといけない信号を除いて)こんな小さな値を使うことはありません。
 抵抗値 4.7K Ωだと その電流の半分 約1mAなので良い感じです。ただし、抵抗値が小さいということは、これも電力を食うことになり 省エネにはなりません。 1個なら1mA でも 8本で8mA(あたりまえか? ビットが増えれば増える程 電気を食う基板になってしまいます)
 抵抗値 10K Ωだと さらにその電流の半分 約0.5mA。 22K Ωだと 約0.25mA。 これで十分。 だからこの手の値の抵抗が使われます。
 つなぐ相手(TTL ICの個数)が多ければ、この位の値でないといけないのですが、C-MOSの場合 入力はほとんど電流を消費しません。 よって、さらに倍の 47K Ωだと 約0.125mA でも 十分 電源電圧に近い所まで プルアップされます。 今回は 47K Ω-8素子の集合抵抗を使っておきます。

 このプルアップ抵抗、TTL同士の接続であれば(要は 74LS573 を使うのであれば)もちろん 必要ありません。 また、CPUが 80C85Aのような C-MOSのCPUを使うのであっても(TTL同士の接続なので)、これまた 必要ありません。 必要なのは 種類の違う素子が混在している時のみですが、
 
C-MOSレベル 出力  ⇒ TTLレベル 入力

の場合も、必要ないんです! 理由は、自分で検証してください。



ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ーーー ここでちょっと昔話・・・ 長文なので適当に読み飛ばし を!

 大昔、回路を1つ1つトランジスタで組んでいた時代がありました。
あまりに 大変なので、標準の部品を作ろうと思い立った人が居て、今の TTL等のICが出来ました。 14ピン ~ 20ピンの標準ICと呼ばれるもので、
74???  と
 先頭に74と数字を付け???の部分の番号でその種類を決めていました。

例えば、7404 は インバータ(Hi と Lowを反転させる)IC
  (頭のSNとかは 製造した会社名なので無視、最後のNは改造種類)
左下が1番ピン(この04だと7ピンx2=14ピンなので)、右下が7番ピン(この右下の端っこのピンがGND)、左上=ここでは14番ピン(最後のピン)が Vcc =つまり +5Vの電源と決められて、どの会社の製品でも同じピン配列に統一したため 大変 便利で おおいに普及しました。

 トランジスタと抵抗で作るより、かなり楽が出来たので 「回路を組む」と言えば、この「標準ロジックICを組み合わせて作る」のが 当たり前になっていました。
ーーー
 いろんな要求に答えて行くうちに この標準ロジックICの種類もどんどん増えていき(番号が600番台とかに)、しかも 動作のスピードが速いものが必要になって来て、
74F???  と
いった 動作速度の高速(Fast)なタイプが出ました。

 ただ、あまりに電気を食うので 熱っちんちんに焼ける代物。 ショットキーバリア (Schottky barrier)を使って 速いけど消費電流も少なめな、
74???  となり
改良された、
74AS???  とか、
さらに電気を食わない(Low)
74LS???  が出て
 
これが かなり普及しました。 (↑ しばらくは ほとんどこれが使われた)
その改良された、
74ALS???  も。

ーーー
 そして、時代は進み さらに電気を食わない C-MOSタイプが ちらほら登場して来ます。
74HC???  ↓ 
出た当初は、
 ○ 静電気に弱くて 壊れやすい とか
 ○ 動作速度が遅い! とか
色々あって なかなか評判がわるかったのですが・・・
(実際、素手で触って壊れる事もあったし、電源を逆差しすると かなりの確率でC-MOSのICは壊れていました)

今では、かなりの部分が C-MOSの素子に置き換わってますね。 とにかく 電気を食わない!(熱くならない) そして、動作スピードも格段に速くなっているし、何より丈夫で壊れにくくなってますね。
改良型の、
74AC???  とかも
C-MOSのICです。(とにかく C の文字が何処かに入る)

ーーー
TTLレベル と C-MOSレベルとで ここで説明したように レベルが合わないのを取り持つためのIC
74HCT???  とか
74ACT???  とか
も出ています。 (入力がTTLレベル で 出力はC-MOSレベル)

 ここまで来ると 頭の74は共通なので、通常 省略して LS04 とか HC04 と呼ぶのが一般的です。 技術者の間では・・・ プロっぽいでしょう。笑
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 C-MOSの場合、電源が最低2Vでも動作するので、乾電池2本=3Vで十分に動きます。 また 1.5Vの電池4本で 6Vになってしまいますが、その電圧でも問題無く動きます。(TTLは通常 Max 5.5Vまで) いっその所 C-MOSだけで回路を組みたい所ですが「レトロ」電子工作では、そうもいきません。

 電池駆動が当たり前になっている現在、さらに電気を食わなくて かつ 速い素子が出て来るんでしょうね。

  ICの歴史・・・ 雑学でした。

  それにしても こんな専門的で長い話
  誰が読むのだろう? 興味ある人など居るのかな?? 😂 



8212 の代替(アドレス ラッチ)

2019年08月30日 06時30分09秒 | 8085
8085AのCPUボードを作ろうとした場合、
 本体のCPU以外に 必ず 使わないといけない ICが1個だけあります。 それは何でしょう?
 8ビットのラッチ(記憶)ができるICを使わないといけません。 なぜなら、8085Aは 「データバス」と「アドレスバス(下位)」が同じピンから(時間差で)出ているからです。
 例えば、今回使う 三菱のICであれば   ↓ 「M5L8212P」という型番、
例えば、NECであれば  ↓ 「uPB8212C」という型番。  これが  まだ手元にあります。 貴重な1個!

 要は、8212という本家IntelのセカンドソースのICが 通常 使われて来ました。 従来は。(IC名称:8ビット INPUT/OUTPUTポート となっています)

参考のため、TK-85の回路図を眺めてみましょう。 
中央の四角が CPUの 8085 です。(赤枠部分 ↓  が8212)

回路図が 手書き なのが 時代を感じさせます。 (笑)

 他人の回路図を見ていて、「回路設計」と言えるのか? と 指摘されそうですが、楽して確実に動かすためには 何でもします。 昔の回路を読むのは、むしろは良い勉強になります。


「マルチプレックス」と云って、ICのピン数を減らすため 同じピンに 違う信号を出して、外部の回路で切替させる方式をとっています。
 「ALE」という信号が Hi の時に 下位のアドレス8ビットが出力されるので、これをラッチしているんですね?  それと、/DMAという信号が入った時にラッチ出力をカット(ハイ・インピーダンスに)して、他ICのアドレス出力が有効に使えるようにもしています。(← これを忘れている回路が多い)

 ダウンロードした 三菱の 8085A データシートの、

8085Aの すぐ次のページに 8212の資料が載っていました。

 英語でよくわからん・・・

11番ピンの STB(Strobe:ストローブ)信号が Hi で データを取り込んで、Lowになったらラッチしたままになるのだと思うが、3ステート(=Hiインピ)にする条件がよく分からない。 (DS1と2のANDなのかORなのか?)


こんな不親切な表を見るより、内部の回路(ブロック・ダイヤグラム)を見た方が よほど分かりやすかったりする。

 これでも ごちゃ ごちゃしていて分かりづらいので、TK-85の回路の通り、
1番、2番ピン(MD信号と /DS1信号)を 常にLowにした シンプルな回路に書き直してしまえ!
 ↓

これなら分かり易い! やはり STB(=Hi)でデータ取込、DS2がHiの時だけ DATA Outputを出力、これがLowになったら 出力をカットする・・・ これだけ!

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
なぜ、こんな面倒な確認をしているかというと、
 8212というIC、 すでに 入手しづらく 結構 高価なんです。 現在では。
 さらに、消費電力 800mW (5Vなら 160mA)という「大飯食らい」。 CPUと同じくらい電気を消費し、ICが熱くなるんです。(MZ-700のキャラクタジェネレ―タを作る時 使ったことがあるので分かる)  で、これは使いたくない。(持ってはいますが 使うのもモッタイナイ) 代わりのICを探すと・・・

 74HC573 っていうのがありました。↓

(HC273でも良いのですが、ピンの並びが気にくわない!)
それと、74HC574という Hiへの立ち上がりエッジでラッチしてくれるICもあるので、これでも良いいのかな?と思ったのですが、駄目でした。 ALEがHiへの立ち上がり時は ↓ まだ アドレス信号が不安定でした。(エッジ取込ではノイズに弱いし) Lowエッジに反転させれば良いけど面倒。

危ない、あぶない・・・

HC573の /OE(Outputイネーブル)信号に HOLDA信号を接続しておけば、CPUがHALT状態の時や DMA転送の時などに アドレス出力がカットできます。 結果 ↓ こんな感じ

 古いTTLレベルのICから、HCタイプを駆動するのには 入力にプルアップ抵抗も必要でしょう。 47K-8素子を付けておく事にします。

  ようやく、設計 らしくなって来ました。 よね?


逆挿し防止 機構 の 工夫

2019年08月29日 06時30分28秒 | 回路
基板上のコネクタとケーブルを接続する際、
 ① フラットケーブル用のコネクタ ↓ や

 ② ボックス型のヘッダー ↓ なら、

 逆挿し防止用の凹み(黄色の矢印部分)があるので、絶対に逆に挿すというミスは起こりえません。 囲まれているので ずらして挿してしまう事もありません。
 ただ、今回 使ったコネクタの様に なんの囲いも突起もないヘッダピンだと、逆にも 横に1ピンずらしても挿せてしまいます。 できるだけ そんなミスを防止するために、こんな工夫をしています。

■ 1つ目の工夫は:
S1モジュールの場合、1番=+5V、2番=GNDなので、その反対の最後のピンを「空きピン」にする・・・という 前にも説明した通りの方法です。

基板側 回路図:
 20ピンの 「S1モジュール」用 ピンヘッダ ↓ が 2本並んでいる状態

ここに アドレスライン(A0~A15をつなぐ予定)
最後の1ピンだけ「空き」にしておけば事は足りるのですが、それだと19ピンになってしまい 19ピンのソケットは入手しずらいので、20ピンの物を使用し、最後の2ピンを使わないようにしています。
  逆に挿しても 電源が供給されないので壊れません。

ケーブル側も こんな感じ ↓

 ここで、19番の所に何か詰め物をして、ピンが入らないようにしておけば完璧です。 「ズレ挿し」も出来なくなります。 (ただ、今回はやっていません。 半透明なのはホットボンド)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■ 2つ目の工夫は:
 20ピンのL字コネクタで、20番目の穴に詰め物をして (切ったピンで可)これで 逆挿し防止とする工夫です。
 基板側:

 これを回路図で見ると、↓ こんな感じ。

できるだけ、最後のピンを「無効ピン」とすることにします。

ケーブル側は、↓ こんな感じ。

20番目のピンを抜いておく か↑ 、または 、

最終ピンをカットしておき、このカットしたピンを メス側に挿しこ込んで接着固定しておくと良い。

ケーブルの配線図は、↓こんな感じ。
 20ピン(10x2列)ヘッダから カラーすだれ ケーブルで 20ピンソケットにつなぐ。
 
19番、20番を使わず、空けておき、かつ 20番にピンを詰めてあるので、この専用の手作りケーブルしか 挿す事ができません。 
 これで、ボックス型の(多少)高価なコネクタを使わなくても 逆挿し、ズレ挿しを防止する事が出来ます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ちなみに
 通所はケーブル側に メスのソケットを使う事が多いのですが、今回の様にケーブル側にピンタイプの部品を使う際、必ず 一度 「基板受け」をしてからケーブルをつないだ方が良いです。 
 
そうでないと、ピンだけ抜けたり ヘッダが折れたりしがちです。
これは、
 ケーブル側にピンソケットを使う時の同様です。
小さな基板で良いので、一度 基板にハンダ付けをしてから使わないと かなりの確率でピンが抜けます。

 1番ピンの目印 ↑ 基板角をカットするのも お忘れなく!

動作確認が全てOKだったら、基板とケーブルのハンダ付けした部分を「ホットボンド」で固めて補強しておくと長持ちします。 何度も 触っているとここにストレスが生じて、線が切れたり、ハンダが外れたりします。


  こういった、チマチマした内容は ここまでにして
  いよいよ 回路設計に入ります。


16ビット 入出力 テストBOARD (改)

2019年08月28日 06時30分38秒 | 電子工作
「I/O BOARD」の改造(拡張)が、
 完成しました。 その 完成写真が ↓ こんな感じ。
 ” 前と変わんね~じゃね~か! ” と 怒られそうですが、 (笑)
横から見ると 違いが分かります。 ↓ 


この追加基板で、何が変わったか? 
具体的な使い方を写真で解説します。 (接続方法を 2種類 増やしました)

ーーーーー
① 20ピン x 2列 の ピンヘッダーに直接 、挿せる
下の増設基板が ↓ こんな感じで
コネクタが3個 追加されている。 この内の左上にある40ピンコネクタを さかさまに使うと、


孫基板として、そのまま(挿すだけで)使う事が出来る。(孫基板が大きすぎて ちょっと怖いが・・・ 20px2列なら、なんとか固定される)

---

DIPスイッチをすべて ON すれば、A0~A15のアドレスはすべてLowになり、確認LEDは 全て点灯する。 (アドレス 0000h を出力できる)

配線のテストも兼ねて DIPスイッチを ON/OFFし、(対応する)LEDで点灯/消灯の確認を行う。 右側DIPを全てONで、右側LEDが全点灯。

 全ビット確認 ⇒  OK (配線は 一発でミスなく OKでした)

ーーーーー
② 20ピン(ヘッダ)ケーブルにて 個別に接続できる
 LED側の16ビットと、DIPスイッチ側の16ビットを 個別のケーブルでつなげられるよう、↓

 こんなのを作りました。↑

ケーブルの先端は、20ピンのピンソケット(S1モジュール仕様なので、ここに電源も通っている… ので ケーブルをつないだ だけで使える)
 19,20番ピンは「空き」にしているので 逆挿ししても壊れない。

こんな感じ↓に、少し離して使える。 (DIPスイッチ操作が楽だし、LEDも見やすい)
 ここでは「2つのソケット」を両方 いっしょに挿しているが、
 LEDのケーブルと、DIPスイッチのケーブルを 独立させて分けたので、「入力=LED」と「出力=SW」を別々に使える。(片方だけでも使える)

アドレスの向き(MSBとLSBの位置)をまだ決めてはいないが、例えば このスイッチの設定だと(左を上位:MSBとする)、

 A55Ah という アドレスをスイッチで出力し、(1010.0101.0101.1010b)
その状態がLEDで確認出来ている。


 分かるでしょうか?
 (これまで通り ターミナル ブロックでの配線接続も出来ます。 入出力各1bitづつ だけですが) 

 これで、ターミナル ブロックの配線を いちいち 付けたり、外したりの
 作業が要らなくなる。 挿すだけ・・・ 楽ちん・・・

 元来、面倒くさがりなもので!




回路図の描き方

2019年08月27日 06時30分08秒 | 回路
電子工作を楽しむために、ぜひとも揃えておきたい、使えるようになっておきたい物の1つが、「回路図CAD」です。
 私が 普段使っているのは、水魚堂 さんのフリーソフト
    BSch3V (ビー・スケッチ) です。


 インターネットのアドレス  URL:

このソフトには 本当にお世話になっていて、作者の岡田さんには 感謝の言葉しかありません。 使い方が非常にシンプルで、それほど説明 無しでも 使いこなす事ができるようになりましたし、ちゃんと「使える」回路図 専用のCADです。 部品も自分で作る事が出来るので、かなりの数の部品を作って、使っています。 (部品作成は LCoV.exe:とりあえず この2つの使い方をマスタすれば 大抵の回路は描けます)
 Win7でもWin10でも 問題無く使えるし、これまでにバグらしいバグに遭遇していない とても完成された優秀なフリーソフトといえます。 とにかく、良い仕事してます。(笑)

現在(令和元年)の最新バージョンが、BSch3Vは、0.83.01 です。
ここ ↓ から ダウンロードできますし、

使い方の簡単なマニュアルも ここにあります。

このCADを使っての、私なりの回路図の描き方を書きたいと思います。

それには何か具体的な「題材」があった方が 分かりやすいと思うので、現在 改良・加工している 「I/O BOARD」を例に使いたいと思います。
これを作った方も、趣味で(なのか?) 電子工作をされていて、基板を(ちゃんとしたアートワークで)作成し、ヤフオクで生基板を売っています。
インターネットで回路図まで公開してくださっているので、非常に助かります。 回路図は ↓ ここ。

 URL:

 この人が使っているCADは、CadSoft社の「EAGLE」らしく、これはアートワークで基板化するのに優れています。 実際に基板を発注するのは「FUSION PCB」という会社だそうです。 今度、私も使ってみたい!
 (さらに ブログやWebページで 製作記事を公開してくれていますし、リンクも自由に張って良いとのことです。 こういったボランティア精神の高い方がいるのは 本当にありがたいことです)


この回路図を BSch3Vを使って、私が書きなおすと こう ↓ なります。

おそらく  細かくて見えないですね? 画像を拡大して見えれば良いのですが(・・・ 画像ファイルを何処かに共有する方法は gooブログには 無いのかな?)
 これを 部品実装した 基板の実物↓


ともかく、何が違うかと云うと・・・
私の場合は、部品の実体配置に できるだけ忠実に回路図を描いている・・・ ということです。
  部品番号から必死に部品の位置を探さなくとも、だいたいの配置が回路図と実基板とで 合っているので、動作確認の時も楽が出来ます。

 ”先に 実物があるから 回路図を合わせられるだけでは?” と クレームが入りそうですが、私の場合 回路を基板にする際は、使う部品の形・大きさをコピーにとって、それを切り抜き 基板に配置して 位置を決めながら 回路図を設計します。 だから、新たに設計した回路でも 部品配置と回路図の部品の位置がかなりシンクロします。
 アートワーク設計自体は それ専門のプロに任せるのですが、そのアートワーク屋さんに 回路図をもって 部品配置のデザインの意図を伝えられるように考えて CADを使っています。

 そうすると、「部品の陰になってLEDが見えづらい」なんて事は避けられますし、基板の大きさに部品が入らない・・・なんてことも まず 起きません。

-----------------------------------------------------------------------------------------------
 Appleの創業者:
スティーブ・ジョブズ 曰く、
 回路基板の見た目が 美しくないのは、回路の設計自体が美しくないからだ・・・ 「この基板は 見た目が 美しくないから、アートワークをやり直せ!」 と言ったとか・・・
-----------------------------------------------------------------------------------------------

 ユニバーサル基板を使って、手作りで試作の回路を組む、手半田で配線する、そんな場合でも 
 先に回路図を描いておき、それを A3の紙に印刷し、配線完了した線を 赤い色鉛筆でなぞって消して行きます。 そうすれば、「配線忘れ」や「配線ミス」がかなり 防げて、1発で思っていた通りに回路が動きます。
 今回、この I/O BOARDを拡張し、「S1モジュール」っぽく改造します。
ただ、コネクタを追加するだけなのですが、回路図を描いてみたら 結構大変そうです。 こんな感じ ↓ 

 中央の点線の中が オリジナルの「I/O BOARD」で、その周りの回路が下基板に 作る 「変換コネクタ」との接続部分です。 (ますます 細かすぎて 見えないかもしれません)

 とにかく、もう少し 使いやすくしたいと考えています。
 ただ、配線の手間がすごい・・・
 最初から 自分 で 全部 手作りで作った方が早かったかもしれない。(笑)
 
 回路図 欲しい人は 連絡ください。 
 私もボランティア精神で すべて公開します。

ーーー  昔話を少し・・・
 昔は、回路図を描くのに OrCAD(オア キャド)という 有償のCADを使っていました。 十数万円もする高額なソフトで、個人ではとてもでは買える代物ではありませんでした。 それもプリンタポートやシリアルポートに「アクセス・キー」なる装置を付けないと起動すらしない=PC1台でしか動かせない、プロテクトがガチガチのソフトだったのです。
 その後、Protel(プロテル)という回路図CADも使いました。 これも 結構な金額がするソフトです。 しかも 高機能な分、使い方がなかなか難しい。
 それが 今では、BSchをはじめとする、高機能で十分 実用的に使えて、かつ フリーで入手できる 回路図CADがいくつもあります。

 ・・・ 良い時代になったものです。