まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

TRS-80

TRS-80修繕仕切り直し

 さて、しばらく間が空いたがTRS-80の修理を再開する。その前に今回の方針。

 現象としては、Z80が動作するとビデオ出力の水平方向が乱れる。

TRS80HDRVSHIFT

 水平同期信号は LS157 Z43-9 CHAINクロックをZ65で8分周した後、Z50で14分周してHDRVが作られる。これはLS93 Z50-11 ピン。
 表示されるデータは2つのLS166 Z10 キャラクタ / Z11 セミグラフィックスの出力のOR。このシフトレジスタ用のクロックはSHIFTで、 LS157 Z43-4 。これはMODESELによって原発振10.6445MHz(64文字モード)かその半分(32文字モード)に切り替わる。
 水平方向にゆらぎが生じるということは水平同期信号と表示データのタイミングがずれてしまうためと考えられる。これはSHIFTとHDRVのタイミング差だが、HDRVの元はCHAINなので SHIFTとCHAINのずれがCPUのバス駆動によるなんらかの原因で発生するようだ。
 CHAINはSHIFTクロックを受けたLS92 Z58 で生成されるので、このあたりに絞っていじってみる。
具体的にはLS92 Z58のソケット化、ノイズ対策、10.6445MHzの2倍のオシレータからLS74で二分周して安定した原発振クロック信号を与える、など。

 ノイズ発生源としてはZ80のアドレス/データ/制御信号だが、アドレスバスと制御信号は常に暴れているのでこのあたりから対策する。LS367出力にダンピング抵抗、またはメッキ線でバイパス、これでDRAMの駆動が苦しいと考えられれば32Kx8のSRAMにリプレース、など。

 そんな感じで。

TRS-80 model1 ノイズ源を探して

 さて、あとはどこを調べようか。

 キャラクタやセミグラフィックスのデータはZ10,Z11のLS166でSHIFTクロック信号によりドット単位で出力される。このSHIFTクロック信号はZ9(LS04)で駆動される。元はZ43の出力で原発振の10.6445MHz(横64文字)またはその半分(横32文字)。
TRS80_shift

 そこでZ9-pin9をピン上げして10.6445MHzのオシレータを直結した。SHIFTクロック信号が揺らいでいればこの構成で非同期ながら画像は安定するはず。

 結果。
P_Oct14_210248

 キャラクタ表示が一部抜けるのは非同期だから問題ないがノイズ源はここではなさそう。SHIFTクロック信号を元に戻す。


 さて次はどこを見るか。アドレス線を疑ってみよう。ビデオ回路はLS93カウンタが生成する周期的なアドレスとZ80からのアドレスをLS157で切り替えてVRAMに送っている。
こんな感じ:Z80のアドレス→LS367→LS157

(1)LS157のZ80アドレスを受けている箇所のピン上げ→変わらず
(2)Z80のアドレス信号をピン上げ→変わらず
(3)LS367をすべて外すのはたいへんなのでZ22(A3,A2,*IN,*OUT,*WR*,RD*)のみ。pin1を上げてdisableに→変わらず。

う~ん、と基板になんとなく触れたら画面が揺らぎリレーがジジジジと動いた。何?
P_Oct15_204736

 触れたのはカードエッジコネクタのpin12でOUT*。これは先ほどのZ22の出力で、これは基板内ではZ25のpin9(LS32入力)にしか行っていない。確認のためピンセットでカードエッジpin12、Z25-pin9に触れても同様。リレーが暴れたのはアドレス線をピン上げしていたせいでリレーのアドレスデコーダが有効になっていたせい。
 基板内では一対一で繋がってるOUT*信号。ここなのだろうか。

つづく。


TRS-80 model1 クロック周り若干の改善

 ビデオタイミングを生成している4個のLS93(Z65,Z50,Z12,Z32)だが最後に交換したZ65でこれまで気になっていた箇所が改善した。

 これまではZ80のリセットを解除してバスを動かすとこのようにランダムなVRAMの表示に左下から右上に向かって斜めの線みたいなのが表示されている。
P_Sep22_054749

 リセットをかけた状態だとこのようになる。斜め線はみられない。
P_Sep22_054744

 Z65のLS93はタイミング生成の上流にある。これを交換したら斜め線は表示されなくなった。
なんで上流から交換して確認しなかったのかは反省だ。基板での配置上やりやすいところから交換していったせいだ。あとはLS93のうち14分周(Z50)、12分周(Z12)、11分周(Z32)をやらせている3入力ANDのZ66(LS11)を交換してみたが変わらなかった。
 後日確認したらまた斜め線が出ることがあった。原発振のオシレータをHCU04によるもともとの水晶による発振に戻したりと組み合わせにより出たりでなかったりする。現在はHCU04とLS93、LS11をそれぞれHC93、HC11に交換している。

 ついでに確認のためZ53(LS132)をソケット化する。DBIN*、DBOUT*をピン上げしてデータバスを殺す。動作確認の結果、アドレスバスが動いていると画像表示に影響がでることがわかった。これはある程度予想はできていて、Z80が暴走状態だとほぼフェッチ動作のみでメモリライトのようなよそに影響を及ぼすようなアクセスはほとんどないだろうということ。

 ではアドレスの影響はどこで受けているか?図面から見るとビデオタイミングで生成しているVRAMへのアドレスとZ80からのアクセスを切り替えている3個のLS157(Z64,Z49,Z31)が怪しいが、これらを交換しても現象はかわらず、電源ON時に画面が乱れる。

 というわけでまだ完全な解決には至っていない。

 つづく。

TRS-80 model1 VRAMの交換

 さてVRAMだけど出力波形がおかしいものがいくつかある。VRAMに使われているのは1Kx1bitの2102。DinとDoutは分離されている。このDoutと行先のZ27(LS175)、Z28(LS174)の受けを観測。

2017TRS80VRAM-NG

 こんな風に3Vスイングするところを時々半分しか上がってない箇所がある。Z46とZ48の2つがおかしかったのでこれらを交換。2102または21L02はebay経由で取り寄せた。



TRS80VRAM


 これらを交換しても電源ON時に画面がおかしくなる現象は変わらなかった。

つづく。

TRS-80 model1 原発振の交換

 画面がおかしいのは原発振のクロック10.6445MHzのジッタのせいではなかろうかと疑ったのでここを汎用ロジックによる水晶発振器の回路ではなくオシレータに交換してみることにした。ただし10.6445MHzといった半端な周波数の発振器はない。色々探したら三共社という所がプログラマブル発振器の書き込みサービスをやっており、個人向けもOKだったのでお願いしてみた。だいたい一週間くらいで着荷。あらかじめ変換基板を用意しておいたのでこれをTRS-80基板上のZ42と差し替える。
2017TRS80clk

 さてこれで直ったかな〜と思ったら現象変わらず。ということは原発振のジッタは元々なかったということになる。ではどこだろうか。

つづく。

TRS-80 model1 日本向けモデルのキーボード結線

メモ:TRS-80のロジック基板とキーボード基板を接続するビニール線が切れてしまった。そんなこともあろうかと写真は撮っておいたのでもし間違えて切ってしまった方は参考にしてください。

TRS80haisen2

TRS80haisen1

TRS80haisen3

接続先は以下のとおり。

赤:+5V
黒:GND
灰:Z37-1(LS02) *SYSRES
黄:Z38-11(LS367) A14
紫:Z38-7(LS367) A13
青:Z21-10(LS156)
緑:Z73-6(LS32)

たったこれだけ?いえ他のアドレスとデータはROMソケット経由で接続してあるのです。これらは上位アドレスのデコード情報です。

TRS-80 model1 状況整理

 これまでの修理と調査の整理。
(1) ビデオ画面が出ない → VSYNC/HSYNCを混合する終段のCMOS IC故障。交換OK
(2) ビデオ画面の空白文字であるところに何か表示される → おそらくVRAM不良。あとで交換
(3) ビデオ画面が乱れる。VSYNC/HSYNCの調整は可能。 → 目下調査中。

 もともとTRS-80 model1はVRAMへのアクセスはCPU優先で画面にノイズがでるらしい。しかし常に出ているのはおかしい。CPUのVRAMアクセス時にはVID*信号がアサートされる。これの大元はZ80の*MREQである。ROMを抜いた状態でもVID*は定期的には発生するが、これはCPUが暴走しているせいかもしれない。確実にVID*を出さないためにZ80の*MREQをピン上げする。DRAMは挿したまま。

電源を投入すると以下の画面になる。
P_Sep22_052909

 Z80の*RESET端子を"L"にすると以下の画面になる。

P_Sep22_054744

 *RESETを解除すると画面の乱れはなくなる。しかしよく見るとキャラクタ表示がずれている。
P_Sep22_054749

 これから考えると、電源投入時になんらかの影響で画面に関わる部分(特に水平方向)がおかしくなっている。リセットにより影響元と思われるZ80が停止すると画面は安定する。リセット解除でZ80が動き出すとVRAMの読み出し→CGROMまたはセミグラフィックスのデータ取得部分でずれが生じている。Z80の動作で外部に影響があるのはアドレスとデータがぱたぱた暴れている部分。DRAMは特に影響を与えていない。

 さて、クロック生成部分を見てみる。(印がある部分はソケット化してあるところ)
TRS-80clock

 原発振は10.6445MHz。これをインバータ1個で分配している。きつそう。
Z43-1はMODESEL信号の受けで、画面横方向の表示64文字(H)/32文字(L)を切り替えている。
Z24-3はLATCH信号のクロック出力で、VRAMからのデータをいったん受けるための指示。
Z43-4はSHIFT信号のクロック出力で、LATCH信号で保持したキャラクタ番号に基づいて水平方向に画面に表示するデータをシフトする。

 ここで64文字のモードだと原発振の周期をそのままビデオクロック周りに出している。もしこの発振回路にジッタがあれば、画面の乱れとなって観測されるはず。しかしジッタを測定できるような環境にない。
 Z42をソケット化したのでここを色々差し替えて実験したところ、電源ON時に時々画面が乱れないこともあったので影響はあるようだ。ということで10.6445MHzの発振器を注文してみた。つづく。



 これがあれば……

KKmoon 信号発生器 DDS信号発生器 DDSファンクション信号発生器 デジタルデュアルチャンネル 任意波形周波数メーター 0〜80KHz 電力信号帯域幅 200MSa / s 25MHzKKmoon 信号発生器 DDS信号発生器 DDSファンクション信号発生器 デジタルデュアルチャンネル 任意波形周波数メーター 0〜80KHz 電力信号帯域幅 200MSa / s 25MHz

KKmoon
売り上げランキング : 1470562

Amazonで詳しく見る
by G-Tools

TRS-80 model1 Z80の影響について

 Z80のリセットをアサートしたままにすると画面にノイズは出なくなる。ではどの部分が影響しているのか。結論から言うと*MREQ,*WR,*RD,*IORQをピン上げしても現象が変わらなかった。アドレス線かデータ線がパタパタ動いているのが影響しているような感じ。

 さて、その結論に至るまでの調査。
 VID*という信号はVRAMのアドレスをタイミングジェネレータかZ80のアドレスかの切り替えに使われる。

VID*="H"の時:
{V0〜V5,VWR*,VRD*,A6〜A9}は{C1,C2,C4,C8,C16,C32,'1','1',R1,R2,R4,R8}
VID*="L"の時:
{V0〜V5,VWR*,VRD*,A6〜A9}はZ80の{A0〜A5,WR*,RD*,A6〜A9}
この切り替えはZ64,Z49,Z31(LS157×3)で行われる。

VID*は遡るとRAS*信号から来ておりRAS*信号はZ72(LS367)を通った*MREQそのもの。

Z21

 Z21(LS156)がアドレスデコーダでpin12(出力3)がVID*/KYBD*に関わっている。そこで近辺を観測してみる。上段がZ36-6、下段がZ21-12。

Z21-G

 Z21の出力が上まで届いていない。これについては教えていただいた。なおZ21(LS156)はオープンコレクターで下記のOD(オープンドレイン)と同じ構造。

 プルアップは4.7kで図面と同じく問題なし。タイミングはこれでいいらしい。
ここの懸念をクリアするためにZ80の*MREQをピン上げして確認した。動作は変わらず。ついでに他の制御線もプルアップしてみたが動作は変わらなかった。

つづく。

TRS-80 model1 ビデオ出力乱れの調査

 さて、画面に文字らしきものは見えてキー入力にも応答しているっぽいのだが非常に乱れている。以降はビデオキャプチャの画像。
P_Sep05_231038

 先に電源部分の電解コンデンサの容量抜けを疑ったが問題なかった。
 CPUをソケットから抜いてみた。VRAMは初期化されないのでランダムなキャラクターを表示する。乱れはない。
P_Sep04_221238

 ということはCPUが動作することによりビデオ回路に悪影響を与えているように思える。
CPUを元に戻し、リセットスイッチを付けてみた。C42の電解コンデンサの両端から線を引き出してトグルスイッチをハンダ付け。RESETをかけっぱなしにすることによりCPUはバスからフローティング状態になる。DRAMのリフレッシュもやらない。

P_Sep04_221300

 これは何度か[ENTER]キーを叩いた後でリセットをかけっぱなしにした画像。プロンプトらしきものが見える。空白であるべき部分がカンマになっているが、これはどうやらVRAMのデータの特定bitが故障しているようだ。いまは画面の乱れの調査に都合がよいのでこのままにしておく。

 さて、ノイズ源となり得るものにはDRAMも考えられるのでこれをソケットから抜く。CPUは挿したまま。
P_Sep07_200026

 リセットをかけると画面は安定。この後、リセットを解除したりかけたりしてもこの表示のまま。電源を再投入すると乱れた画面になる。
P_Sep07_200058

 CPUあり、DRAMなしの構成でリセットの前後で変化する部分を探すことにする。画面の乱れに悪影響を与えるのはCPU/DRAM、受けるのはビデオ回路のタイミング生成回路と主に水平部分。

 Z42(LS04)はクロック発振とVRAMのキャラクタ/グラフィック切り替えに使われている。ここをソケット化しパスコン追加、HCU04に変更。現象は変わらず。VRAMのキャラクタ/グラフィック切り替えのゲート部分をピン上げしてキャラクタ表示のみ/グラフィック表示のみにしてみたが現象かわらず。つまりキャラクタ表示/グラフィック表示個別の問題ではない。

つづく。

MINGCHANG EasierCap USB 2.0 dc60テレビDVD VHSビデオ S端子 キャプチャアダプタUSBビデオキャプチャ レコーディングアダプタAVI/JPG/BMPMINGCHANG EasierCap USB 2.0 dc60テレビDVD VHSビデオ S端子 キャプチャアダプタUSBビデオキャプチャ レコーディングアダプタAVI/JPG/BMP

MINGCHANG
売り上げランキング : 8484

Amazonで詳しく見る
by G-Tools

TRS-80 model1 ビデオ出力の修理

 電源ができたのでビデオ接続して動作確認してみよう。ビデオケーブルは回路図を参考に作った。
こちらも参考になります:
旧世界の遺産を守れ!「TRS-80 model1」 タンディ・ラジオシャック(1977) (しおんパパのひみつきち)

54

 で、ブラウン管ディスプレイに映してみると水平方向に広がるような感じのノイズ画面。TRS-80本体側面にある半固定抵抗をいじってみると、垂直方向は動かせるが左右は無反応。どうやら水平同期がおかしいみたい。
 この故障はよくあるみたいで、YouTubeにも修理動画があった。
How to fix video sync issues on the TRS-80 Model I


 では回路図を元に追っていく。
57

 上の方の74C04(Z6)は水平同期信号のバッファ。下の方の74C04(Z57)は垂直同期のバッファ。それぞれ半固定抵抗が挿入されておりアナログ的に遅らせることで表示位置の調整を行っている。74C00(Z5)はXORを構成しており、水平同期と垂直同期をミックスしている。これらはCMOSの汎用ロジックで特性は4000シリーズと類似。74C04の方はパッケージに4069とも書いてあった。
 さてR20を調整しても水平方向の調整ができないのでこのあたりが怪しい。Z6のpin13には水平同期信号が来ていた。で、Z6のpin12を観測すると
2017hsyncNG
 0-5Vスイングしてない。Z6故障と判断。

 では、このZ6を外してICソケット化することに。pin4-pin14間に0.0033表記のコンデンサがあるけど回路図にはない。あとから足されたものだと思われる。

2017-z6

 取り外しには表面実装部品取り外しキットを使った。基板側の穴が大きめなので割と簡単に外せる。

サンハヤト SMD-21 ハンダ関連用品 ハンダゴテ1本で簡単に表面実装パーツが取り外しできます。サンハヤト SMD-21 ハンダ関連用品 ハンダゴテ1本で簡単に表面実装パーツが取り外しできます。

サンハヤト
売り上げランキング : 1130946

Amazonで詳しく見る
by G-Tools


 これを74HC04に交換したら水平同期も調整できるようになった。

 高速(15KHz)なスイッチングに耐えられなかったのだろうと、ついでに74C00(Z5)もソケット化して74HC00に交換してみたら、水平方向にノイズが見られるようになった。この状態で先程のZ6を74HC00から74HCU00に交換したら安定した。

 だがしかし。キャラクタ単位でノイズが入っているような画面である。キャラクタらしきものは見えるしキー入力で文字が入っているようなのだが。つづく。
2017TRS80noise


TRS-80 model1用電源の製作

 前回のTRS-80 model1を入手した - 電源の検討で考えた電源回路の部品がそろったのでつくってみた。

 秋月電子のC基板に実装することにする。ACアダプタだが、DCプラグが2.1mmでよく使われているものを選択し、ハードオフから19V品を入手。これを手持ちのDCDCコンバータ、HPH12002Mで+7Vを生成する。12V2A出力なので余裕。
18
回路はほぼこのまま。250kΩ可変抵抗の部分を10kΩ1/2W+10kΩ半固定抵抗に変更し、5-6ピン間に接続した。GNDには接続しない。これはデータシートより計算し約18.5kΩとなったのでこの構成にした。
この抵抗を配線しない状態で入力19.22V、出力12.03V。

 次に負電圧をLTC1144CN8で生成する部分。これは以下のとおり。
2017LTC1144

最終的に以下のような実装になった。各所にあるLEDは動作確認用で、4.7kΩを直列につないでいる。
2Pのコネクタは手持ちの都合。写真の上から-7V/+7V、+19V/GND。
2017TRS80powF

 配線はこんなかんじ。片面でいける。(パイロットランプまわりは省略)
TRS80powhaisen

 TRS-80本体へと接続するDIN5pin電源コネクタの配線は以下を参考に。FRONT VIEWというのはDINレセプタクル側から見たという意味なので、TRS-80本体の背面から眺めるとこのように並んでいるという感じです。1,3はAC(+7V,-7V。入れ替わってもよい)、2は+19V、4はGND。

00



2017TRS80pow


 TRS-80 model1に接続後、正しい電圧が供給されているかどうかはDRAMの電源ピンで確認するとよい。電源回路がめんどくさかったのはこいつのせいです。
2017TRS80DRAM

pin16 - Vss (GND)
pin9 - Vcc (+5V)
pin8 - Vdd (+12V)
pin1 - Vbb (-5V)

 測定したら12.19V/±4.92VでOK。

 ディスプレイを繋がなくてもTRS-80の[英数/カナ]キーを押すことでキーボード上のLEDが赤/青とトグルするので動作していることが確認できる。これで本体無改造で電源を作ることができた。

 だがしかし、ディスプレイに繋いでみるとビデオ出力の同期が流れてしまう問題があった。これは本体の故障らしい。次回につづく。

TRS-80 model1を入手した - 電源の検討

 何かの引きが強かったのか、TRS-80 モデル1を入手した。

  あまり使われた感じがないきれいな本体だが、電源などの周辺はないためなんとか用意しないといけない。TRS-80 Technical Manualには回路図があるので検討する。
 電源はACアダプタ経由、DIN 5ピンコネクタで接続。内部で+5V,+12V,-5Vが生成される。このうち+12V,-5VはDRAM用。
ACアダプタのDC +19.8V 350mA → +12V 350mA
ACアダプタのAC 14V 1A → +5V 1.2A, -5V 1mA

TRS80PWR

電源入力:DIN 5ピン
1 AC14Vin
2 DC19.8Vin
3 AC14Vin
4 GND
5 NC

 さて、できれば本体は無改造でやりたい。pin2のDC19.8Vinは現代の19V出力ACアダプタでよさそう。pin1,3のAC14Vinだが別にブリッジダイオードに直流を入れても問題ない。19VからDC-DCコンバータで降圧しようとするとGNDが共通なので+7Vにし、pin1に供給する。
DC-DCコンバーター 12V3A HRD12003 5~24V可変(秋月電子)

 -5V側はLTC1144でDCDCコンバータの出力+7Vを反転してpin3に供給する。
LTC1144 スイッチト・キャパシタ広入力範囲 シャットダウン機能付き 電圧コンバータ(PDF)
スイッチトキャパシタ広入力範囲シャットダウン機能付電圧コンバータ[RoHS] LTC1144CN8(共立エレショップ)
電圧コンバータ LTC1144CN8(秋月電子)
作例:LTC1144CN8でマイナスの電源をつくる(SingleEnded.com)

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ