いきなりだが、最近はRTCの技術習得にいそしんでいる。
そもそもは、秋月の3軸加速度センサモジュール、KXP-84-2050から。
これはアナログ電圧出力以外に、SPIとI2Cでのインターフェースを備えている。
シリアルインターフェースを勉強したてだったので、SPIの方はうまく理解できず動作させられなかったが、I2Cは通信できるようになった。
で、先日入手できた同じく秋月のRTCモジュール、RTC-8564を同じようにつないでプログラムしてみると・・・わ、いきなり秒データがLCDに表示されるではないか!
単なる信号のオンオフと違って、時系列というもう一つの次元が関係する通信で、最初から動作するなんて・・・感動だ(技術者にとっては、自分の理解していることが間違いでなかったという、客観的な証明になるから)。
こっちはI2Cなので先のSPIとは方式は違うが、通信の手順についてのお膳立てはおのおのの規定通りに従えば、規定通りの信号が帰り、読み取れるということなのだな。
勢いを得て、次はSPIのRTC、マイクロチップ社のMCP795W21というのに挑戦してみた。
理由は一つ、サンプル請求できる登録資格があるので、手元にすぐ入手できたからだ。
以前は個人ユーザーでもサンプルはもらえたが、今はそうはいかないようで、会社としてそれなりに手続きを経た上でお願いしている。
通信自体は思いの外うまくいったのだが、なぜかクロック周波数に対して2倍くらいのカウント速度になってしまった。
つまり、1秒が0.5秒ぐらいなのだ。
今のところ原因は不明。
でも、それなりに動いて、それなりに値が得られているようなので、いつかは問題が解消できるだろう。
調子に乗って、その後使ってみたI2CのMCP7410Mはデータは書き換えられるものの、どうやらカウント動作を開始しないらしい→秒データが更新されない。
オシロで当たってみても、クロックが発振していないように思える。
発振素子回りはちょっと自信ないので、そのうち解析してあげよう。
・・・と、プライベートタイムを大きく削る事象が続いているので、ブログにすらかまけている暇はないのだ。
ファイトっ!!