前回の「REX-USB61mk2で強化された機能(その4)」では、
REX-USB61mk2添付ソフトウェアのスクリプト実行アプリケーション USB61mk2_Script.exe
について紹介しました。
今回は、REX-USB61mk2用として新たにリリースされたレジスタ設定ツールのお話です。
[レジスタ設定ツール]とは、I2Cデバイス内にあるレジスタの読出しや設定を画面上から簡単に
行うことができるアプリケーションで、以下の特徴があります。
・I2Cデバイスの仕様書等にあるレジスタフィールドの表記と同様な表示が可能。
・I2Cデバイスのレジスタ表示詳細をXMLで記述、ユーザによるカスタマイズが可能。
・読み出したレジスタ値のCSVファイル保存が可能
それでは、以降でこのレジスタ設定ツールについて説明していきましょう。
I2Cのセンサーデバイスの多くは内部にいくつかのレジスタを持っています。
センサー動作を決めたり、測定値の取得のために内部レジスタへアクセスする必要があります。
通常、I2Cデバイスの仕様書を読み解いて、スクリプトを作成したり
ライブラリAPIを使ったプログラムを作成して、これらの制御を行います。
I2Cデバイスの仕様書にあるレジスタの説明ではよくレジスタマップ(レジスタ構成)や
レジスタフィールドの形式でそれらのレジスタについて説明しています。
以下は セイコーエプソンの RTC-8564NB の例です。
【レジスタ構成の例:セイコーエプソン社製 RTCC-8564NB】
Address | Function | Address | Function |
00h | Control1 コントロールレジスタ1 |
08h | Years カレンダカウンタ[年] |
01h | Control2 コントロールレジスタ2 |
09h | Minute Alarm アラームレジスタ[分] |
02h | Seconds 時計カウンタ[秒] |
0Ah | Hour Alarm アラームレジスタ[時] |
03h | Minutes 時計カウンタ[分] |
0Bh | Day Alarm アラームレジスタ[日] |
04h | Hours 時計カウンタ[時] |
0Ch | Weekday Alarm アラームレジスタ[曜] |
05h | Days カレンダカウンタ[日] |
0Dh | CLKOUT frequency CLKOUT出力 設定レジスタ |
06h | Weekdays 曜日カウンタ |
0Eh | Timer control 定周期タイマ割り込み機能 制御レジスタ |
07h | Month/Century カレンダカウンタ[月] |
0Fh | Timer 定周期タイマ ダウンカウンタ |
【レジスタフィールドの例:コントロールレジスタ1】
Address | Function | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
00h | Control1 | TEST | 0 | STOP | 0 | TEST | 0 | 0 | 0 |
TESTビット [bit7, bit3] | デバイスメーカーのTEST用で必ず “0” を書き込みます。 | |
STOPビット [bit5] | “1” をセットすると本デバイスのすべての動作が停止します。 “0” をセットすると、動作を再開(停止を解除)します。 |
レジスタ設定ツールではこのI2Cデバイス内レジスタをレジスタマップ、レジスタフィールド
の形式で画面上に表示することができます。
そして、各レジスタの値の読出しや書込みがレジスタマップ、レジスタフィールドの形式で行えます。
例えば、デバイス特性の理解やデバイスへの設定値を探す場合に
コマンドやパラメタをレジスタへ書き込み、その結果をレジスタから読み出して
フィードバックを確認しながら最適な値を決めていきます。
レジスタ設定ツールを使うとこのような作業が画面上から簡単に行えるようになります。
次ページでは、具体的にレジスタ設定ツールで RTC-8564NBを制御してみます。