ブログ記事10件
今回は、50円のRISC-VマイコンのCH32V003F4P6のUART設定を調べます。解れば簡単なんだけど、マニュアルが何かいているかわからなくて最初は悩みました。そういうこともあり、調べた内容を残しておきます。UARTは動作速度の設定が有るので、まずは、クロック設定周りを整理してから進みます。下の図に書き込みをしてみました。内部の高速クロックHIS(24MH)を利用し、PLLで2倍でSYSCLK(48MHz)としました。そして、AHBPrescaler(x1)選択で、AHB4
50円のRISC-VマイコンのCH32V003F4P6のスタートアップを調べたときに、HPE(HardwarePrologue/Epilogue)という機能がありました。HPEは割込み時に、ハードウェアによるレジスタの退避/復帰を行う機能でした。QingKeV2MicroprocessorManualのマニュアルをもう一度見てみます。HPE機能を使う時には、割込みハンドラのコンパイル時にアトリビュートを指定する必要があるようです。サンプルプロジェクトのSysTickタイマ
50円のRISC-VマイコンのCH32V003F4Pのスタートアップを調べていて、調査を継続した点についてまとめておきます。不明なのは下のオレンジ色の吹き出し部分です。まず、INTSYSCRを3にセットする意味を調べてみました。CSRWはCSRにアクセスする命令です。0x804のCSRはINTSYSCRです。マニュアルから引用しておきます。今回は3に設定しているので、INESTENとHWSTKENが1になっています。INESTENは多重割り込みを有効にするフラグとなっています。
50円のRISC-VマイコンのCH32V003F4P6ですが、最近、ネット上でいろいろな人が使っていますね。50円のマイコンで、開発環境が750円とか、確かに広がるのも分かる気がします。RISC-Vなのですこし勉強をしながら進む必要がありますが、はやくやればそれだけ次に進みますので私も理解を進めていきたいと思います。前回はスタートアップコードの割り込みベクタ部分を見ましたが、今回は、後半の初期化を見ていきます。全体でも以下のように1ページ程度で見渡すことが出来ます。まずは.
さて、50円のRISC-VマイコンのCH32V003F4P6について調べていきます。前回は、リンカ設定を確認しましたが、今回はスタートアップコードを見ていきます。スタートアップコードは、サンプルの中にあります。ファイルの拡張子が.Sですので、アセンブラファイルとなります。このスタートアップのコードは、大きく分けて2つに分かれており、前半が割込みベクタ定義、後半が初期化となります。それでは、前半の割込みベクタ定義を見てみましょう。ここではセクション".init"ではじまって
CH32V003F4P6の開発環境としては、MounRiverStudioが用意されています。コンパイラ/アセンブラ/リンカについてはGCC環境が用意されています。今回は、リンカ設定を確認していきたいと思います。正直、リンカ設定は分からないことも多いですが、組み込みソフトウェアでは必須だと思いますので、頑張って読み進めましょう。サンプルソフトにあるリンカを見ていきます(サンプルの場所など紹介).GCCのリンカ設定ファイルは、拡張子.ldを使う事が多いです。MounRiverSt
CH32V003F4P6の割り込みについて調査をしておきます。まず、ドキュメントと整理しておきましょう・CH32V003Datasheet・CH32V003ReferenceManual・QingKeV2MicroprocessorManualが必要です。特に、割込みの調査をする時には、QingKeV2MicroprocessorManualが必須です。手元に無い方はそろえておきましょうQingKeV2_Processor_Manual.PDF-Na
これまで、WCH-LinkEエミュレータをデバッグの機能しか使ってませんでした。でも、WCH-LinkEエミュレータを見るとTX,RXという文字があります。さらにデバイスマネージャで確認すると・・・となります。CH32V003F4P6のサンプルプロジェクトSysTickでもUARTの設定をして、printfで出力しているようです。今回は、マイコンから見たTX側しか使用しないようなので、以下のように配線しました。UARTを使うにはターミナルソフトが必要です。私は
CH32V003F4P6のサンプルプロジェクトでは、外部クロックを使っていましたので、前回で内部の高速クロック(HSI)を使用するように変更しました。その設定を確認しておきます。1.48MHz動作のためFLASHに1Waitを入れます。2.AHBのプリスケーラをx1(OFF)で設定3.PLLのソースをHSIに設定4.PLLを起動します。PLLは2倍の設定しかありません。READYになるまでwhile文で待ちます。5.システムクロックをP
RISC-Vでの50円マイコンCH32V003F4P6を動かすことが出来たので、すこし内容を理解するためサンプルのソースコードを読んでいきます。まずはクロック設定を理解していきます。これが理解できないと周波数に関する設定がおかしくなるからです。CH32V003F4P6では3つのクロックを使う事が出来ます。HSE:外部のクロック、HSI:内部のクロック、LSI:内部の低速クロックです。今回ダウンロードしたサンプルは評価ボードをベースにしているので、外部クロックがあります。24
前回でCH32V003F4P6のソフトまでは準備出来ました。本日はデバッガを接続します。デバッガを接続するためにエミュレータが必要です。エミュレータはPCと評価ボードをつないでくれる便利ツールです。WCH-LinkEエミュレータは750円です。他でも動くモノもあるかもしれませんが、値段も安いですし、これを買っておきましょう。デバッガ接続では以下のように接続しました。実際に接続したのは、こんな形です。WCH-LinkEエミュレータはPCに接続しています。ここまで準備出来
まず、CH32Vを知らない人に簡単に説明しておきます。CH32Vは中国の江蘇沁恒股分有限公司という会社が売っている32ビットマイコンです。しかも、RISC-Vという比較的新しいアーキテクチャを採用しています。RISC-Vの中でも最もコンパクトなRV32ECを採用しています。32ビット命令+整数汎用レジスタが16本+16ビット圧縮命令に対応しています。今回使用するCH32V003F4P6は、RAMが2KB,FLASHが16KBのマイコンとなります。秋月電子で2023年6月から販売
これまでCH32V003J4M6を使ってきましたが、ピン数が少ないので使いにくいのです。そのため50円で売ってっているCH32V003F4P6を買ってきました。実は前回、秋葉原にある秋月電子通商に行ったときは売り切れていたのです。23年6月26日に秋月電子に行ったのだけど・・・今回はちゃんと買えました。しかし、今どきのマイコンはピッチが狭いです。データシートで確認すると前回使ったCH32V003J4M6は1.27ピッチ、今回のCH32V003F4P6は0.65mmピッチでした