STM32F3のUSART
またまた、変な要求から変なものを検討する。
物はいつものSTM32F303。
お題は、
1.部品点数最少
2.消費電力極小
3.RS232Cのボーレート 921.6kbps
また、こんなものを...
------
1.から、外付けクロックソースは除外。
2. 3.から、UARTマターの最低システムクロックは、14.7456MHz。
これを上回りつつ、HSIソースのPLLで生成できるクロックは、4MHzの整数倍で、最低16MHz。
UARTなので、多少のクロックの誤差は許容できる、はず。
そこで、16MHz/17 = 941.176kbps と、17分周で使用してみる。
が、実際動かしてみると、送受信とも、時々文字化けする...だめか。
L151の内蔵16MHzの時は、うまくいったのだけれど。
あっちは直接原発振だったけど、こっちは、PLLなのも影響しているのだろうか。
HSIの単体の周波数誤差もあるかもしれない。
------
というわけで、RCC_CRのHSITRIMを試してみる。
1LSBで40KHzほど、HSIを調整できるとある。
デフォルトの16から10に設定を変えると、システムクロックが15.68MHzとなり、17分周のUSARTクロックは、ジャスト921.6Kbps。
めでたく動くようになった。
欲をこいて、設定を0にして、ぎりぎり14.72MHzを狙う(16分周)が、そこまでクロックが下がらず断念。
残念...これが通れば、もっと消費電流が下げられたんだけど。
-----
16MHz付近で動かしていると、CPUの消費電流はおおむね10mAほど。
内蔵クロック縛りだと、動作設定の最低は8MHzとなるので、この半分くらいが消費電流のミニマムになるのか。
いざとなれば、UARTを使ってない時に、クロックを切り替えてしまえば、もうちょっと減らせそう。
そもそも、電源電圧を下げればもっと減らせそうだけれど、今回の回路では自由に設定できないなあ。
やはり、数mAの領域で動かそうとすると、L151の方がなにかと自由度が高いようだ。
| 固定リンク | 0
コメント