2017年11月7日火曜日

F4RTC

 STM32F4のリアルタイムクロックは高機能だ。F1の32bitカウンタとは比べ物にならないほど高機能だ。
 しかし、使いづらい。

 せっかく超高精度に時間を読み出せるのに、メーカー想定の使い方ではシステムリセット時に秒のプリスケーラがクリアされる。つまり、秒の信頼性が著しく低い。
 これをキャンセルする機能がある。しかし、それを使うにはユーザーが複雑なプログラムを書く必要がある。

 キャリブレーションも非常に使いづらい。リファレンスマニュアルによると「数秒の校正で0.95ppmの精度」だという。1秒で1usec程度の誤差ということだ。1ヶ月では2.5秒ほどの誤差だから、一般的な時計より1桁良い性能だ。
 しかしその方法が書いていない。

 基準クロックはどうだ。50Hzか60Hzを入れれば正確な1Hzを刻むのだという。しかしマイコンで時間を測りたいのに、わざわざコンセントに繋ぎっぱなしにしなければいけないのは面倒だ。
 それに50Hzか60Hzというのがいただけない。1Hzを基準にできれば、GPSモジュールを併用して、世界標準時と0.1マイクロ秒単位で正確に同期した時計を作れるというのに。


 どうにも、F4RTCは使いづらい。ま、F1よりは便利になったんだけどね。
 いまいち使い方がよくわかってないので、もうちょっと試行錯誤する必要がありそう。
 時計というか、時間処理系で、リアルタイムに動かさないとダメなモノだと、1箇所のパラメータの動作確認に5-10分程度かかることもザラ。カレンダ機能に至っては、数日間の連続動作を行わないとわからない、ということも有る。とても面倒くさい。


 結局のところ、EXTIで1Hzを監視して、それによって校正値を生成することにより、位相を合せたり、校正したり、というのを自前で用意する必要がありそう。
 ハードウェアで勝手にやってくれれば便利なんだけどねぇ。

0 件のコメント:

コメントを投稿