まごころせいじつ堂

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

PS3 CECH-2000Aの修理

 預かったPS3の電源を入れるとピッと音がした後起動せず赤ランプになる。稀に起動するということ。ということで炙ってみます。

こちらの記事を参考に本体を分解。ネジ位置など非常に丁寧です。
(なにわの家電屋さん)

 通常のプラスドライバーに加えて中心に穴のある特殊なT8トルクスドライバーが必要。


 カバーを外した状態。
2018PS3-1


 電源ユニット、光学ディスクユニットを外した状態。コイン電池CR2032が見える。
2.9Vだったので新品に交換。いったん組戻して動作確認したが変わらなかった。
2018PS3-2

 メイン基板を取り出し。銀色のRSX、CELLが見える。左側のRSXの下にRAMが2つ、基板の裏側にも2つ。
2018PS3-3

 PS3の動作不具合の原因のひとつにこれらBGAパッケージが本体の電源ON/OFFによる発熱→冷却の繰り返しでチップと基板間のはんだ付けが接触不良になることがある。ヒートガンなどにより加熱しはんだを再度溶かすことで接触不良が直る*こともある*

 以下の手順でやった。使用したヒートガンは1800Wのもの。

(1)RSX/CELLを中心に5cmの高さから1分間、ヒートガンで周辺も含めてあぶる。
(2)RSX/CELLの裏側を中心に5cmの高さから1分間、ヒートガンで周辺も含めてあぶる。
 これらはチップと基板の温度差があるとはんだがつきにくいだろうとの考えから基板側をプリヒートするつもりで行った。
(3)RSXの上5cmから1分間あぶる。
(4)CELLの上5cmから1分間あぶる。
(5)表面のRAMの上5cmから1分間あぶる。
(6)10分間放置して冷却。基板を動かしてチップが落っこちたらいやでしょう。
(7)ひっくり返して裏面のRAMの上5cmから1分間あぶる。
(8)一時間ほど放置して充分に冷却

あとは元通りに組み立てて動作試験。電源ONできた。適当なブルーレイディスクを突っ込んで連続再生。24Hくらいできればまあ大丈夫と判断できるでしょう。

*注意*
プロはこの後X線で検査したりするそうですが素人にそんなことは無理なので速やかにバックアップなどを取りまたいつ壊れてもいい覚悟で使いましょう。


MachiKania Type M

 PIC32MXを採用したマイコンボード、MachiKania Type Mを組み立ててみた。

 オレンジピコ基板と部品一式を扱っている。キットにはDIP変換基板にはんだ付けされたブートローダ書き込み済のPIC32MXが同梱されているが、今回はTQFPのはんだ付けに挑戦したかったので秋月電子から PICマイコン PIC32MX370F512HT-I/PTを別途購入。あとはmicroSDカードが必要。

 まずはハンダブリッジを気にせずはんだ付けし、吸い取り線でブリッジを除去。
2018PIC32MX-1

 が、ちゃんとすべてはんだ付けされているか気になるのでヒートガンであぶってはんだを溶かし、しっかりと付くことを期待する。1800W、10cm高さで2分、5cm高さで1分あぶる。妥当かどうか自信はないがどうやらよさそう。
2018PIC32MX-2

 次は他の部品の取り付けだけれども、キット付属のセラミックコンデンサは基板のパターンよりも幅が広いので足をリフォームしないといけない。面倒なので0.1μF品は手持ちのものを使用した。
2018machikania-c

 他の注意点はLEDの電流制限抵抗R12の値が330Ω→1kΩになっているくらい。

 ブートローダはPicKit3で書き込み。その他必要なファイルをmicroSDカードに書き込んで完成。
2018MachiKaniatypeM

 基板上の半固定抵抗は音量調整。ありあまる端子を利用してArduinoシールド互換のコネクタが用意されている。電源を投入するといろんなサンプルやゲームをmicroSDカードから呼び出して遊ぶことができる。

 せっかくなので浮動小数点演算を生かしたプログラムを書いて遊んでみた。BASICで書くにはPS/2キーボードが必要。https://rosettacode.org/wiki/Mandelbrot_set#Processingよりウンウンうなりながら移植。


2018machikaniamandel

 変数がA-Zしか使えないと思いこんでいたので読みづらいですが、作者の@KenKenMkIISRさんからUSEVARで6文字までの変数名が宣言できることを教えていただきました。


 というわけでTQFPはんだ付けの実績解除と80年代にBASICで遊んだ感覚を思い出しました。カラーが表示できるのは良いですね。


 ↓ Kindleunlimited対象

PET2001のレストア(2) 電源調査

 再度電源を投入してボード上の電源電圧を測定したら5Vのはずが4.6V程度とおかしいので、タンタルコンデンサすべてと電源ラインの電解コンデンサを交換する。
PETPOWERLINE

 交換したコンデンサの容量を測定したが特に抜けてはいなかった。電源コネクタの接触不良だったようだ。
 クロック周りを観測。
・MOS6502 pin39(φ2 out) OK → クロックジェネレータからCPUまではOK
・PIA/VIA pin25(φ2 in) OK → 主要なLSIへのクロック供給OK
・VSYNC/HSYNC/VIDEO それっぽい波形は出ている
 これで何も表示されないのはCRT部分が動いていない可能性がある。CRTは高電圧を扱うがうかつにさわりたくはないので調べてみた。

PET2001の回路図は以下にある。先程のロジックボード上の電源まわりを抜き出した図もここから。

これによるとCRT基板に供給されるAC17VからDC12Vを作り、そこからすべての高電圧(+85V,-30V,+10KV)を生成している。電源トランスはCRT基板とロジックボードそれぞれにAC17Vを供給しているようだ。ただしこのあたりの図面はないので実物をたどって調べてみた。(お断り:正確ではないかもしれません)

2018PET2001power

 TAPとあるのは電源トランス端子に書いてある番号。[8][7]はAC17VでCRT基板に行き、7812でDC12V1Aを生成している。
 [6][5][4]は中点のあるAC17Vで、コネクタJ8(1)(5)を経由してロジックボード上で整流されJ8(4)でいったん外にでる。ここで平滑コンデンサに接続され、J8(2)(3)でふたたびロジックボードに入り7805の4個並列でDC5V4Aが生成される。

 ということは重くてかさばる電源トランスと平滑コンデンサを撤去して現代のスイッチング電源を代わりに入れることができそうだ。そうする安定した電力を供給でき、発熱も抑えられるのではないだろうか。
 まずはCRT基板に直接DC12V1Aを供給してみた。基板上の7812のpin3を上げて12VラインにスイッチングACアダプタの出力をはんだ付けする。
2018PET2001CRT

 この作業にはCRT部分の分解が必要。PET2001のCRTユニットはナット4個で固定されているのでそれを外す。CRT基板は背面のパネルを外し、スペーサで固定されている手前の二箇所のネジを外し、奥の方にある二箇所の固定ピンを上げる(写真左下のもの)。CRTのソケットを慎重に外す。これでも偏向コイルへの配線はつながったままだが、クッションを敷いてCRTを保護しつつ作業した。

2018PET2001CRTheater

 ACアダプタを接続して確認。CRTのヒーターが点灯した。

 今回はここまで。


ミュージック・ノン・ストップ~ア・トリビュート・トゥ・クラフトワークミュージック・ノン・ストップ~ア・トリビュート・トゥ・クラフトワーク
オムニバス ヒカシュー 中野テルヲ バッファロー・ドーター 山下康 MELT-BANANA 石野卓球

EMIミュージック・ジャパン 1998-09-22
売り上げランキング : 202869

Amazonで詳しく見る
by G-Tools


PET2001のレストア(1)

 新品のPS4とジャンクのPET2001、どちらかをくれるという話なら迷わずPET2001を選ぶ。
自腹でどちらか買うとしたらちょっと考えてからPET2001を選ぶ。

2018PET1

 固く絞った雑巾で表面を清掃したのち、手前左右に2個づつあるネジを外してオープンのところが筐体が歪んでいてかなり強引にしないと開かなかった。

 内部はこのような状態。40年前の製造ですし。
2018PET2

 基板は一箇所のみネジ止めで他はピンに刺さっているだけ。外してみた。
2018PET3


 基板(クリックで拡大)
IMGP2925

 基板は最初期のものらしい。ROMはMOS6540×7個、RAMはMOS6550×16個。それぞれ同期式のメモリ。

ドラッグストアで買えるイソプロパノールでホコリを流した。一回じゃだめで一瓶分使った。
(クリックで拡大)
IMGP2926

 さて本体だが背面にあるフューズホルダーが破損していた。元々は1.6A品らしいので1.5Aのヒューズと5×20型のヒューズホルダーをホームセンターで購入。これに交換する。
2018PET4

 左奥にある電解コンデンサとトランスを底面のナットを回して外した様子。少し狭いがこのヒューズホルダーを交換。
2018PET5

 筐体は鉄板なので新規に穴を開けるのは難しい。新しいヒューズホルダーが入るようにリーマーで削るのも大変だった。これでAC電源まわりは大丈夫なはず。

 よく見たら基板側には問題がある。7個あるROMのうち中央のものだけが逆に挿してある。同じ種類のROMが並んでいるなかで通常こういうことはない。もしかしたらこの状態で通電していて破損している可能性もあるが、とりあえず正しく挿し直す。
2018PET7

 さてコネクタを元通りに接続して通電してみる。カセットレコーダー部分からモーター音が少しして止まる。基板上の電源ラインを確認すると約3.7Vだった。
 おそらくは平滑コンデンサの容量抜けでまともに電源レギュレータが動作できない状態なので、用意しておいた電解コンデンサ6800μF25Vを並列に接続。実際は元々の電解コンデンサの端子にネジ止め。
2018PET6

 この状態で再度パワーオン。今度は5.07Vが観測できたので電源供給はひとまずOK。

 基板上にあるLEDはVIAのキースキャンをORして点灯するようなので、ROMを読んで正常に動作していれば光ると思われるが消灯したまま。先程のROMの破損があるかもしれない。また、ソケットが多いので接触不良も考えられる。

 たぶんオシロなしでできるのはここまでで、次回はクロック周りから確認していこう。



【第3類医薬品】イソプロピルアルコール50% P 500mL【第3類医薬品】イソプロピルアルコール50% P 500mL

健栄製薬 2008-04-18
売り上げランキング : 3172

Amazonで詳しく見る
by G-Tools

今さらGALを使う準備

 2018年現在でDIP品のGALを使う準備。

 PLD(Programmable Logic Device)の一種であるPAL,GALは汎用ロジックICの置き換えとして使われていた。TTL 2〜3個を1個のパッケージに収めることができ、ゲートの段数を重ねることがないのでディレイも最小、面積も有利なので主要なLSI間をつなぐGlue Logicとして主に使われていた印象。GALの場合、DIP品は端子数と内蔵FFの数から16V8、20V8、22V10がよく使われていた。しかしより集積度の高いCPLD/FPGAの登場により終息しつつある。
 で、今GALを趣味で使うのは昔のマイクロプロセッサ関連を動かせるように作ったり修理したりするのに便利そうという理由。で、開発環境が用意できるかどうかやってみた。

・石の選定
 LatticeとAtmel(Microchip)が生き残っているが現在も生産しているのはAtmel(Microchip)のみ。DigiKey提携のマルツなどで購入できる。
ATF16V8B(Microchip)

・GALライタ
 アマチュアが入手容易なMiniPro TL866シリーズはLattice/Atmelに対応している。
サポートデバイス:
Microchip(ATMEL) ATF16V8B
Lattice GAL16V8/20V8/22V10

・開発環境
ATF16V8Bの開発にはWinCUPLを使用する。PALASM、ABEL、CUPLと色々独自言語があったけど回路規模は小さいし雰囲気で使えるはず。

 ということで ATF16V8B/WinCUPL/TL866CSの組み合わせでやってみます。

・WinCUPLのインストールとコンパイル
 WinCUPL(Microchip)からダウンロードしてインストール、再起動した後にライセンスキーを入力。ライセンスキーはWebページに掲載されています。インストールディレクトリはC:\Wincupl 。

 WinCUPL起動後、メニューの[File]→[Open]から C:\Wincupl\Examples\Atmel\ADDER.PLD を開く。次に[Run]→[Device Dependent Compile]でコンパイル。([Run]のメニューはファイルを開いていないと出ません) これで同じフォルダ内にADDER.jedなどのファイルが生成される。
GAL-compile

※私のWindows10pro環境ではコンパイル後にrun-time errorが出て終了しましたが他のWindows10home、Windows7(64bit)では正常にコンパイルできました。もともとWindowsXPまでの対応なので深追いせずにあきらめましょう。

・MiniPro TL866CSによる書き込み
 MiniPro TL866CSのソフトウェアは以下よりダウンロード。ver7以降はTL866II Plus専用なので注意。

 ブランクチェック。GALはPROMと同じような感じで焼けます。
2018GAL

 ADDER.jedを指定して書き込みOK。
GAL_atf16v8b

 ということで書き込みまでOK。

 GALは組み合わせ回路のみで使うと特に悩むようなことはありません。むかし別のメーカーのでFFを含む回路を作ったときはFFのリセット後初期値が'1'でハマった記憶が。そのときもなんとなく記述して動かしたので今後もまあできるんじゃないかなあという気持ちでいきます。


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

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

Amazonで詳しく見る
by G-Tools

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万円であった。今回の出費から考えると最初からこういうのを手に入れたほうがよかったんだろうか。それともまた楽しいトラブルが発生したんだろうか。

 疲れた。はやくビデオカード修理あがってこい。
記事検索
電子部品通販リストなど
竹下世界塔の計算機よもやま話
竹下世界搭のソフトウェア
zigsow (houmei)
github.com/houmei
ーーーーーー
ーーーーーー
ーーーーーー
プロフィール

hardyboy

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