CH32V003J4M6 PD1 SWIO ピン共用問題 Flash eraseでの解決方法

まぁ、慣れない開発環境だとよくあることなんですけ、巷で流行りのRISC-Vコア CH32V003J4M6というSOP8パッケージの8pin品で起こった失敗とリカバリ方法です。

J4M6の8ピンパッケージは、PD1とUTXとSWIOが共通ピンです。

で、シリアル出力のデフォルト UTXピンなので、UARTのシリアル出力を無計画にプログラムしてしまうと、次回からの再書き込みができなくなります。

こんなんエラーが出てボード認識できなくなります。

同じ教訓を以下のサイトでも紹介されています。

8PinのRISC-VマイコンCH32V003J4M6にプログラムを書き込めなくなった時の一手段

小ピンマイコンの酷暑(1) CH32V003、8ピンマイコンからのHelloWorld

SWIOピンからシリアル出力が割り当てられてしまっているので、チップとの通信ができなくなってしまっているので以後のFlash消去や再書き込みができないという訳ですね。

もう再起込みできなくなってしまったと途方に暮れるのではなく、Flashを強制消去をしてしまえば再書き込みができます。

前述のリンクでも紹介されていますが、WCH-LinkUtilityでプログラムを全消去してから再度プログラムを書き込むことで再書き込みできるようになります。

WCH-LinkUtility → Target → Clear All Code Flash-By Power off

まぁ少ないピンの共用問題あるあるなんだけど、デバッグ用に他の汎用ピンにUARTでモニター出力できるようにすればですね。