V20ボードで遊んでみる! その6

起動準備!

ついに……ついにこの日がやってきた!

V20-MBCの電源を入れてみるぞ!!!

不安要素はいくつかあるけれども、動かしてみないとナンとも言えない。

いきなり火を噴くことも無いでしょ!(それがあるのがハード…

 

まずはSDカードとRTCモジュールを繋げてみる。

f:id:PocketGriffon:20200802085215j:plain

おお……初めて2枚を同時に繋げてみたけれども、RTCモジュールの角度がなんともちょっと…汗

手で動かしてみると、なんかぐらぐらしてる!

緩んでるというよりは遊び…余裕があるみたい。

うーん…自分で組み立てるとこういう細かいところが気になるね(^^;;

ソフトだけやってたら(UI以外の)見た目なんて気にすることないのに(^-^;;;

 

近い将来、ケースを付けるとなったら、この2枚が飛び出るのを気にしないといけないのか。あともしかしたらGPIOも使うようになるかも知れないから端子の部分は開けておきたいし、シリアル線も出てる。

うむむ…上蓋はしない方がいいのかな…とか余計な事ばかり考えるw

 

ついに電源を入れてみる!

さあ……ついにこの瞬間がやってきた!

今までのことが走馬灯のようにアタマを駆け巡る!(大袈裟だって…

やり残した事はないかな?チェックし忘れた事はないかな?

そんな事を思いつつ、WindowsのUSB端子にUSBを突っ込む!

エネルギー充填120%、対ショック対閃光防御!!

うお!いきなりの電源ON!

f:id:PocketGriffon:20200802095849j:plain

そうか、電源スイッチないのか!

おお、IOSと印刷されたLEDが点滅→点灯!

そして画面には!!!

f:id:PocketGriffon:20200802095956j:plain

しーん……

ですよねー、ちょっとくらいは期待してたけど(T-T)

 

原因を探る その1

心配要素のひとつに、シリアルモジュールの端子が違ってる件があった。

今使っているモジュールにはDTR端子がないのだ。

f:id:PocketGriffon:20200802104233j:plain

今は特に気にせずRTS端子を繋げちゃってるけど、これがイケナイ??

V20-MBCのドキュメントではないが、Z80-MBC2(同じ作者?)のドキュメントにこんな1文があった。

「You should use those Serial-USB adapters that have the DTR pin on the connector. 」

この文を素直に受け取るのなら、モジュールにはDTR端子が必須だ。

んー…やっぱそれっぽいモノを手に入れるか。

そう思い、Amazonで"それっぽい"USBモジュールを2つほど購入。

届くのが待ち遠しい!

 

原因を探る その2

シリアルモジュールが届くまでの間、何もせずに待ってるのももったいない。

散々見てるけれども、基板側もチェックをしておく事にしよう。

 

症状としては

・USBケーブルを接続するとIOSと印刷されたLEDが点滅

・1秒後くらいには点灯に変化

・以下だんまり

という感じ。

そしてYoutubeに上がってるV20-MBCの動画を見ると、LEDは点滅し続けている。

 

 https://www.youtube.com/watch?v=GDiQegYhO4w

 

これから推測するに、何かの初期化に失敗しているような気もする。

基板としては動いているのではないかと思うのだが…どうだろうか??

SDカードに入ってるデータの問題なのかと思ったけれども、SDカードをアクセスすると点灯するであろうLEDは無反応。まだそっちまで処理が進んでいない気がする…。

 

そして調べること数時間。

気が付いた時には血の気が引いた!(T-T)

このブログを見てるみなさん、写真から気が付いてました???

f:id:PocketGriffon:20200802101635j:plain

「色が違ってて見た目が悪いから、3つあるICのうち色違いのヤツは上に持って行くか、左側の大きなICの下にするべきだったかなー」…なんて思ってました。

そしたら…この3つのチップ、同じモノだと思い込んでいたのですが、なんと別物だった!!

本来はこう入れるのが正しかった!

f:id:PocketGriffon:20200802101814j:plain

「部品には中古も含まれている」との事だったので、色違いも致し方なし…程度に考えていたけれども、まさか違う部品だとはアタマの片隅にも無かった(T-T)

 

え?こんな間違いして大丈夫なの??(TOT)

いきなりぼかーんとか爆発するレベルじゃないの??

 

精密マイナスドライバーを使ってちょっとずつICを抜いていく。

IC抜きも持っているんだけど、力の加減が出来なくて思いっきりすっぽ抜いて、結局足を曲げてしまうという事を何度かした事があって、怖いのでドライバーでちょっとずつ抜く事にしてるw

抜いた後に見てみたら、基板にちゃんとICの型番が印刷されていた。

f:id:PocketGriffon:20200802104649j:plain

もー(TOT) 思い込みって本当に怖い!

 

起動その2

ICチップの入れ間違いという大きなミスを発見し、これでちょっとは変化があるかも…と思いつつ、でもヘンに期待してもシリアルモジュールがなぁ…

…なんて思いつつも電源おーん!!

 

お!今度はIOSのLEDが点滅したままになった!動画と一緒だ!

そして一瞬だけどSDカード用のLEDが点灯した!

そして画面には?!

f:id:PocketGriffon:20200802103011j:plain

なんじゃこりゃ!!

でも画面に変化があった!嬉しい!

本体は動いてる可能性が高いって事だ!

これにはホント勇気づけられた!

そしてこの文字が化ける画面、昔さんざんっぱら見た覚えがある!

 

ちょっと話はそれるけど…

多分1992年頃だと思うんだけど、仕事で使っていたUNIXマシンが某事情により使えなくなる期間があった。でも仕事は普通にあったので、仕方なくブースの片隅に置いてあったX68000 Compact XVIで作業を進める事になった。X68000単体で作業出来る仕事では無かったので、シリアルを介して隣の席の人のUNIXマシンへログインして作業する事に。

 

確か…X68000に付属してたソフトだったと思うんだけど、端末ソフトが文字化けとか文字落ちを起こしやすく…打ち間違いなのか文字化けなのか分からず、CTRL-L(Emacsの再表示)を頻繁に押す事になる自体に陥っていた。

 

何日かガマンして使っていたけれども、どーにも精神的によろしくないとなり、自分で作る事に!この頃はノリの乗っていた時代だったので、オールアセンブラで作り上げた!確かVT100を満足するエスケープシーケンスを備え、通信バッファは64KBの豪華仕様、そしてテキストはVRAM直接アクセスの高速描画!結構よく出来てた事もあり、その後しばらーくの間、社内で使われていたらしい…と聞いた(^^)

-----

で、この実験をしている最中に、文字化けを何度も経験してる!

こういう化け方をするのは、ほぼ間違いなく通信速度があってないのだ。

今は適当に9600bpsにセットしていたが、この数字を合わせてやれば良い。

 

原因を探る その3

通信モジュールのRTSCTSが使われていない事から推測するに、フロー制御はされていなさそう。データは垂れ流しで来ると考えたら良い。1文字2文字化けるのではなくて、全体的に化けているので、データを大量に取りこぼしてる可能性がある。通信速度は9600bpsよりも速いのでは?と予測。

 

TeraTermの通信速度を上げていく…9600→14400→19200→38400→……と上げていくと、拾える文字数がどんどん増えていく。でも表示は化けたまま。どこかでぴったりと合うタイミングが来るはず…そう思ってあげていくが、TeraTermのMAXである921600bpsまで行っても文字は化けたまま。拾える文字は逆に減ってしまった。

 

うーん…これは…今までの経験と何かが違う。

ここでまた行き詰まってしまった。

 

気にしていたシリアルモジュールのDTR端子が無い問題については、この時点ではすでに問題無しと判断していた。DTR端子がON(っていうの?)にならなくて通信が開始されないのでは?と思っていたけれども、実際に文字は送られてきているので、おそらく何かのタイミング的にONが検知され、その後は通信がされるのだろうと解釈。

そうなると問題はシリアルモジュール側かも知れないと原因が絞れてきた。

 

でも…このモジュール、使えている実績のあるものだよ?

事実、これをそのままHC-40やPC-8201へ接続すると、問題なく通信が出来る。

 

理屈と、起きている問題がアタマの中で矛盾する。

何かがおかしい…でもその何かが分からない。

こういう時は、見えている現象をとにかく良く見ることだ。

 

表示されている文字は全角漢字が多い。ということは8bitデータのうち、MSBが立っているデータが送られてきている。でもV20-MBC自体は英語圏で作られているので、全角が使われている事は考えにくい。MSBはなぜ立ってしまうのか……。

 

ここにきてようやくハッとなった!

通信モジュールのビット反転プログラム!!!

実はHC-40やPC-8201は通信の送受信データがビット反転されているらしく(ホントに?)、通信モジュール側でビットを反転するプログラム変更がしてあったのだ!PC-G850ではそうなっていて、その後も別のパソコンでも通信出来てしまうため、特に意識をしていなかったのだが…ここにきてどうやら反転させてはいけないのでは??と気が付いた。

 

ツールに繋げてシリアルモジュールのプログラムを確認。

f:id:PocketGriffon:20200802113926j:plain

f:id:PocketGriffon:20200802113915j:plain

…うん、思いっきり反転させてましたね(^^;;

ようやく理屈と、起きている問題がアタマの中でイコールになった!

このチェックボックスを外して再プログラム!

よーし!よーし!!よーし!!!

 

起動その3

 これで動くんじゃないかと思う!

きっと動く!

己を信じてごー!

電源おーん!!!!

f:id:PocketGriffon:20200802114240j:plain

出たあああああああ!!!!

ついにテキストが出た!

起動してた!動いてた!!嬉しい!!!(ToT)

 

結局、動かない原因は2つあった。

1つはチップの挿し間違い(結構ひどいね…)、そしてもうひとつはシリアルモジュールの反転プログラムだ。

 

なるほど、ハードでもデバッグの仕方はソフトと同じなんだね。チェックをして信頼出来るところを1つずつ多くしていき、最終的に信頼出来ないところを重点的に見ていく。複雑に絡み合う原因を紐解きながら探っていく辺り、脳みその使い方はソフトのデバッグと同じだ。プログラマとは相性が良いのかもね(^^)

 

……チョットマテ……

注文してしまったシリアルモジュールは……orz

 

ではまた次回!(^-^)ノ