honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

ニンテンドークラシックミニにSDかーどをつなぐ

honeylab.hatenablog.jp

追加パッドが判明したので、SDカードをつなげられそうということがわかり頑張っていましたが、成果を焦るばかりにパッドをぶっ壊してしまうということが起きた後、
導電性接着剤を購入し、わずかに残っていたビアに盛ってやることで復活させることができました。

www.amazon.co.jp

ざっくりと写真です。

ぶっ壊した写真

f:id:honeylab:20161205133511p:plain

マスキング

f:id:honeylab:20161205133556p:plain

配線をくっつけた後

f:id:honeylab:20161205133645p:plain

レビューにあるように、粘性が低いのできっちりマスキングしないと結構漏れてしまうようです。
まぁ今回はこれで間に合ったのでこれ以上触らないことにします。


さて、今回の教訓を生かして、必要なパッドはいったん中継してから引き出すことにします。

f:id:honeylab:20161205133815p:plain

 

ここで、実はRXDとTXD(UART0)とPF2/PF4は同一のピンであることが判明しました。
つまり、普通のブートローダを使いながら、SDカードを使おうとすると競合して使えなくなってしまうということのようです。

なんと、AllwinnerのSoCはいつもこういう仕様のようで、

MicroSD Breakout - linux-sunxi.org

こんなへんちくりんな変換基盤を使うとMicroSD端子からUARTが出ますよ、ということらしい。
普通のユーザはせいぜいSDからのファームアップデートぐらいだし、べつにUARTなんかいらないでしょ、っていうことか。うんこ!。

 

で、途方に暮れていたものの、まだあきらめられるか、といろいろさがしていた結果
PB0/PB1であり、UART2のTX/RXになるパッドを発見しました!!!!!!

これで、u-bootやカーネルの標準出力をUART2にすることさえできればコンソールを使いつつ、SDカードを使うことができるはずです!

 

と、そこで、こいつに使われているR16のデータシートが見つからないので、近いはずのA33を見ると、FLASHブートローダの前に、必ずSDカードを読みますよ、ということが書いてありました。
これは物の試しに、とSDカードをつないでロジアナで覗いてみます。

 

f:id:honeylab:20161205134522p:plain

なんと!MMCモードに入る前のSPIモードでのイニシャライズが始まってるではないか!ktkr!!!

というわけで、UART2 + SDカードでこいつを単体起動させることを目標に、いろいろやっていきます。

最新情報は twitter で。

twitter.com

っていうか!こんだけ書いてたら!Linuxとか詳しい人は!
もうとっくにいろいろできちゃうんじゃないですかね!

 

Linuxむずかしい。

っていうか、まぁただの組み込みCPUにつながってる何か、だとやっと体になじんできたのでどうにかなるかな。
写真に写ってるSDカードの基板は、8年ぐらい前にトラ技のLPC2388基板とVS1011をつないで、アナログカメラにバーコードを読ませると音声をしゃべる機械を作る、という謎の機械を作った時の残りの部品です。

 

ニンテンドークラシックミニ テストパッド情報

あぁぁぁっぁぁあああああぁぁあ

なんか、いろいろ調べてたらSD(boot用のcard0)のパターンが残ってるんじゃね?ってなったので適当にはんだ付けしてぶらぶらさせてたら

f:id:honeylab:20161201081416p:plain

 

 

パターンはがれた!!!!!!
ダメだこれ!!!!!

 

あぁあぁ、細い線の部分がちぎれて内層からのビアだけになっちゃった…これははんだも乗らない

f:id:honeylab:20161201075730p:plain

そうだ!導電性接着剤!(アマゾンポチー

 

反省。成果を求めて焦るより、きちんといったん中継基板をかませましょう。

ということで、とりあえず残りの配線を傷めないようにやったんだけど、あと一本治るかかなり怪しいです。

あぁぁぁぁぁ

 

で、悔しいけどパッド情報更新しとくわ。間違えてたらごめんね。
判定にはFELに入って、ホストから sunxi-tools のgpio変更ツールで試した。

Sunxi-tools - linux-sunxi.org

 

シールドケース側

f:id:honeylab:20161201080451p:plain

 

裏面

f:id:honeylab:20161201081012p:plain

 

で、FELにいるときに0x4300000から吸い出したscript.binだと

http://linux-sunxi.org/Sunxi-tools#script-extractor 

script-extractor

This device side tool reads the script.bin data from RAM at the magic address 0x43000000 and saves it to a file. This tool gets statically compiled so it can be used on Android as well. Please note that it is only usable with FEX based kernels (as used in the stock Android firmware) and does not make any sense with the devicetree based mainline kernel.

card0が無効になってるんだけど、

CPUのリファレンスを見ると、何が何でもcard0から起動してくれるように思うし、

SD_CLKのピンがパタパタしてるし、カードつないだらCMDで初期化かけてるっぽいんだよね。

f:id:honeylab:20161201081330p:plain


だから、なんかできるんじゃないかと思って、導電性接着剤が到着するのを待つ。