2021年1月23日土曜日

BluepillをBlack Magic Probeにしてみた

 nRF52840にどうやってファームウェアを焼くか探していたら、Black Magic ProbeというオープンソースのSWDデバッガがあるらしいということがわかった。
STLink V2の互換品やSTM32F103搭載のマイコンボードの通称Bluepillにファームウェアを焼くだけで使えるらしい。
Black Magic Probeのファームが焼かれている製品も売っていてSegger J-linkより安いのでこうやってArduinoのブートローダーを焼くだけの目的にはいいかも?

というわけで早速手持ちのBluepillをBlack Magic Probe化してみることに。

ファームウェアはgithubからStable release v1.7.1をダウンロードしてきて使用することに。

このファームウェアを解答すると複数のbinファイルが入っているけど、今回はBluepillを使用するのでswlinkを使用することに。swlink用ファームはBluepillに最初からはんだ付けされているSWDポートをそのまま利用できるので、Bluepillにピンヘッダをハンダしなくてもこのファームを書くだけでそのままBlack Magic Probeとして使える。

というわけでまずはBluepillにblackmagic_dfu-swlink.binを書き込む。書き込み手順は過去にBluepillにArduino用のブートローダーを書き込んだときと同じなのでそちらを参照。
ピンヘッダを実装していないBluepillにICクリップでUSB TTL変換基板をつないで書き込んだ。

DFUファームウェアを書き込んだBluepillのジャンパピンをどちらも0に戻してUSBでPCBに接続するとDFUモードで認識されるので今度はZadigを使用してドライバをインストールする。

ちなみにBluepillの緑色LEDが点滅しているときがDFUモード。

Zadigを起動したらOptionsを開いてList All Devicesを選択。
するとリストにBlack Magic (Upgrade), SWLINKがでるのでそれを選択して、ドライバの種類はlibusbKを選択してReplace Driverボタンを押す。
するとドライバがインストールされてDFUモードでファームウェアを書き込めるようになる。

次にDFUモードでBlack Magic Probeのファームウェアを書き込むためにdfu-utilをダウンロードしてくる。今回はdfu-util-0.9-win64を使用した。
コマンドが面倒なのでblackmagic-swlink.binをdfu-util.exeと同じディレクトリに突っ込んでコマンドプロンプトでdfu-util.exeのディレクトリに移動。

dfu-util -d 1d50:6018,:6017 -s 0x08002000:leave -D blackmagic-swlink.bin

を実行するとBlack Magic Probeのファームウェアが書き込まれる。

書き込まれたあとはBluepillのLEDが薄く点灯するはず。これでBlack Magic Probeの準備は完了。USBで接続するとCDC COMポートが2ポート認識し、BluepillのSWDピンヘッダ(GND、CLK、DIO、3.3V)をSWDデバッガとして使用することが可能になった。
GNU Arm Embedded Toolchainから使用できる。


2021年1月17日日曜日

nRF52840モジュールを買ってみた

 ArduinoでNordicのnRF52840が開発できることを知ってちょっと気になったのでAliexpressで調べていたらEBYTEのE73-2G4M08S1Cってのが安かったので購入してみた。技適付きならMinewのMS88SF2あたりも良さげだったんだけどとりあえずお試しなので例の申請をしてみようかなと一番安いやつを…

やはり例のマークはない。チップアンテナなのに安いなぁ

シールド付き。思ったより小さかった。
裏面のシルクがなにげに便利。内側にも端子があるので基板にはリフロー実装かねぇ
結構小さいので全部のIO出すのに苦労したんだろうな…

とりあえず試しにSWDが使えるInfinionのライタとかST-Link V2のJ-Link化でSegger Flasher上でnRF5を選んで見たりしたけどどうやら使えなさそうなことがわかった…
まぁ例の申請がOK出るまでにブートローダーをどうやって書くかを調べておこうかな…

2021年1月3日日曜日

VL716なSATA USB3.0変換基板を12V対応化してみた。

 年末の掃除で結構3.5インチなHDDが出てきたんだけど中身を確認するのが面倒なので放置していた…
もっとかんたんに中身を確認できたら確認するのに!ってことで2.5インチSSD用に使っていたVL716なSATA USB変換基板を改造してみた。

3.5インチドライブにつなぐためのケーブルも作ったんだけどなんか出すのが面倒で…
3.5インチのHDDは12Vが必要なんだけど、この手のUSB給電タイプの変換基板はもちろん5Vしか存在しないわけで…

ということで単純に12VのACアダプタをそのままさせるようにしてみた。これなら手軽に使える…はず…

というわけで用意するものは5.5mmジャックと適当なジャンパだけ。もともとこの基板には5V給電用の端子を実装するところがあるのでそこの一部の穴を利用して固定することに。
穴に入るように端子のGND側を削る。あと他の端子をカット。

端子がジャンパ抵抗とかに当たるので厚手の両面テープをカットして貼り付け。
部品の部分は逃しておいた。
あとはちょっと太めのダイオードの足でSATA電源の12Vと電源端子のプラス側をつなぐだけ。
一応これでも結構しっかり固定されてるけど、念の為接着しておこうかなぁ

とりあえずこれですげー便利に使えるようになった。
あまり古いHDDだと5V結構食うので注意だけどね…
本当は5Vラインで12Vラインをオン・オフできるようにロードスイッチとかつけたほうがいいんだろうけど動いたのでいいや。自己責任だけど。