まごころせいじつ堂

浜町庄金 研究開発 最近はArduinoとセンサ類ばっかだなあ。マイコン楽しいよマイコン

SBC6800のクロックアップ

 モトローラ6800伝説はすでにお持ちのことと思いますが、製作することで追体験ができるキットが販売されています。

SBC6800ルーズキット(スイッチサイエンス)
SBC6809ルーズキット(スイッチサイエンス)

 SRAMは32Kx8bit品を使っていますが問題ありません。
2018SBC6800

 この回路ではPIC12F1822によるクロックジェネレータがうまくMC6800用の二相クロックを生成していますが、せっかく2MHzまで動くBタイプ品を使っているのでソースをいじってサイクルアップに挑戦してみます。
 モトローラ6800伝説のp.100に掲載されているソース(CD-ROMでも提供)で以下の箇所を修正:

PR2 = 7; → PR2 = 5;
CCPR1L = 4; → CCPR1L = 3;

 これでビルドすると1.33MHzのクロックジェネレータになります。上限1.5MHz動作のAタイプでもOK。

2018MC6800clk

 すみませんが雰囲気で修正したのでこれ以上PWMで速いクロックが生成できるかはわかりません。たぶん無理。ただPIC12F1822は32MHz動作で古いマイコン用のクロック源として活用できそうなので色々調べている所です。


モトローラ6800伝説モトローラ6800伝説
鈴木哲哉

ラトルズ 2017-12-16
売り上げランキング : 42896

Amazonで詳しく見る
by G-Tools

4ICs Z80ボード(1) ATMega32LのArduinoブートローダ書き込み

 もあ(@morecat_lab)さんに4ICs Z80ボードを譲っていただきました。ありがとうございます。

手持ちの部品があったのでとりあえずすべて実装。10cm×10cmのサイズ。
2018-ATMEGA32-ALL

 このボードは40pinのAVRがすべてを制御してZ80を動かすしくみなので、AVR ATmega32Lにソフトウェアを書き込んでやらないといけません。まずはArduinoのブートローダーから。

 AVRISPmkIIで書き込めるようにICSP端子を空きエリアに用意。
2018-ATMEGA32-ISP-CONN

 ATMega32Lの pin6 - MOSI , pin7-MISO , pin8 - SCK , pin9 - *RESET
2018-ATMEGA32-ISP-CONN2

参考:
ATmega DIP40 in Arduino IDE 1.6.4
Burning Arduino Bootloader to Atmega 32A-PU Using Arduino As ISP

ハードは以上。次はソフト。Windows10からAVRISPmkIIを使うには若干の手順が必要らしい。
windows10でAVRISP MKIIを使う方法 @yoshihiroo

 まずドライバをインストールし、AVRISPmkIIをPCに接続。次にlibusb-win32-devel-filter-1.2.6.0.exeをインストールする。ここでデバイス一覧が出るのでAVRISPmkIIの箇所を選択して完了する。
libusb-win32というのはどうも署名などをうまくバイパスするような仕組みみたい。

 以上の方法はどうしてもAVRISPmkIIを使いたい時の方法で、Arduino UNOが手持ちにあれば Arduino as ISP で書き込んだほうが楽。

 さて書き込み器の準備はできたので、Arduino IDEに40pin AVRのライブラリを設定する。ライブラリは複数あったのだが以下のMightyCoreを使ってみた。
MightyCore : An Arduino core for the ATmega16, ATmega32, ATmega324 and more…

 Windows10上でArduino IDE 1.8.4を起動し、[ファイル]→[環境設定]をクリック、追加のボードマネージャのURL欄に
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
を書いて[OK]で終了。
 次に[ツール]→[ボード]→「ボードマネージャ…」をクリック。ここからMightyCore by MCUdude バージョン1.0.8をクリックしてインストールする。
 インストール後
[ツール]→[ボード]をクリックするとMightyCore以下にATmega1284など40ピンのAVRが追加されている。ATmega32をクリックしてボード"ATmega32"を選択すれば、次に[ツール]→[ボード]をクリックしたときに項目が追加されている。この4ICs Z80ボードには水晶発振子がないので Clock 8MHz Internalを選択。

 以上で準備ができたので[ツール]→[ブートローダを書き込む]をクリック。これでATmega32LがArduinoになった。なお実際の書き込み前にZ80やSRAMは誤動作を防ぐため外しておきます。
2018-ATMEGA32-ISP-Write


 動作確認のため、基板上のシリアルポートにUSB-シリアル変換器を接続して"Blink"のスケッチをシリアルポート経由で書き込んでみる。基板上のD0 LEDが点滅すればOK。
2018-ATMEGA32-ISP-OK


 ここまでが準備でした。
 なお40pin AVRのライブラリやClock 8MHz Internalの設定は今後変わるかもしれませんがまずは動作確認ということで つづく。

PICKit3でPIC12F1822の書き込み

 PICの開発環境のメモです。

ホストはWindows10、書き込みツールはPICKit3、ターゲットはPIC12F1822。

(1)開発環境をダウンロードしてインストール。現時点で最新はv4.05。
MPLAB X IDE(Microchip)
MPLAB X IDEインストール後、8bit用のコンパイラ XC8をインストール。
MPLAB XC Compilers
(Microchip)

(2)PIC書き込みジグの製作

以下を参考にした。
PIC12F1822を使ってみる(OVERDRIVE)
MPLAB X IDEの使い方(東京海洋大学 田原研究室)
ICSP Programming Adapter

 8/14/20ピン対応のつもり。外部電源とPICKit3給電の切り替え付き。

2017PIC-JIG

 実体配線図です。
2017PUIC-JIGhaisen

(3)書き込み操作
 MPLAB X IDEを起動。プロジェクトファイルを読み込むかNew Projiectを開始する。

書き込み器の選択は[File]→[Project Properties (プロジェクト名)]をクリックするとウィンドウが出てくるので、そこで指定。PICKit3から給電するかどうかはCategoriesで表示されてるツリーからPICKit 3をクリックすると右側にOption Categoriesが表示されるので、そこから[Power]を選択して指定する。

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にリプレース、など。

 そんな感じで。

大型LEDサイズ比較

 単なる比較の写真です。

30101BS

左から:
A-2301SR(秋月電子)
30101BS(Ali Express)
50101BS(共立エレショップ)

30101BSは50101BSの半分以下、A-2301SRは50101BSの1/4サイズ。

SandyBridge世代のマザーボードと最新のNVIDIAビデオカード

 前回の続き。そして解決編。

 PCIeの+12V供給を疑い、ジグを作って安定化電源から外部供給。これでやってみても不安定な現象は変わらず。+5%の12.6Vに振っても同様。

2017GPU3

 スロットでの差はないし、あとはどこに違いがあるんだろうかと情報収集を再度行ったら次のページが当たった。

NVIDIA GTX 1070 が正常作動しない時のチェックリスト(ぼくんちのTV別館)

 読んでみると「GTX7xx以降で」「2012年頃のマザーボード」と該当する話が。いま取り付けているGTX750ではBIOS画面に行けないのでGTX640に差し替え、これは問題なく起動してBIOS設定画面が開く。ここで PCI ROM Priorityを EFI Compatible ROM から Legacy ROMに変更。GTX750に戻して起動。

 たったこれだけでビープ音もなくWindowsが起動した。今までの苦労は。

 ついでにPCIe 2.0設定を3.0に変更したら起動しなかった。これは2.0のままにしておくことに。ぼくんちのTV別館さんに感謝。


※GTX1050については確認ができたら追記します。→問題なく起動しました。

PCIeの引き出し

 前回の続きでビデオカード GTX 1050Ti の修理があがってきたものの、取り付けて電源を入れるとWindowsは立ち上がらず再起動を繰り返すという現象を繰り返す。以前使っていた GTX 750 のボードは数回再起動を繰り返した後NVIDIAの文字を表示、崩れた画面を表示してからWindowsが立ち上がる。これもおかしい。これらのビデオカードは別のPCでは問題なく動く。さらに電源は600W品に交換しているのでマザーボード側の問題のように思える。消費電力を疑い手持ちのビデオカードで切り分けると:

GTX640 : 65W 問題なく起動
GTX750 : 60W 数回再起動を繰り返した後Windows起動
GTX 10650Ti : 75W  再起動を繰り返し、ブラックアウト

 GTX640とGTX750では消費電力は逆だがこれはTDPの値を拾ってきたので電源ON時の突入電流の違いが影響するのだろうと推測。さて、マザーボードを取り外すのはちょっと面倒なのでうってつけのジグを使うことにした。


Longruner USB 3.0 PCI-E Express 1x - 16x エクステンダー ライザーカード アダプター (ビットコイン採掘)+ 20cm電源ケーブル+ 60cm USB 3.0延長ケーブル 新型 LK81-1Longruner USB 3.0 PCI-E Express 1x - 16x エクステンダー ライザーカード アダプター (ビットコイン採掘)+ 20cm電源ケーブル+ 60cm USB 3.0延長ケーブル 新型 LK81-1

Longruner
売り上げランキング : 19177

Amazonで詳しく見る
by G-Tools
 主に仮想通貨のマイニング用途で複数のビデオカードを接続するのに使われるものだが、これを経由して外部から12Vを供給するようにする。ただしリンクはx16からx1となる。マザーボード側には小さなカードエッジを差し込み、USB3.0ケーブルを流用して9ピンを延長し、外部に引き出す。

2017GPU1

 このように外部に引き出してパソコンを動作させることができた。外部電源の端子で電圧を確認すると定常運転で11.79V。x16スロットのあるほうの基板裏側からみると電源は以下のように接続されている。3.3Vはケーブル経由では来ていない。この基板上で作られているようだ。

2017GPU2

 で、外部電源供給のかたちで使ってみたが再起動する現象はかわらない。PCIeの2,3,4番目のスロット経由でやってみても同様。少なくともスロット経由で供給される3.3Vは関係なさそうに思われる。次はここから線を引き出して電源投入時を観測してみるか。このパソコン使ってるのでレオポンさんチームのように走りながら修理するような感じなのだ。

 今回ちょうどインターフェース紙1月号の付録、コンピュータ手帳2018にPCIeの信号一覧が載ってたので役に立ったよ。これは便利。

Interface(インターフェース) 2018年1月号Interface(インターフェース) 2018年1月号

CQ出版 2017-11-25
売り上げランキング :

Amazonで詳しく見る
by G-Tools

連続パソコントラブル

 SandyBridge世代のCore i5-2400に2TBのHDDでWindows10というのがメインに使用しているパソコンなのだが特売のWD RED 4TBを入手してから連続してトラブルが発生した。やっと復旧したのでメモ。

 別にこいつが悪いわけではない ↓

WD HDD 内蔵ハードディスク 3.5インチ 4TB WD Red NAS用 WD40EFRX-RT2 5400rpm 3年保証WD HDD 内蔵ハードディスク 3.5インチ 4TB WD Red NAS用 WD40EFRX-RT2 5400rpm 3年保証

Western Digital 2016-12-03
売り上げランキング : 1704

Amazonで詳しく見る
by G-Tools

 使用していたHDD、CrystalDiskInfoで見るとS.M.A.R.T.の警告が出るようになっていたのでこの際交換してしまおうと確認したらマザーボードのSATAの設定がIDEモードになっていた。Windows7の頃から使っていたしこの際AHCIモードにしてしまえば若干性能アップだろう、と「Windows IDE AHCI」で検索してやってみた。これ自体は結果的には問題なかったのだが、ブートしなくなるという。さらにビープ音と共にOSまで至らず再起動を繰り返すようになってしまった。これは2つの問題が同時に起こってしまったせいが当初はわからず焦ってしまった。

 まずHDDを外し確認。BIOS画面まで行かず再起動の繰り返し。この時点でWindowsの設定変更は関係なくなった。ビデオカードを外し、CPUの内蔵グラフィックスで確認。これはうまくいく。ビデオカードを取り付けているとダメなようだ。ビデオカードは以前奮発してNVIDIA GTX1050Tiに交換したのだが故障か?それとも経年で電源が耐えられなくなったのか?使っていたのは400WのATX電源、これを600W品に交換して確認する。

玄人志向 STANDARDシリーズ 80 PLUS 600W ATX電源 KRPW-L5-600W/80+玄人志向 STANDARDシリーズ 80 PLUS 600W ATX電源 KRPW-L5-600W/80+

玄人志向 2015-07-17
売り上げランキング : 959

Amazonで詳しく見る
by G-Tools

 しかし現象は変わらず、再起動を繰り返す。これはビデオカードの故障と判断し、販売店に修理に出すことにした。一ヶ月しか経ってないのに。ということで手持ちのGTX640にダウングレード。なんでCPU内蔵グラフィックスではだめなのかというと、4K解像度に対応していないからなのだ。

 さてWindowsの方だが、HDDは2TB以上に対応させようと思ったためMBR形式からGPT形式に変更していた。しかしGPT形式だとブートしない。Windowsインストール時に媒体からUEFIモードでブートしていないとダメだということだった。使用マザーボードはZ68MA-G45 (G3)で、ブートメニュー自体にはUEFI CD/DVDの項目は出てくる。しかしこれでDVDに焼いたWindows10のインストールディスクから起動してまっさらなHDDにインストールしてもMBR形式になってしまう。USBメモリ経由のインストールでも同様。これはあきらめて起動ディスクは2TBまでの容量で新しいHDDにクローンし、MBR形式で使用するしかない。AHCIモードにはできたのでSATAディスクのホットスワップは可能。この結論に至るまで相当遠回りをした。

ST2000DX002 [FireCuda(2TB SSHD 3.5インチ SATA 6G 7200rpm 64MB)]ST2000DX002 [FireCuda(2TB SSHD 3.5インチ SATA 6G 7200rpm 64MB)]

AXIOM MEMORY SOLUTION LC
売り上げランキング : 432

Amazonで詳しく見る
by G-Tools

 ついでながらSSHDにクローンしてもたいして性能は変わらんかった。ちょっと今はこれを追求する気にもならん。

 ということで結局は最初に買った4TBのHDDは単なるデータディスクとして使うことになった。電源とSSHDとビデオカードの修理発送代が余計な出費となった。
 今のパソコンを使いはじめたのが2011年で、この頃はまだWindows7、UEFIでないレガシーBIOSの機種がまだまだ存在し、HDDは2TBが最大という時期。で、2017年の今にこれをちょっとはみ出したら連鎖的にトラブルが発生してしまった。ビデオカードの故障はまあ関係ないが問題の切り分けをさらに難しくしてくれた。時間も相当かかった。

 最近立ち寄ったブックオフ、パソコンなども扱うようになっていてCore i5-8500のOSなしケースもろもろ一式が2万円であった。今回の出費から考えると最初からこういうのを手に入れたほうがよかったんだろうか。それともまた楽しいトラブルが発生したんだろうか。

 疲れた。はやくビデオカード修理あがってこい。

ピコソフトの4bitマイコンエミュレータORANGE-4

 ピコソフトから発表されたマイコン演習キット、ORANGE-4が先行販売されたので組み立ててみた。
なお先行販売分なので仕様は変わる可能性があります。ファームがPICKit3などで書き換えられる環境のある人向け。

ORANGE-4(picosoft)
ピコソフト、教育用4bitマイコンボードを開発(ICT教育ニュース)
機械語プログラミングを学習できる——教育用4ビットマイコンボード「ORANGE-4」(fabcross)

学研大人の科学No.24付録の4bitマイコンGMC-4と互換で、さらにさかのぼるとGMC-4は電子ブロックFXのマイコンR-165が元になっているそうだ。GMC-4が出たときに作られたプログラム例がネット上にあるので遊べますね。

 キット内容。
2017O4-1

 コンデンサが多めにはいってた。PIC32のMX120F032Bが使われている。
2017O4-2

 背の低い部品からハンダ付けが基本なのだけど、LED7個を先に片足ずつハンダ付けして位置を調整したほうが見栄えがよいです。
2017O4-3

 主役のタクトスイッチ20個は対角の足をハンダ付けしてから目視できちんと並んでいるかどうか確認して修正。実際はパチンとはまるのでそこまで気にしなくてよい。
2017O4-4

 ここまでで動作確認。7セグLEDに"F"が表示され、キースイッチを押して音が出ればまずOK。
このあと添付のTK-80を思わせるキートップを印刷している紙から丁寧に切り取ってキーキャップ内側に付けていきます。
2017O4-5

 学研GMC-4と。
2017O4-6

 電流は無操作状態で0.02Aでした。
2017O4-8

 ショートを防ぐためのハンダ面に取り付ける板が普通のプリント板だったのにはなるほど、と。アクリルなど別に手配するよりも同じ基板製造で同時に入手できる、と思いました。
 現在、非互換部分や拡張機能などについてはfacebookのグループで先行して公開されています。facebookで"picosoft ORANGE-4"と検索すれば出てきます。

 キースイッチのおかげか存在感のあるボードです。遊びましょう。


で、現状シリアルポートが見えないんだよなあ。半田不良がないか確認中。
microUSBのD+、D-は無接続で電源供給のみ。シリアル通信は右側にある拡張端子を使用。


RGB21→HDMI変換でFM77AVの表示

 サンコーレアモノショップからRGB21-HDMI変換アダプタが出た。これは専用ディスプレイが壊れてしまったFM77AVで使えるのではないかと早速入手し試してみた。

 で、うーん映らん。RGB21ケーブルが純正ではなくストレート結線なのでこのせいみたい。
使ったのは千石電商にて購入したカモン 21P-18 SCARTケーブル1.8m、これをクロス仕様に改造する。
片側のコネクタハウジングを分解し、コネクタの中央、端子を押さえている部品を外すと簡単に端子が外せる。入れ替える端子は2-1、4-3、6-5、8-7、10-9の5ペア。端子番号はWikipedia RGB21ピンを参照。ハンダ付け不要。
2017RGB21-2

 で、元通りに組み立て直してFM77AVに接続。
2017RGB21-1

 うまくいきました。
2017RGB21-3

  ついでに同じRGB21端子を持つMSX MATSUSHITA CF-3000もうまく表示できました。



RGB21-HDMI変換アダプタ RGBHDADP ※日本語マニュアル付き  サンコーレアモノショップRGB21-HDMI変換アダプタ RGBHDADP ※日本語マニュアル付き  サンコーレアモノショップ

サンコー
売り上げランキング : 189

Amazonで詳しく見る
by G-Tools

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 日本向けモデルはVRAMを追加している

 修理中に気付いた閑話休題的な話。

 TRS-80 model1のVRAMは2102(1k×1)を7個使っている。bit0〜bit5までがキャラクタの番号で、bit7がグラフィック/キャラクタの切り替え。しかしZ61(bit4担当)の上に重ねて2102がもう一個ある。最初修理の跡かと思ったがこれはbit6相当で追加されていた。



 このカットも当初不明だった。これはZ30-13(LS02)からZ27-3(LS175)、Z60-4(LS267)の間をカットしてある。
2017-Z27


 元々はVRAMのbit6相当は!bit7 & !bit5だった。ここをカットして追加したSRAMのDoutを接続している。Z60-5(LS367)出力はDinに接続している。
Z30-13

 これは日本語化にあたりカナを追加するためにキャラクタ番号を0〜63から0〜127にしている。キャラクタジェネレータのROMもカナ対応のものになっているはず。

以下の記事で気付いた。

TRS-80 Model 1 L2 – Lowercase characters Hardware mod(CREW NIGHTFALL)

あと、回路図などはこちらがより新しい。トラブルシューティングの方法も載っている。
Radio Shack TRS-80 Micro Computer Technical Reference Handbook 2nd.zip
TRS-80 Model I Documentation

太陽フレアによるGPSの誤差を見てみたい

 2017年9月6日に大規模な太陽フレアが発生し、その影響で9月8日に電離層が乱れGPSの誤差が発生するらしい。
【電子版】大規模な太陽フレア発生 地球への影響は8日午後-情通機構が発表 (日刊工業新聞)
宇宙天気情報センター(NICT)

 で、実際に発生したようだ。
太陽フレアでGPSの誤差増大 国土地理院が報告(ITmedia)
9月6日に発生した太陽フレアのGPS測位への影響(速報)(国土地理院)
11年ぶり大規模な太陽フレア-GNSS測位に影響(速報)(測位技術振興会)

 この前実験した手持ちのGPSモジュールがあるのでこれで観測できないかと考え終日ログを取ってみた。Windows上でTeraTermのログ機能を利用する。時刻情報はGPSのデータ内にあるのでタイムスタンプは付けない。GPSモジュールからは毎秒データが送られてくる。

 採取したログはDropBox経由でMacOSに持っていきawkで加工。そしてWindowsに戻してExcelでグラフを描かせる。
https://gist.github.com/houmei/b9c9dc6d120f7243fffd5ad400c3d69d

加工したのは$GPSRMCからの緯度経度情報のみで誤差情報などは見ていない。



GPS20180908

 時刻はUTCなので+9時間してください。8日13時〜9日5時までの緯度経度について、基準点からのズレを表示。飛んでいる箇所はGPSから座標が取得できなかった時間。22時くらいに跳ねているのがわかる。

GPS20180909


 比較のため9日の9時〜12時くらいまでのデータをみるとそんなに跳ねていない。

 適当にやってみたけどこんな感じ。次回はより厳密に、部屋から出して衛星を常に捕捉できる状態にしてみるかな。


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

記事検索
電子部品通販リストなど
竹下世界塔の計算機よもやま話
竹下世界搭のソフトウェア
zigsow (houmei)
ーーーーーー
ーーーーーー
livedoor プロフィール
QRコード
QRコード
  • ライブドアブログ