Ox64と称していたがチップ開発元ではBL808と言うらしいので以後はBL808と呼ぶ事にする(BLが何の略かは知りません:)。このチップはRISC-V32x2+64x1のトリプルコアらしくて、Linuxが動作するのはRISC-V64コアで内蔵PSRAM 64Mbitの空間になるらしい。最初に書きますがYouTubeでBL808を動かす動画が紹介されていてそれを参照するのが早道と思われるので先ずは引用:
0.リハビリと言う名のハンダ付け
この数年で視力が著しく悪化している為、ハンダ付けに不安がある中、記録によると7〜8年振りぐらいの様でまたぞろ工具類を紛失したので秋月に注文して揃える。850円で宝山のハンダゴテが買えたのは驚きだが温度調節無しの30Wなのでピンヘッダには好適だがSMD部品には厳しいかもしれない。
左目が0.1なのでステレオ感が無くて具合が悪いがどうにか20x2のピンヘッダをハンダ付けし、以下のドキュメントを参照して作業を進める。金物の接続は以下のピンアウトを参照しつつ:
最初に書くべき事かもしれないがBL808では:
B.UART(一般的にはUSB-serial経由)では使用可能なチップに制限がある。具体的にはFTDIのFT232系では書込ツールは動作しないらしい(というか動作しませんでした)。
まあ、ここが今回のオチなのだけど(FT232で動かないなんて・・・)、それはさておき配線図:
BL808のUARTモードではUART-TXがpin1にUART-RXがpin2にGNDがpin3にに配置されているのでBL808のbootスイッチとpin30のリセット操作でbootモードに入れて、以後はBL社の書込ツールでファームウェアを書き込む事になる。USB-serialでUARTモードで書込を行う場合は:
・BL808のpin1(uart-txd)をUSB-serialのRXDに、
・BL808のpin2(uart-rxd)をUSB-serialのTXDに所謂クロスパッチ接続(古い:)接続して、
・BL808のpin3(gnd)をUSB-serialのGNDに接続する。まあ、常識的な手順ですよね(ここまでは:)。繰り返しになるがFT232系では動作しない事が本家サイトでも確認されている(上記本家サイト参照)。私はココでハマりました(嵌っています)。
気を取り直して、BL808へのファームウェア書込に必要な情報と手順は
1.Ox64(BL808)の回路図を入手
2.Ox64(BL808)にファームウェアを書き込む方法の手順書を入手
3.開発元の書込ツールの動作環境条件?(今回はココで挫折:)
4.書込ツールと相性の良いUSB-serial変換チップとは?
となる。支那製ボードは覚悟はしていたが情報量と自分のスキルと相まってすんなり行った例が無く(個人的感想です:)、そこが暇つぶしの楽しみでもあるのでネットの情報を頼りに機械翻訳の力を借りて、チビチビやってみよう。
1.Ox64(BL808)の回路図
本家?サイトから収集
今回入手したバージョンはコレらしい:
https://files.pine64.org/doc/ox64/PINE64_Ox64-Schematic-202221018.pdf
・BL808datasheet:
https://raw.githubusercontent.com/bouffalolab/bl_docs/main/BL808_DS/en/BL808_DS_1.2_en.pdf
・BL808Reference Manual:
https://raw.githubusercontent.com/bouffalolab/bl_docs/main/BL808_RM/en/BL808_RM_en_1.3.pdf
これらのドキュメントは上記PINE本家サイトからのリンク。BLとはBouffalo Labの略らしい。
2.Ox64(BL0808)にファームウェアを書き込む方法と手順書
ここにBLさんからBL808のLinuxの作成方法とファームウェア書込ツールの入手方法が記載されているのでこれに従って・・・とイカないのが世の常で罠に嵌ってしまった模様(FT232で動作しないツールとは?)。
4.書込ツールと相性の悪いUSB-serial変換チップ
使い慣れたFT232(ここ重要)でOx64(BL808)とUARTモードでの接続を上記の通り済ませ、Ubuntu20.04で/dev/ttyUSB0の接続も確認し、書込ツールでopen/closeも出来る様だが・・・
[14:18:48.151] - shake hand fail
[14:18:48.162] - ErrorCode: 0050, ErrorMsg: BFLB IMG LOAD SHAKEHAND FAIL
[14:18:48.163] - Burn Retry
[14:18:48.164] - 0
[14:18:48.164] - Burn return with retry fail
で書込が出来ない。切り分けの為にBL808を電源Offにしても同じエラーになり、FT232を切り離すと書込ツールから/dev/ttyUSB0が見えないと言われるのでUSB-serial変換チップとBL808のshake handとやらがfailらしい。ネットで検索すると色々調べている方々がおられて(玉石混交な集合知、ですな:)、城跡のボーレート下げたり、boot,resetの手順変えたり試行錯誤したが解消されず、Wikiに記載のある:
Compatible UARTs when in bootloader mode
When the Ox64 is in bootloader mode, some UARTs are unable to communicate with it. When this is the case, utilities such as BLDevCube are unable to actually program the device. If you see "Shake hand fail" and an empty ack, and your device is in bootloader mode, then it is likely an incompatible UART.
The below devices have been tested and verified as working:
- Raspberry Pi Pico - running the following UART firmware (GP4 and GP5 are used for port 0, GP12 and GP13 for port 1)
- Compiled binary for Pi Pico and connectivity diagram is here
- ESP32 with CP210x - bridge the EN pin to ground to disable the ESP32 itself, and then connect the TX on the esp32 to 14 on the Ox64 and RX to pin 15. Note that only baud rate 115200 works, and this doesn't seem to work for everyone)
- Stand-alone CP2102 dongle works at 115200 baud. Brand used was HiLetgo.
- STM32F401 BlackPill - running the Black Magic Debug firmware
- STM32F103C8T6 BluePill - running Black Magic Debug.
- Some UART adapters based on the FT232H (note that the FT232RL does not work, and neither does the Pine 64 JTAG)
- Some CH340G based adapters work and some don't.
ふう〜ん、FT232Hでは動くがFT232RLでは駄目らしい。最後のパラグラフについてはコメントしないでおこうか(憮然)。普通は西側世界では標準的で歴史あるUSB-serialのFT232系が動作しない書込ツールは作らないと思う(不具合があればツールを修正すれば良い)のだが、きっと開発元の事情があるのだろう(きっと、ね)。
そんな訳でFT232以外のUSB-serialで上記動作リストに掲載されており、ネットの情報らも玉石混交なりに加味した上で、CP210x系のモジュールを手配中。騙されてる感も多分にあるが開発元が動かないと言っている物をどうこうする力量は持ち合わせていない(書込ツールがOSS化でもされない限り)のでそれが届く迄、保留。。。