経緯
「前回」CH32X035でPD制御を行い、充電器から5V以上の電圧を取り出した。
しかし、PD制御では充電器が有する固定電圧しか指定できない。
そこで、次なる方法として自由に電圧指定出来るPPS制御を試みる事にした。
◆◆◆ 折角買ったんだから、試してみよう ◆◆◆
アリエ〇の充電器も、誇大広告が多いと思うな。
推進方法
PPS制御の実例は何点か有るが、制御の資料は見つけられなかった。
そこで、実例の解析を試みたが、プログラムが長く良く判らん。
そこで、取敢えず実例のコンパイルから始める事にした。
※今回は実例から不要な部分を削ぎ落し、多少色を付けただけ。
※ソース公開に感謝します。
「CH32X035-USB-PD-Adapter(Github)」
必要なハード
◇CH32X035のチップが乗った基板
CH32X035F8U6 Mini Core Board。
アリエクで1200円/5個程度で販売していた。
日本のアマゾ〇では売ってないようだ。
◇開発装置
WCH-LinkE
同様に500-1000円程度で販売している。日本でも売られている。
接続
下記6本を、基板とWCH-LinkE間で接続。下記2本はプログラム内で使用。
基板 WCH-LinkE
3V3 3V3 電源
GND GND グランド
DCK SWCLK デバッククロック
DIO SWDIO デバック信号
A2 RX シリアル送信
A3 TX シリアル受信
開発環境
◇コンパイラ
実例のコンパイルには、LINUX環境が必要でありこの準備をする。
と言っても、当方はWindows環境なので「WSL」を使う。
※WSL: Windows Subsystem for Linux WindowsのサブシステムとしてLINUXが動作。
「マイクロソフトのサイト」に詳しく書かれてている。
※ディフォルトではubuntuがインストールされる。
当方の環境ではubuntuでは環境が構築できず、追加でDebianを導入した。
次はツールチェーンを導入するのでLINUXを起動し、コンソール画面で下記コマンドを入力。
sudo apt-get install gcc-multilib gcc-riscv64-unknown-elf
下記コマンドで導入の確認が出来と思う。
/usr/bin/riscv64-unknown-elf-gcc --version
下記の様な表示が出れば導入成功。
riscv64-unknown-elf-gcc (12.2.0-14+11+b1) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
※ch32v003funの導入は不要のようだ。
※LINUXには詳しく無いので、同じやり方で上手く行くとも限らない。
ダメな場合は、自分で探してバンバンしてくれ。
◇ダウンローダー
WCH-LinkUtility
「WCH社」より、WCH-LinkUtility.ZIPを落す。
必要ならドライバーを入れ、デバイスマネージャーで確認する。
※Interface-WCHLinkEと、WCH-Link SERIAL(COMx)が追加されている。
WCH-LinkUtility.ZIPを適当なディレクトリに解凍。WCH-LinkUtility.exeを起動。
画面のCore:をRISC-Vに、Series:をCH32X035/34/33に変更。
基板とWCH-LinkEを接続し、USBに刺す。
Active WCH-Link Mode : (画面下の方)をWCH-LinkRVに変更し、「Get」「Set」を順に押す。
Query Chip Info(画面上3個目のアイコン)を実行して、MCU ID等が読み込まれれば接続は正常。
WSLからWCH-LinkEを操作する方法を(私は)知らないので、TargetFile: として、
下記例での入力内容を示す。※usrnameは各人の環境に合わせる。
WSL環境でコンパイルが通ったなら、Execute(画面上4個目のアイコン)を押す。
サンプルソフト(CH32X035_adp)の説明
「ソフトの格納場所(Github) 」のCH32X035_adpディレクトリに有る。
本ソフトはCH32X035の動作確認を目的としている。
チップと基板の動作確認コマンドを、BASICコマンドとして発行する。
動作確認の為にTINY BASICに下記を追加している。
◇PPS 「PPS xxxxx」(xxxxxは電圧、単位はmV)。
◇LED 「LED x」(xは1又は0)で、基板上のLEDが明滅。
BASICが起動したらPPS xxxxxと入力すると、xx.xxxVの電圧が発生する。
※起動後に充電器との接続を、一端オンオフする必要が有る。※充電器のリセット方法が判らん。
※放置していると数秒で消えるので、継続的にコマンド発行が必要。
感想
一応動作はしたが、ソフトをWindows環境に持って行きたい。
ライブラリが異なって居る様で、とんでもない量のエラーが出る。
なお、上記記載内容は全て無保証であり、各自の責任においてご利用願います。