1 動作確認
1.1 動作確認品
動作確認品は2つ
秋月電子で購入した 120円 MPU CH32V203K8C6
amazonで購入した 574円 CH32V203C8C6 マイコンボード
CH32V203C8C6 マイコンボードでプログラムするときに、下記メッセージが出て書き込むことが出来ませんでした。 Before operation, please ensure disable Code-Protect first.
しかし、WCH-LinkUtilityを起動して「Disable Read-Protect」で解除したところ、プログラムを書き込むことが出来るようになりました。
※つまりWCH-LinkUtilityを起動させるためOSとしてはWindowsが必要となりました。(Linuxだけで出来ないのが残念!)
なお途中でSTM32Fシリーズも確認したので、比較表にはこのSTM32Fシリーズも含めて記載した。
秋月電子で購入した 120円 MPU CH32V203K8C6
amazonで購入した 574円 CH32V203C8C6 マイコンボード
CH32V203C8C6 マイコンボードでプログラムするときに、下記メッセージが出て書き込むことが出来ませんでした。 Before operation, please ensure disable Code-Protect first.
しかし、WCH-LinkUtilityを起動して「Disable Read-Protect」で解除したところ、プログラムを書き込むことが出来るようになりました。
※つまりWCH-LinkUtilityを起動させるためOSとしてはWindowsが必要となりました。(Linuxだけで出来ないのが残念!)
なお途中でSTM32Fシリーズも確認したので、比較表にはこのSTM32Fシリーズも含めて記載した。
1.2 動作比較表
| Board Name | --- | WA00008 | NUCLEO-F401RE | NUCLEO-F446RE | |
| MPU | CH32V203K8T6 | CH32V203C8T6 | STM32F401RET6U | STM32F446RET6U | |
| 動作最大周波数(MHz) | 144 | 144 | 84 | 180 | |
| CPU | QingKe V4B | QingKe V4B | ARM Cortex-M4 | ARM Cortex-M4 | |
| 実行周波数(MHz/ns) | 144 / 6.9 | 144 / 6.9 | 84 / 12 | 180 / 5.5 | |
| ②実行時間(ns/cycle) | 20.7 / 3 | 20.7 / 3 | 60 / 5 | 33 / 6 | |
| ③実行時間(ns/cycle) | 20.7 / 3 | 20.7 / 3 | 60 / 5 | 33 / 6 | |
| ④実行時間(ns/cycle) | 20.7 / 3 | 20.7 / 3 | 60 / 5 | 33 / 6 | |
| ①実行時間(ns/cycle) | 20.7 / 3 | 20.7 / 3 | 84 / 7 | 38.5 / 7 | |
| FLASH Memory(KB) | 64 | 64 | 512 | 512 | |
| RAM Memory(KB) | 20 | 20 | 96 | 128 | |
| パッケージ | LQFP32 | LQFP48 | LQFP64 | LQFP64 | |
| ユニバーサルIO | 26 | 37 | 50 | 50 | |
| 最小動作電圧(V) | 2.4 | 2.4 | 1.7 | 1.8 | |
| 最大動作電圧(V) | 3.6 | 3.6 | 3.6 | 3.6 | |
| 16bitタイマー | 6 | 6 | 6 | 12 | |
| 32bitタイマー | -- | -- | 2 | 2 | |
| モータ制御用タイマ | -- | -- | 1 | 2 | |
| 12bitADC | 1 | 1 | 1 | 3 | |
| 12bitADCチャンネル数 | 10 | 10 | 16 | 16 | |
| 12bitDACチャンネル数 | -- | -- | -- | 2 | |
| SPI | 1 | 2 | 3 | 4 | |
| QUADSPI | -- | -- | -- | 1 | |
| I | -- | -- | 2 | 3 | |
| I | 1 | 2 | 3 | 4 | |
| 高速I | -- | -- | -- | 1 | |
| U(S)ART | 2 | 4 | 3 | 4+2 | |
| CAN | 1 | 1 | -- | 1 | |
| SDIO | -- | -- | 1 | 1 | |
| USB OTG FS | 1 | 1 | 1 | 1 | |
| USB OTG HS | -- | 1 | -- | 1 | |
| SAI | -- | -- | -- | 2 | |
| SPDIFRX | -- | -- | -- | 1 | |
| DCMI | -- | -- | -- | 1 | |
| OPA | 2 | 2 | -- | -- |
■速度の設定 CH32V203C8T6、CH32V203K8T6 system_ch32v20x.cの設定部
CH32V203C8T6は外部発信で最大周波数 144MHz
#define SYSCLK_FREQ_144MHz_HSE 144000000 を選択する。
CH32V203K8T6は内部発信で最大周波数 144MHz
#define SYSCLK_FREQ_144MHz_HSI 144000000 を選択する。
波形観測 時間測定値が最小0.2(ns)で20.6となっているが、20.8との間と計測出来るので表では20.7(ns)と記載した。
V203のSystem block diagram抜粋
1.3 疑問点と今後
1.3.1 疑問点
(1)ループの戻る時間がほとんど無いのはなぜか?
昔(笑えるが約50年ほど前のZ80〜PIC,H8)の記憶ではアドレスを変更するため、プログラムメモリーからコマンドとデータ(ジャンプするアドレス)を読込して、プログラムカウンターのアドレス変更をするので、最低でも1クロックは必要と思っていたが・・・
System block diagramを確認してみると昔は1つしかなかったBusが i-codeBus D-codeBus SystemBusと複数ありこれが要因になっているのか?
それにしてもSTM32では2サイクル必要だか、STM32F401のSystem block diagram をみてもV203とよく似たBusになっている様に見える。
なぜ必要なサイクルが違うのか。
プログラムのミスなのか?
(3)'私的なこと
30歳位から定年まで多少違う方面の仕事で趣味を疎かにしていた。
いまコアのダイアグラムを見て、これも古い例えか浦島太郎のような気分で、途方にくれそうで、反面冒険できそうな気がして複雑な気持だ。
マイクロ水力発電の夢からどんどん離れているが、私の寿命とボケた頭脳の挑戦だ?
昔(笑えるが約50年ほど前のZ80〜PIC,H8)の記憶ではアドレスを変更するため、プログラムメモリーからコマンドとデータ(ジャンプするアドレス)を読込して、プログラムカウンターのアドレス変更をするので、最低でも1クロックは必要と思っていたが・・・
System block diagramを確認してみると昔は1つしかなかったBusが i-codeBus D-codeBus SystemBusと複数ありこれが要因になっているのか?
それにしてもSTM32では2サイクル必要だか、STM32F401のSystem block diagram をみてもV203とよく似たBusになっている様に見える。
なぜ必要なサイクルが違うのか。
STM32F401のSystem block diagram抜粋
(2)STM32の動作サイクルが多い。
プログラムのミスなのか?
(3)'私的なこと
30歳位から定年まで多少違う方面の仕事で趣味を疎かにしていた。
いまコアのダイアグラムを見て、これも古い例えか浦島太郎のような気分で、途方にくれそうで、反面冒険できそうな気がして複雑な気持だ。
マイクロ水力発電の夢からどんどん離れているが、私の寿命とボケた頭脳の挑戦だ?
1.3.2 今後
プログラムの作成の中で調査していきたいと思う。
現時点でも数学の能力や、文章力も無く、最近ではAiや陽子コンピュータなど私の知能を遥かに超えた技術が出てきているので途中で挫折する可能性も有りなんとも言えない。・・・
現時点でも数学の能力や、文章力も無く、最近ではAiや陽子コンピュータなど私の知能を遥かに超えた技術が出てきているので途中で挫折する可能性も有りなんとも言えない。・・・
