ch55xduinoとch32のarduinoのGPIO


CH32V用のプログラムを,リファレンスマニュアルを見ながら書いていたら,同じ会社のCH55xとは,GPIOの仕様がかなり違うことに気がついた. 機能としてはCH32Vの方が多いが,使い勝手はCH55xの方が良い気がする.

arduinoにWCHサポートを入れてCH32Vのプログラムを書く場合には,pinModeとして INPUT,INPUT_PULLUP,INPUT_PULLDOWN,INPUT_ANALOG,OUTPUT,OUTPUT_OD,OUTPUT_AF_PP,OUTPUT_AF_ODが指定できる. マニュアルの等価回路を見ると,出力modeのときには入力は無効で,INPUTとINPUT_ANALOGのときには出力は無効のようである. INPUT_PULLUPとINPUT_PULLDOWNは出力の値によって区別されているので,そのどちらかにしてからdigitalWriteをすると,modeをこれらの間で変えることが出来ると予想される. その動作は確認していないが.

ch55xduinoでCH55xのプログラムを書く場合には, INPUT,INPUT_PULLUP,OUTPUT,OUTPUT_ODとpinModeで指定できるmodeの種類は少なくなっている. 出力modeのときでも,入力は有効であり,INPUT_PULLUP modeのときには,出力は有効である. INPUT以外にしておけば,GPIOを入出力の両方で使うことが出来るのである.

arduinoでプログラムをしていると,マイコンの種類をあまり意識しないで使うことができる場合も多いが,これらのマイコンのGPIOを使うときには,細かな違いを意識した方が良いだろう.