今回は、50円のRISC-VマイコンのCH32V003F4P6のUART設定を調べます。
解れば簡単なんだけど、マニュアルが何かいているかわからなくて最初は悩みました。
そういうこともあり、調べた内容を残しておきます。
UARTは動作速度の設定が有るので、まずは、クロック設定周りを整理してから進みます。下の図に書き込みをしてみました。内部の高速クロックHIS(24MH)を利用し、PLLで2倍でSYSCLK(48MHz)としました。そして、AHB Prescaler(x1)選択で、AHB48MHzで動作させています。
それでは、サンプルコードのUARTを使うための設定をみていきます。
1.周辺クロックを有効に
最近の組み込みマイコンは低消費電力を実現するために、使用しない周辺のクロックは止めてしまう事が多いです。CH32Vシリーズも同様の構成になっています。
ここでは、GPIODとUSART1のクロックを有効にします。
初期値は0なので、これを設定しないとUARTを動かすことはできません。
2.PD5の設定をUARTに設定する。
CH32V003F4P6は複数の機能が同一ピンに割当てされています。
そのため自分が使いたい機能が使えるように設定が必要です。
マニュアルに記載があり、USARTx_TXを使う場合には、Push-pull multiplexed outputsを選ぶように書いてあります。
3+4.UARTの設定をして、起動
あと最後ボーレートはマニュアルが最初は全く理解できませんでした。
マニュアルは72MHzの動作での数字が書いてい有るので、まったく理解できませんでした。
このBRRの設定は、
BRR(Baud Rate Register)=HCLK/(16*USARTDIV)で設定となるため、
HCLK=48000000, BRR=115200で計算する問い、USARTDIVは26.04…となります。整数部をDIV_Mantissaで設定し、小数点を1/16単位でDIV_Fractionに設定となります。
解れば簡単。。。
今回はサンプルもあったので、マニュアルで理解できない部分を補完できました。
なければかなりの長時間悩んだと思います。