まごころせいじつ堂

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

SBC6303のリセット対策 - シリアルI/Fからの電流回り込み防止

 SBC6303ルーズキット、既知の問題としてパワーオンリセットがかからないことがあるというのがあるが私の環境(HD63B03RP)では再現しなかった。


 再現性を高めるために手持ちのチップを交換しながら確認する。このうち、HD63P01M1がパワーオンでもリセットがかからない。電源をONにしないでシリアルI/Fを接続した時点でうっすらとパイロットランプのLEDが光るのであーこりゃ漏れとるな、と。ここで電源-GND間の電圧は1.91Vあった。どの程度回り込んでいるかを調べるためにR4(USB-TXD)を外して再度測定すると1.08Vだった。つまりUSB-TXD、USB-RXDの両方から電流が流れ込んでいる。完璧な対策は@cronos_svさんの絶縁USBシリアルI/Fを使うことだけど牛刀なのでここはオープンコレクターのLS07を使って電流が流れないよう分離する。

 回路は単純で、USB-TXO→SBC6303 RXDに10kΩプルアップ(SBC6303側電源)、SBC6303 TXD→USB-RDIに10kΩプルアップ(USBシリアル側電源)。SBC6303側から+5Vをもらい、シリアル入出力に直列に入れられた抵抗R4,R5をブリッジしてスルーする。
 プルアップ抵抗の値は適当で、もしなんかあったら10kΩをパラにしたら半分になるじゃない程度の考えで決めました。
2018SBCserial0

 アダプタ基板はこんな感じ。秋月D基板を半分に切ったもの。
2018SBCserial1

 アダプタ基板裏。
2018SBCSerial2

 SBC6303側のパッチ。
2018SBCserial3

 このアダプタ基板を入れた状態で本体電源ON、USBシリアルI/Fを接続、電源部分の電圧は0V。動作も問題なくパワーオンリセットが効くようになった。
 LS07の他にオープンドレインのHC07でも良さそう(後で気づいたけど千石やマルツにあった)。

Sinclair Scientific Calculator Emulatorキット

 tindleにてSinclairの関数電卓キットを見かけたので購入し、さっそく組み立てた。

プロジェクトの内容、組み立て方はこちら Sinclair Scientific Calculator Emulator(Arduino Enigma /hackaday.io)

 キット内容は基板とあらかじめ挿入してある7セグメントLED、タクトスイッチ、単4バッテリーケースに電池、プログラム書き込み済のArduino Nano、4.7kΩ×2、1kΩx8、スライドスイッチ、スペーサ、両面テープ。半田まで入ってた。さてこの写真には後にハマる落とし穴があります。なんでしょうか。
2018-ss1

 基板裏。写真の位置RKO/RKNに4.7kΩをハンダ付け。残りのR1〜R8は1kΩ。
2018ss2

 表側からはこのように見える。基板が白いのでフラックスクリーナーなどあったほうがよい。
2018ss3

 基板裏側からArduino Nanoをハンダ付け。ピンはこのように長い方をマイコン側にした。
2018ss4

 スイッチ類、LEDをハンダ付けしておわりと思いきや落とし穴にハマりましたよ。
あらかじめタクトスイッチは挿入してあるんですが、数字部分は青、その他は白のように分けてあるわけではないのです。たはーっ袋詰めの人はそこまでしてくれなかったか。ということでリワークの写真。
2018ss5

 動作確認自体は電池がなくてもArduino Nanoのmini-USBに給電することができます。あとはスペーサを取り付け、電池ホルダをキーの裏側に両面テープで貼り付けて完成。

 電源を入れるとSinClairの文字が表示され、使えるようになります。
2018ss6

セルフテストは0キーを押しながら電源ONで全LEDの点灯テスト、0と8のキーを押しながら電源ONでもうちょっと長いセルフテストを行います。

 このキット、内部はそのままSinclair Scientificをエミュレートしており、キーの接続も同じ様にしてある。
ソースリストはこちら。

 現代の電卓に慣れた身だと操作方法が直感的ではない。常に指数表示で[+]キーがエンターキーのような動作をするRPN方式、例えば1÷7は [1] [+] [7] [÷] となる。

 Sinclair Scientificのオリジナルには組み立てキットで提供されたものもあったようだ。


追記:コメント欄で教えてもらった。ナイトライダーK.I.T.T.のスキャナー。
IMGP2867

ちょっとキー入力のタイミングが難しくて、[0][8]のキーを押しながら電源投入、SINCLAIRの文字表示の直後、全LEDが点灯したらすぐキーを離し[2]のキーを押す。

SBC6303ルーズキットの組み立て

 SBC6303ルーズキット(電脳伝説)の販売が始まったのでさっそく組み立てた。

SBC6303ルーズキット(スイッチサイエンス)
SBC6303用LILbug ROM(スイッチサイエンス)

 だいたい手持ちの部品でOKだった。HC573だけなかった。手持ちの関係で1kΩ→1.2kΩ、LEDの電流制限抵抗は眩しすぎないよう4.7kΩに変更。HD63B03RPを使用。DCジャック部分は長孔が空いているが、ピンタイプの部品をハンダ付けした。
2018-SBC

 サンプルをロードして動作確認。OK。何も動かしていない状態での電流は0.01A。
2018-SBC-ok


 手持ちの部品にやたら古いのがあって30年くらい前に買ったものがいくつかあったので。

 これは長崎にあった電器店が電子部品を扱っていて、そこで買ったICソケット。値段表示が茶色のバーに20.で120円。
2018-SBC-120

 4.9MHzの水晶発振子はピンが酸化していた。
2018-SBC-Xtal



高速運作TL866CSプログラマ/USBついプログラマ EPROM FLASH AVR TL866シリーズプログラマ高速運作TL866CSプログラマ/USBついプログラマ EPROM FLASH AVR TL866シリーズプログラマ

Generic
売り上げランキング : 66552

Amazonで詳しく見る
by G-Tools

検証の計画ーEPROMの二度焼きは有効かどうか(実験なし)

 ツイッターを楽しんでたらPROMの二度焼きに関する話題が流れてきた。ROMに対する書き込みを確実にするために同じデータを二回書くと解釈した。これはまじないのたぐいだが上司がこれを本気にし一回だけの書き込みで大丈夫かどうか心配しだして検証を依頼された、という感じで検証の計画を考えてみる。
(なお実験は一切ありません)

☆現在の部署の設備環境でROMを書き込む時に二度焼きは必要か?
→ROMが化けると製品納入後にトラブル発生の可能性がある。
→二度焼きをすることによりデータが確実に書き込めるという主張。しかしその根拠はない。
→一回の書き込みより二回書き込んだほうが良さそうな雰囲気を感じるが、それは製造やコスト上影響があるほどのことなのか?
→落とし所は、一回の書き込みで充分ですよという客観的な内容。

 ROMの書き込みとデータ保持に関するしくみのおさらい。ROMはFETのゲート部分に電荷を溜めることによってFETのON/OFFを行い、これでデータを表現する。
Floating gate MOSFET(Wikipedia)
 ROMライタがFloating Gateを飽和されるほど充分に書き込んでいれば問題ないし実際そうなんだろうけど、それでも疑うというのであれば検証するしかない。(実は答えはここで出ている。Floating Gateに溜まっている電子の量が一回の書き込みでしきい値を越えていれば上書きしても無意味)


 検証対象、検証に必要な機材を検討する。
・ROMライター 量産で使用するもの。
・PROM。複数のメーカーより同一ロットを複数個。
・ROMサイズ分のランダムなテストパターン。
・ROM読み出しの治具。マイコンで走査する、またはROMライターのVerify機能を使う。

 データ化けがより起こりやすいパラメータの検討。
・データの読み出し速度
・データの読み出し 順かランダムか
・動作電圧 ±5%、±10%
・温度

 パラメータは振りやすいものからいじっていく。例えば温度を-10℃にしたいときはチャンバーが必要になりおおげさでこれはやりにくい。動作電圧等は振りやすい。データの読み出し速度は実際の製品で使う速度に合わせておく。
 データの読み出し方向については、治具が簡単になる方向にしておく。例えばランダム読み出しをしようと思えばマイコンを採用してコードを書いたり、と治具の設計が複雑になり治具のデバッグになってしまう恐れがある。

 異常な現象を出やすくするためには、まずTypicalな設定で基準となる動作を確認し、パラメータを1つずつ現象が出やすいと思われる方向へ振る。例えば電圧+10%で正常動作したら、+5%ではおそらく出ないだろうという予測ができる。

 異常現象が出ないことの検証は、設定した検証項目すべてをクリアすることで確認するので時間がかかる。
・PROM 同一ロット10個に同じランダムパターンを書き込み、治具により読み出しテストを1個あたり5分×3セット
 このへんで決めた数値は大きければおおきいほどよいのだが、それでは実験が終わらないので聞かれたら次のように答えることにする。
 5分の根拠→ROMのデータ読み込みn周分なので回数的に充分
 3回の根拠→1回じゃでないかもしれないので3回もやれば充分
このへんで決めた実験回数はあとで減らすことができない。減らしたせいで出なかったじゃないかと疑われる可能性がある。


 では以上の設定で実験をやってみたという設定で話はつづく。

・A社のROM 10個について、電圧±10%、温度25℃でパス
・B社のROM 10個について、電圧±10%、温度25℃でパス
・C社のROM 10個について、電圧±10%、温度25℃でパス

 一週間でこれだけ済んで上司に報告すれば、おおよそ「まあ出ないんだろうな」という雰囲気になるのでもう一つパラメータを振って現象が出なければ終了、となりそう。ということで今度は温度を振ってみる。温度を振るためには低い方と高い方を設定して上記のテストを行うか、またはチャンバーを借りて連続的に変化させ連続読み出しを行わせる。

 温度を二点設定する方法:
10℃雰囲気について、前回のテストを行う。
40℃雰囲気について、前回のテストを行う。

 チャンバーを使う方法:
室温→50℃→室温→-10℃→室温を5日間の間で行い、最後まで正常動作することを確認。治具は検証済みのものが複数台あると望ましい。例えば動作電圧をそれぞれ変えたもの。

 チャンバーを使った温度連続変化の方が、動作時間/温度環境ともに厳しくなるのでこれをパスすればおそらくどこからも問題がないと言えるだろう。チャンバーの借用も含めおそらく二週間コースですね。

  さて、それでもランダムな読み出しでは検証できていないじゃないかという話が出るかもしれない。そんなこともあろうかとランダム読み出しの治具は検証の間に検討を済ましておく。これを実際行うかどうかは上司の判断となる。担当者がこの実験にかかりっきりになる時間もタダではないのだ。

 検証はこういう条件でこれだけの時間行ったことについてOK/NGが言えるので、設定した条件の理由についてはすべて説明ができなければいけない。時間については検証にかかるコストとそれにみあう成果―それはひょっとしたら上司の安心感かもしれないが、周囲が納得できる長さにしなければならない。これはきりがないので充分に相談してゴールを設定する。リソースが有限な箇所は検証も有限なので、やはり最終的にはコストとの調整になる。


 ここまでは異常がないことを前提に話を進めてきた。もし異常な現象が出たのなら、デバッグに切り替わる。パラメータは異常な現象が再現する方向に倒して再現回数を上げ、次に最初のテーマであった二度焼きで改善されるのかどうか比較する。ここで正常動作の方向に倒れれば、はじめて二度焼きは効果がありそうだということが言える。そうなると、一回書き込んだROMで発生するエラーの回数と二回書き込んだROMで発生するエラーの回数で有意な差があるかどうかの検証に変わるだろう。

 二度書きでも改善しない、あるいは差がなければ部品や機材が疑わしくなる。もし部品であるROMそのものに異常が見られたら?大きいメーカーでは部品をまとめて大量に購入するため、購入する部品の評価をする部門を持っていたりするので、そこが検証を引き取ってくれる場合がある。こうなるといま設計している物とは関係がなくなってくるので、開発部門としては別の方式や部品の検討に入らなければならない。


ATMEL AT27C010-70PU ONE TIME PROGRAMMABLE (OTP) EPROM IC (1 piece) [並行輸入品]ATMEL AT27C010-70PU ONE TIME PROGRAMMABLE (OTP) EPROM IC (1 piece) [並行輸入品]

Tough Guy
売り上げランキング :

Amazonで詳しく見る
by G-Tools

68HC11命令一覧表

 前回の6800系命令一覧表の追加で68HC11の命令一覧表を作りました。

 6800 Instruction Table


 68HC11はMC6801/MC6803の上位互換で新たにYレジスタが追加されている。これにともない、0x18、0x1a,0xcdのコードはプレフィックスとして扱われる。
07
 ビットを操作するBSET/BCLR、ビットを見て分岐するBRSET/BRCLRと除算IDIV/FDIV命令が追加。
 HD6303と同等のXGDXとXGDY、似た動作をするSTOP、テストモードに入るTEST命令が追加。ただしXGDX命令が割り当てられたコードは異なる。
 HD6303で追加されたAIM/OIM/EIM/TIM命令はない。

33
 プレフィックス0x18はインデックスアドレッシングモードでYレジスタを使うバリエーションが追加されている。

59
 プレフィックス0x1aは新規命令CPDとYレジスタを操作する命令がインデックスアドレッシングモードでXレジスタを使うものがはいる。
 プレフィックス0xcdはXレジスタを操作する命令がインデックスアドレッシングモードでYレジスタを使うものがはいる。

 8080命令がそのまま動くZ80は現行品、6800命令がそのまま動く68HC11も現行品。8ビットマイクロプロセッサのオリジンたちのコードが今も動いているというのはいいですね。

6800系命令一覧表

 MC6800/MB8861/MC6801(MC6803)/HD6301(HD6303)の命令一覧表を作りました。ニーモニックとアドレッシングモードがわかっているかた向けです。
以下のGoogleDriveスプレッドシートで公開しています。コピーしてご自由にお使いください。

※ 2018/3/9 typo STA→STAA,STB→STAB 修正済

 6800 Instruction table

 作成にあたり各データシートと小松さんの半導体コレクション展示会場を参考にしました。

 表はクリックすると大きめに表示されます。

・MC6800
48
 始祖。わりあい空きが目立つ。


・MB8861
12
 富士通製の互換品。独自の命令拡張5種6命令が追加されている。


・MC6801/MC6803
44
 アキュムレータAとBを連結したDレジスタが追加されたシングルチップマイコン。
Dレジスタ周りの操作と乗算MUL、飛ばない分岐命令BRN、Xレジスタの操作とダイレクトモードのJSRが追加。
 アセンブラの表記ではASLをLSLと呼ぶなどのエイリアスが追加されている。表記のみの話で命令が追加されたわけではない。


・HD6301/HD6303
06
 日立がMC6801/MC6803をCMOS化した製品だがXGDM,SLPとMB8861類似のAIM/OIM/EIM/TIM命令が追加されている。
 MC6801/MC6803では4E/5Eのコードが"force the PC to function as a 16-bit counter"とあって実行するとフリーランしそうな感じなのだけれども、HD6801/HD6303は未定義命令となっている。これ以外は上位互換。
 なお日立のデータシートではInherentをImpliedと呼んでいる。


 なにか誤りがあれば教えてください。各命令の命令長とサイクル数は各自の宿題とします。

M5Stack Faces入手

 スイッチサイエンスでM5Stackの扱いが始まったのでM5Stack Facesを購入した。

M5Stack[公式]
M5Stack Faces(9軸IMU搭載、各種カバー付き)[スイッチサイエンス]

紹介記事:
M5Stackであそぼう[スイッチサイエンス]
M5Stack −LCDとWi-Fi付きの小型マイコン− と開発環境M5Cloudをためしてみる #m5stack[Developers.IO]
M5Stack : ESP32を利用した開発モジュール[Visuariddim]
M5Stack Faces Pocket Computer[macsbug]

 M5Stack FacesはM5Stack Grayのモデルの電池・裏蓋部分がキーボード取り付け可能なベースになったもの。キーボード部分は3種類のパネルを選んで取り付けることができる。1mくらいのUSB Type-Cケーブルとジャンプワイヤー、ネジ類が付属。説明書はない。

2018M5-1

 LCDコントローラはILI9341。ArduinoではAdafruit-GFXライブラリで制御。
2018M5-2

 キーボードパネル側にはATMega328が乗っていて本体側のESP32とはI2Cで通信する。これらのArduinoスケッチも公開されている。https://github.com/m5stack/FACES
今のところとりあえず作った感がありますね。例えばGameBoy.inoは同時押しには対応していないみたい。

2018M5-3

 Arduino IDEによる開発環境は以下の方法でインストール。たぶんWindows環境ではいちばん簡単。
公式サイトからDownloadを選択し、CP2102ドライバとEPS32-Arduino-IDEをインストール。これだけ。

 クレードルが付属しており置くだけで充電できる。ただし充電中かどうかはわからない。クレードルはI2C端子がポゴピンで出ているが、クレードル側には特に何もないようだ。
2018M5-4


 M5Stackはモジュール間の接続を2x15のコネクタと磁石で固定しているのでスチール机にひっつく。側面の電源ボタンは1回押すとON/リセット、2回カチカチと押すとOFF。ただし側面からUSBで電源供給している場合は電源断になりません。バッテリー駆動かクレードル経由の給電だとOFFになります。
2018M5-5

TFT_graphicstest_PDQを走らせてみたら4〜8時間程度動いていたようです。

 プロトモジュールを付けてみた例。こんな感じになります。
2018M5-6


M5Stack 公式ストア



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時に画面がおかしくなる現象は変わらなかった。

つづく。
記事検索
電子部品通販リストなど
竹下世界塔の計算機よもやま話
竹下世界搭のソフトウェア
zigsow (houmei)
github.com/houmei
ーーーーーー
ーーーーーー
ーーーーーー
プロフィール

hardyboy

QRコード
QRコード
  • ライブドアブログ