【パワーメーター2019】位相ズレCPUクロックバラツキ怪しい<STM32F103C8T6が怪しい>

右クランクの位相ズレが大きいので、あの手この手と4M変動を調べあげてみました。
●解析結果
①IMUは、速度上がると(60rpm)以上で、ノイズが多くなるが、位相ズレの原因ではない。
➁IMUとトルク波形は、同期していて、位相ずれしていても、同じずれ方をしている
③SeatTubeで測定している上死点基準で、左右クランクとも位相ずれが発生している。
④位相ずれの傾向が一定でなく、データ時間軸に一定の掛け率をかけても位相が合わない。

●割り込みTIMERのクロックについて調べた
一般にマイコン内蔵のクロックは精度が悪く、精度が必要な場合は、外付けの水晶発振器をつけること言われていますが、精度が悪くても一定なら、時間軸の掛け率を補正すればいいだろうと
楽観視していたのですが、具体的なクロック精度を測定してみて、一定なのかを検証しました

●タイマーの時間精度の基礎知識
 ①内蔵タイマーの精度が良くない原因
Renesusのフォーラムに大量にマイコンのクロック精度の話題がでてました。マイコンユーザーにとって大きな課題であることが分かります。私はmbedとarduinoを使っているのですが、PICとかRXを使うユーザーは、プロの人が多いので、いい加減に作るわけにはいかないのでとことん詰めているんだと思います。https://japan.renesasrulz.com/cafe_rene/f/forum18/2707/thread

クロック精度について考察がありました。
ここで、ppm精度で表現されてましたので、時計の精度と比較してみました。
PPMの時間精度についてはこちらがわかりやすく解説されてました。
  年差5秒の時計は高級腕時計なら当たり前ですが、これが0.15ppmだということです。

それに比べて、デジタル機器に使われる水晶クロックが高精度で±20ppmですので、
いかに腕時計の時間精度がいいかわかります。
●時間測定にはオシロを使う以外にないがオシロの時間精度を確認しました。
私の使っているのは電子工作の定番機RIGOL DS1054Zです。これの精度については、こちらが詳しく実験されてます。http://edapyon.com/Home/Electric/DS1054Z/
仕様書をみると25ppm以下となってますので、計算してみると、
月差1分と性能の悪い時計程度でした
。このことから、私がパワーメーターでもとめている時間精度が
高級ウォッチ並みであって、並み居る電子機器では実現できてないレベルの高精度だったということです。
 しかし、数万円の腕時計に負けてしまう電子機器のほうが品質が悪いと思うのは私だけではないと思います。量産の都合上、コストをかけてもしょうがないところなのでしょうけど、一般ユーザーからすれば、おかしいなと思う点です。

●マイコンタイマー割り込みの測定方法
 オシロの精度がそこそこだということで、10msec周期でオシロの周波数カウンタを使って各種CPUの精度測定してみました。割り込みを10msecいれて奇数複数回でオンオフをピンにDigitalOutして、オシロで計測します。オシロは、周波数カウンタをONにして目視でばらつくか見てます。
※2020年10月追記
その後、クロック精度測定の方法をGPSの1秒信号を使って、長時間オシロで測定する方法を確立しました。最終的に個人で最高精度を得るには、GPSが一番良いという結論です。窓際においておけば、クロック信号は得られるので、便利です。NTPよりGPSのほうが間違いないです。

①NUCLEOL432KCとLPC1768のクロック精度

LPC1768は、0.001% と少ないです。

 L432KCは、0.0114%と悪いです。
いずれにせよ、数分間カウントしていてもばらつきが全くありません。
つまり周期がずれていても、ばらつかないので後で補正がききます。

➁STM32F103T8C6のばらつき
・母艦用に作っているSTM32F103T8C6

ばらつくので、3σで±0.035%ばらついて一定値になりません。

●右クランクについているSTM32F103T8C6

問題のCPUですが、やはり相当ばらついてました。
3σ±0.058%

 

●対策案
1案:CPUのクロックがあてにならないので、外付けクロックにするのか
=>RTC内蔵している場合は32.768KHZ水晶を外付けにして、ボタン電池も接続してRTCにするという機能をもっているマイコンが多くありますが、RTCは、タイマー割込みの精度を上げられかどうかわからないです、ライブラリーをみると日付年月日の保存機能程度しかみられません。

2案:タイマー割り込みを外付けクロックで制御する。
=>10msec波形を高精度の発振器で作ってマイコンにいれてピン割り込みをかける方法です。しかし、マイコンのプログラムのクロックがばらついているので、そのばらつきが大きい場合は、いくら精度のよいタイマー信号をいれてもばらつきがおさえられないかもしれません。

3案:STM32F103T8C6をやめて、外付けクロックで、精度よく管理できる
マイコンに変更する

 

●以後
2案でやってみて、だめなら、マイコン総入れ替え基板作り直しとなります。秋月で超高精度VCTCXOなどクロック関係部品仕入れましたので、
位相ずれなおせるか楽しみです。

 

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です