見出し画像

ぱちもんのDSO150にlnDSO150を導入する


TL;DR

  • CH32F103C8T6(STM32F103C8T6でない)を積んだぱちもん DSO150 への導入手順です

  • Flash Bootloader Demonstrator を使ったシリアルからのファームウェア投入は(多分)できないので、ST-LINK v2 を使うのです

  • 手順書はここ(純正品の導入方法ページと違うので注意)にありますが、駄目なら ST-LINK utility を使うのです

  • 書き込むバイナリfnirsi と書いてあるやつです

  • はんだごてが必要です

  • チップ部品を外したりつけたりする作業必須です


必要なもの

  • はんだごて(とそこそこの技量と度胸)

  • はんだ(吸い取り線と吸い取り器もあるとなおよし)

  • 細い電線(30cm もあれば十分)

  • ST-Link v2 or Blackmagic(ロジック・電源電圧に注意)

  • 5Vの基準電源(最後のキャリブレーションに使います)

  • PC(Windows11可)


経緯

親しい方から「よくわからない頂き物のハンディオシロがあるけどいる?」と聞かれて「いります!」と答えて我が家に来たのがこの子でした。

頂いた後に付属の説明書を読みますと、小さく 15001K/15002K とありまして、このキーワードで調べるとJYETechなる会社が販売している DSO Shell (DSO150) というオシロ製作キットが出てきました。しかし、何かが変です。説明書にはリード部品のはんだ付けが必要ですよという記述がありますが、分解するとその部品たちはすべてチップ部品で既にはんだ付けされていたのでした。あれ…?

怪レいU1

さて、基板を眺めていると、あるものが目に留まりました。シルク印刷に STM32F103C8T6 とありますが、その隣にあるチップには WCH の刻印。しかもよく見ると、CH32F103C8T6 とあるではありませんか。

なるほど、なるほど。
本体もぱちもんなら実装されている部品もぱちもんのようです。

※ こてんぱんに書いていますが、これをくださった方を貶める意図はありません。ぱちもんであることも、分解して眺める作業も、改造に四苦八苦する作業もとても楽しめました。これを楽しめない方は、秋月とかで純正品を買うことを強くお勧めします。


(失敗)シリアルポートからのファームウェア投入

JYETech(正規品の会社)の手順書には、「ファームウェアアップデートには LVTTL なシリアル端子と通信しなきゃいけないので便利な USB 変換モジュールがオススメ」と書いてあります。

ではと早速 FTDI のチップを積んだそれを持ってきて、J1とJ2をジャンパして、手順書通りにしてみますが、Flash Bootloader Demonstrator に「The interface firmware FAILED to reset/halt the target MCU」と言われます。

少なくとも、Flash Bootloader Demonstrator が想定する Bootloader は積んでいないようです。

※ この時点では、JYETechの公式ファームではなく、Open-DSO-150 を導入しようとしていました。今回導入したのは lnDSO150 です


(失敗)STLINK Toolsを使う

ここで DSO150 に導入することのできるファームウェアについて色々調べていると、lnDSO150 というものを発見しました。なんと、これはフラッシュの容量から制限付きではあるものの、CH32F103C8T6 を積んだぱちもんにも使えると書いてあります。さらに Open-DSO-150 より新しく、ビルド済みのバイナリまで置いてあって親切。

さっそく手順書を読むと、Blackmagic もしくは、ST-LINK v2 を使えばいいみたい。幸い手元に Nucleo-F446RE があり、これのライタ部分は ST-LINK v2 であって、切り離さなくても別なマイコンに書き込めるようなので、これでやることにしました。

しかし、st-util がうまく動いてくれません。管理者権限を与えてみてもダメです。どうも USB 周りでコケているようです。くじけたので別の方法を探すことにしました。


(成功)ST-LINK utility を使う

とりあえずファームウェアが投入できれば良さそうなので、STMicro 公式のツールに頼ってみます。

まずはここを参考に、ジャンパを外して Nucleo ボードを ST-LINK v2 にし、DSO150 に接続します。DSO150 の JP1 をジャンパさせるのも忘れずに。

実体配線図

次に、ここから ST-LINK Utility を落としてきてインストールし起動します。

なんと STM32F として認識しました。しかし、Can not read memory! と出ています。ぱちもんのくせにファームウェアは読ませたくないようです。仕方ないのでプロテクトを解除します(後戻りできなくなります)。

Target → Option Bytes… とたどり、出てきたウィンドウで Read Out Protection を Disabled にし、Apply を押します。

これでファームウェアが書き込めるようになったので、そのようにします。Binary File タブを選択するとファイル選択のウィンドウが開くので、解凍したバイナリを選択してあげます。

今度は Target → Program & Verify… とたどります。

Start を押して1分半くらい待ちます。

ちゃんと書き込めたならこんな感じのログがでているはずです。


基板を改造する

ファームウェアを書き込めても、それで終わりではありません。lnDSO150のWikiによると、「無改造の DSO150 は LCD との通信線とロータリエンコーダのピンが一緒なので、ロータリエンコーダの入力が無視されたり遅れたりするから、PB14/PB15 に割り当てたのでそっちを使ってね」と書いてあります。

…つまり、はんだ付けの時間です!

こんな感じに、R5 と R6 を外し、ロータリエンコーダ側の抵抗がついていたパッドからから PB14 と PB15 にそれぞれつなぎます。
(ロータリエンコーダ直上の修正痕は気にしないでください)

これで lnDSO150 の書き込みと改造は終了です。あとはJP1のジャンパーを外し、組み立てなおし、5Vの基準電源を用意し、9Vの電源をつなげて電源を入れ、キャリブレーションすれば終わりです。お疲れ様でした。

補足

UIの説明Wikiにあります。ロータリエンコーダ長押しでメニューを出せたり。


この記事が気に入ったらサポートをしてみませんか?