田舎おやじの言動log

田舎で暮らすおっさんの言動を適当にロギング。

うまくいかなかったこと

PlatformIO、つまりArduino環境でPico Wを触ろうとして大苦戦。

そもそもArduino公式版が未だにWに対応していないのがガッカリポイントで、earlephilhower版を使うしかない状況。ところがどういう訳かネットの情報通りにやってもplatformio.iniの依存関係解決でコケてしまう。必要なファイルをgitからうまく拾えないらしい。
gitで拾えないファイルは毎回ランダムで、何度もやり直せばいずれうまくいくかと試してみても、キャッシュをクリアして最初からやり直す模様。そしてこの間VSCodeがまともに使えなくなるのが痛い。で、諦めて普通のPicoを公式で動かそうとするとUARTとかきちんと動作しないときた。全然動かないのならともかく、受信を検知するのに文字列がうまくとれなかったりとれたりとタイミング的に安定しない。Arduinoに似せたラッピング関数の挙動が異なるとしか思えず、ビルドは通るだけに原因が掴みづらくて余計タチが悪い。ArduinoやM5Stackと環境を揃えたかったが、当面Picoはお預けかな。はぁ…せっかくArduinoに慣れてきたのに。

あと先日うまくいったと思っていたPico利用W27C512への書き込みも、しょうもない理由で解決に時間が掛かってしまった。

症状として無事BASICが書けたと思ったROMを挿すとSBCZ80が起動しない。あれ?と思い中を読んでみるとデータが化け化けで、てっきり書き込みにしくじったのかとあれこれいじり、最終的にはArduino MegaとZIFソケットで簡易版を作ってコードを移植したりした。そしてそちらでは読み書き消去照合が出来るものの、SBCZ80に挿すと起動しないし、Pico版で読むと文字が化け化け。
正直理由が分からず詰んだと諦めかけた時、唐突にROMの後半32kに書くことを思い出しトライ。動かない。半泣きになりながら念のためSBCZ80の資料に目を通すと「後半16KBに書いてください」とあるではないか。ROM容量16KBだったのかよ!
そしてC000から書き込むと無事にBASICが起動した。なんてこった。つまりArduinoもPicoも書き込みまではOKで、Pico版はROM読み込みに問題があるということか。32ピンROM変換時は基板でA15をGNDに落としてアドレス先頭に無理矢理配置させていたことが変な仇になってしまった。

ちなみにPico版は書き込み直後の照合は成功するのに、電源入れ直しでメタメタになるところから、電源ON直後のI/O設定がおかしいらしい。まさか自分の頭が不具合原因だったなんて。

そんなわけで今週まだ始まったばかりなのにすっかり疲れ果ててしまった。ROMライターもようやく本来の目的を果たせたが、Arduinoでの成功例は山ほどあるので敗北感が凄い。これはもう意地でもPico版を完成させなければ。