1.概要
と言うことで、調査を始めた。
2.仕様と試験用回路例
CH32V203K8T6回路図
CH32V203K8T6仕様

3.開発環境の概要
|
(1)IDEの種類 ※IDEとは Integrated Development Environment の略で統合開発環境と呼ばれている。 ・Arduino ・MounRiver Studio がある (2)CH32V203K8T6 と開発用パソコンを接続する方法 ・USBによる接続 ・WCH-LinkEによる接続 がある。 (3)上記開発環境と接続およびOSの組み合わせ
|
4.最初の動作
4.1動作確認
動作確認用の回路は秋月電子で 32pinQFP変換基盤 150円とWCH-LinkEエミュレーター (980円)を購入し、
ブレッドボードで最低限の配線とした。
LEDをPB0に接続し、点滅するプログラムで動作確認を実施した。
回路図は右図のとおり、発信回路は内部回路を使用する。
動作確認用のプログラムは下記の通り
プログラム起動時の通信状況とLEDが約1.0秒でON,OFFを繰り返す。

LEDをPB0に接続し、点滅するプログラムで動作確認を実施した。
回路図は右図のとおり、発信回路は内部回路を使用する。
動作確認用のプログラムは下記の通り
プログラム起動時の通信状況とLEDが約1.0秒でON,OFFを繰り返す。

4.2外部発信子は必要か1
LEDの点灯ではCH32V203K8T6において、外部クリスタル(水晶振動子)は必須ではありません。
外部クリスタルを一切接続しなくても、マイコンを動作させ、プログラムを書き込んで動かすことが可能です。
これは、マイコンの内部に高精度な内蔵RC発振器(HSI: 約8MHz)が標準で搭載されているためです。
ただし、「どのようなアプリケーション(機能)を作るか」によって、外部クリスタルを載せるべきかどうかのトレードオフが変わります。
以下の基準を参考に判断してください。
(1)外部クリスタルが「不要」なケース(内蔵RC発振器で十分な場合)
(2)外部クリスタルが「必須、または強く推奨」されるケース
外部クリスタルを一切接続しなくても、マイコンを動作させ、プログラムを書き込んで動かすことが可能です。
これは、マイコンの内部に高精度な内蔵RC発振器(HSI: 約8MHz)が標準で搭載されているためです。
ただし、「どのようなアプリケーション(機能)を作るか」によって、外部クリスタルを載せるべきかどうかのトレードオフが変わります。
以下の基準を参考に判断してください。
(1)外部クリスタルが「不要」なケース(内蔵RC発振器で十分な場合)
• 一般的な電子工作・制御: Lチカ、タクトスイッチの読み取り、モーター制御、LEDの点灯制御など。
• 一般的なシリアル通信(UART/USART): WCH-LinkEを繋いでシリアルモニタにログ(printf)を出す程度であれば、内蔵RC発振器の精度でも十分に通信可能です。
• メリット: 部品代(クリスタルとコンデンサ2個)が浮き、基板のスペースを節約でき、配線の手間も減ります。
• 一般的なシリアル通信(UART/USART): WCH-LinkEを繋いでシリアルモニタにログ(printf)を出す程度であれば、内蔵RC発振器の精度でも十分に通信可能です。
• メリット: 部品代(クリスタルとコンデンサ2個)が浮き、基板のスペースを節約でき、配線の手間も減ります。
(2)外部クリスタルが「必須、または強く推奨」されるケース
• USB機能(HID、仮想COMポート、大容量ストレージなど)を使用する場合
CH32V203の大きな強みであるUSB機能(USB 2.0 Full Speed)を利用する場合、非常に厳密なクロック精度(数千ppm以下)が求められます。
内蔵RC発振器は温度変化などで周波数がズレやすいため、USB通信を行う場合は、外部に「8MHz」または「12MHz」の水晶振動子を接続することが必須となります。
正確な時間を刻むタイマーや時計(RTC)が必要な場合
「1秒の狂いもなくカウントしたい」「時計(リアルタイムクロック)を実装して時刻を保持したい」という場合は、 内蔵RCでは温度によって時間が進んだり遅れたりします。
この場合は、メインクロック用の水晶振動子(8MHz等)や、時計専用の低速水晶振動子(32.768kHz)を接続する必要があります。
CH32V203の大きな強みであるUSB機能(USB 2.0 Full Speed)を利用する場合、非常に厳密なクロック精度(数千ppm以下)が求められます。
内蔵RC発振器は温度変化などで周波数がズレやすいため、USB通信を行う場合は、外部に「8MHz」または「12MHz」の水晶振動子を接続することが必須となります。
正確な時間を刻むタイマーや時計(RTC)が必要な場合
「1秒の狂いもなくカウントしたい」「時計(リアルタイムクロック)を実装して時刻を保持したい」という場合は、 内蔵RCでは温度によって時間が進んだり遅れたりします。
この場合は、メインクロック用の水晶振動子(8MHz等)や、時計専用の低速水晶振動子(32.768kHz)を接続する必要があります。
4.3外部発信子は必要か2
具体的にディジタルフィルターのプログラムでは外部発信子は不要か?
デジタルフィルターの処理そのものだけであれば、外部クリスタル(水晶振動子)は不要であり、内蔵RC発振器(HSI)だけで十分にプログラムを動作させることができます。
ただし、デジタルフィルターを機能させるためには「一定の時間間隔(サンプリング周期)」でA/D変換を行う必要があります。
この「サンプリング周期にどれだけの正確さを求めるか」によって、外部クリスタルの必要性が変わります。
以下の判断基準(トレードオフ)を参考にしてください。
(1) 内蔵RC発振器(外部クリスタル不要)で十分なケース
(2) 外部クリスタルを載せる(強く推奨される)ケース
もし今回の目的が「A/Dコンバータで読み取ったセンサー値のパタパタしたブレを、移動平均などで綺麗に落ち着かせたい」という程度であれば、 外部クリスタルは完全に不要です。回路をシンプルにするためにも、まずは内蔵RC発振器だけで進めることをおすすめします。
逆に、オーディオ信号の処理や、ミリ秒単位で完全に均一なタイミングを維持し続けなければならない高度な信号処理を行う場合は、 8MHzまたは12MHzの水晶振動子とコンデンサ(22pFなど)を5ピン・6ピンに載せておくのが安全です。
デジタルフィルターの処理そのものだけであれば、外部クリスタル(水晶振動子)は不要であり、内蔵RC発振器(HSI)だけで十分にプログラムを動作させることができます。
ただし、デジタルフィルターを機能させるためには「一定の時間間隔(サンプリング周期)」でA/D変換を行う必要があります。
この「サンプリング周期にどれだけの正確さを求めるか」によって、外部クリスタルの必要性が変わります。
以下の判断基準(トレードオフ)を参考にしてください。
(1) 内蔵RC発振器(外部クリスタル不要)で十分なケース
• 大まかなノイズ除去・波形のスムージングが目的の場合
センサー(温度、気圧、光、大まかな電圧など)の細かな値をデジタルフィルター(移動平均フィルターや、単純なローパスフィルターなど)に通して、 値を滑らかにしたいという用途であれば、内蔵RC発振器で十分です。
・理由:
内蔵RC発振器は温度変化などで「1.000ミリ秒」の周期が「1.005ミリ秒」や「0.995ミリ秒」にわずかに揺らぐ(数%程度の誤差)ことがありますが、 一般的なフィルター処理においてこの程度のブレは計算結果にほとんど影響を与えないためです。
センサー(温度、気圧、光、大まかな電圧など)の細かな値をデジタルフィルター(移動平均フィルターや、単純なローパスフィルターなど)に通して、 値を滑らかにしたいという用途であれば、内蔵RC発振器で十分です。
・理由:
内蔵RC発振器は温度変化などで「1.000ミリ秒」の周期が「1.005ミリ秒」や「0.995ミリ秒」にわずかに揺らぐ(数%程度の誤差)ことがありますが、 一般的なフィルター処理においてこの程度のブレは計算結果にほとんど影響を与えないためです。
(2) 外部クリスタルを載せる(強く推奨される)ケース
• 厳密な周波数解析(FFT処理など)や特定の周波数だけを完全にカットしたい場合
「正確に50Hzの商用電源ノイズ(ハムノイズ)だけを急峻なデジタルフィルターでカットしたい」「音声信号をサンプリングして特定の周波数成分を綺麗に抽出したい」といった場合は、 外部クリスタルが必要です。
・理由:
サンプリング周期(時間を計るものさし)が数%でも伸び縮みしてしまうと、デジタルフィルターの「カットオフ周波数」の 計算式自体が物理的にズレてしまい、狙った通りのフィルタリング性能が出なくなるためです。
「正確に50Hzの商用電源ノイズ(ハムノイズ)だけを急峻なデジタルフィルターでカットしたい」「音声信号をサンプリングして特定の周波数成分を綺麗に抽出したい」といった場合は、 外部クリスタルが必要です。
・理由:
サンプリング周期(時間を計るものさし)が数%でも伸び縮みしてしまうと、デジタルフィルターの「カットオフ周波数」の 計算式自体が物理的にズレてしまい、狙った通りのフィルタリング性能が出なくなるためです。
もし今回の目的が「A/Dコンバータで読み取ったセンサー値のパタパタしたブレを、移動平均などで綺麗に落ち着かせたい」という程度であれば、 外部クリスタルは完全に不要です。回路をシンプルにするためにも、まずは内蔵RC発振器だけで進めることをおすすめします。
逆に、オーディオ信号の処理や、ミリ秒単位で完全に均一なタイミングを維持し続けなければならない高度な信号処理を行う場合は、 8MHzまたは12MHzの水晶振動子とコンデンサ(22pFなど)を5ピン・6ピンに載せておくのが安全です。
