セイコーインスツル株式会社の、S-35180 (S-35190A互換)チップを積んでるらしいです。 (http://www.sii.co.jp/) ミニ 8pin RTC、 3 ワイヤーシリアルバスって書いてあります。

4000138h - リアルタイムクロックレジスタ

ビット説明
0データ I/O (0=Low, 1=High)
1クロック出力 (0=Low, 1=High)
2選択出力 (0=Low, 1=High/Select)
3未使用 I/O ライン
4データ方向 (0=読み込み, 1=書き込み)
5クロック方向 (常に 1=書き込み)
6選択方向 (常に 1=書き込み)
7ビット 3 の方向 ? (常に 0)
8 〜 11未使用 I/O ライン
12 〜 15ビット8〜11の方向 (常に 0)

シリアル転送フローチャート

  • チップ選択とコマンド・パラメータシーケンス
CS = LOW 、 /SCK = HIGH に初期化。最低1マイクロ秒待つ
CS = HIGH に変更。最低1マイクロ秒待つ
コマンドバイトを送信 (bit-transfer 参照)
送ったコマンドに合わせた、パラメータバイト列の送受信
CS を LOW に変更
  • ビット転送(コマンド・パラメータバイト列を8回繰り返す。LSBが最初に来る)
/SCK = LOW と SIO = databit として出力 (書き込み時), 最低5マイクロ秒待つ
/SCK = HIGH 出力, 最低5マイクロ秒待った後、SIO = databit として読み込み(読み込み時)
In either direction, data is output on (or immediately after) falling edge.

両方のコマンドとパラメータの転送がLSBファーストになることが望ましい。 (セイコーのドキュメントにはLSBファーストになるのはデータで、コマンドはMSBファーストとなっている)

コマンドレジスタ

FwdRev
0-37-4固定コード (06h = 0110b にしなければならない) (Fwd と Rev は同じ値)
4-63-1コマンド
FwdRevパラメータバイト列 (読み/書きアクセス)
001 byte, ステータスレジスタ 1
411 byte, ステータスレジスタ 2
227 bytes, データ & 時間 (年,月,日,曜日,時,分,秒)
633 bytes, 時間 (時,分,秒)
1*4*1 byte, int1, 周期設定
1*4*3 bytes, int1, アラーム時間 1 (曜日,時,分)
553 bytes, int2, アラーム時間 2 (曜日,時,分)
361 byte, クロック調節レジスタ
771 byte, フリーレジスタ
70パラメータ 読み/書き アクセス (0=書き込み, 1=読み込み)

INT1: Type and number of parameters depend on INT1 setting in stat reg2. The "Fwd" bit numbers and command values for LSB-first command transfers (ie. both commands and parameters use the same bit-order). The "Rev" numbers/values are for MSB-first command transfers (ie. commands using opposite bit-order than parameters, as being suggested by Seiko).

コントロールとステータスレジスタ

  • ステータスレジスタ 1
    0Wリセット(0=通常, 1=リセット)
    1R/W12/24 時間モード (0=12時間, 1=24時間)
    2-3R/WGeneral purpose bits
    4R割り込み 1 フラグ (1=ON) ;auto-cleared on read
    5R割り込み 2 フラグ (1=ON) ;auto-cleared on read
    6R電源ローフラグ (0=通常, 1=電源ロー) ;auto-cleared on read
    7R電源オフフラグ (0=通常, 1=電源オフ) ;auto-cleared on read

電源オフは、バッテリーが取り除かれたか、完全に充電が切れた状態を示し、全てのレジスタが0x00(または0x01)にリセットされる。このとき、もう一度初期化しなければならない。

  • ステータスレジスタ 2
    0-3R/WINT1 モード/有効
    0000b 無効
    0x01b 割り込み周期選択
    0x10b Per-minute edge interrupt
    0011b Per-minute steady interrupt 1 (duty 30.0 secomds)
    0100b アラーム 1 割り込み
    0111b Per-minute steady interrupt 2 (duty 0.0079 secomds)
    1xxxb 32kHz 出力
    4-5R/WGeneral purpose bits
    6R/WINT2 有効
    0b 無効
    1b アラーム 2 割り込み
    7R/Wテストモード (0=通常, 1=テスト, 使わない) (cleared on Reset)
  • クロック調節レジスタ (発振器の誤差を訂正?)
    0-7R/W調節 (00h=通常, 調節無し)
  • フリーレジスタ
    0-7R/WGeneral purpose bits

日付用レジスタ

  • 年レジスタ
    0-7R/W年 (BCD 00h〜99h = 2000〜2099)
  • 月レジスタ
    0-4R/W月 (BCD 01h〜12h = 1月〜12月)
    5-7-未使用 (常に0)
  • 日レジスタ
    0-5R/W日 (BCD 01h〜28h,29h,30h,31h, 最終日は年・月の指定による)
    6-7-未使用 (常に0)
  • 曜日レジスタ (7進数カウンタ)
    0-2R/W曜日 (00h〜06h, カスタム割り当て, 通常 0=月曜?)
    3-7-未使用 (常に0)

時間レジスタ

  • 時レジスタ
    0-5R/W時 (BCD 00h〜23h →24時間モード, もしくは 00h〜11h →12時間モード)
    6*AM/PM (0=AM, 1=PM)
    * 24時間モード: AM/PM フラグは読み込み専用 (PM=1 if hour = 12h〜23h)
    * 12時間モード: AM/PM フラグは読み書き可能
    * 12時間モード: Observe that 12 o'clock is defined as 00h (not 12h)
    7-未使用 (常に0)
  • 分レジスタ
    0-6R/W分 (BCD 00h..59h)
    7-未使用 (always zero)
  • 秒レジスタ
    0-6R/W秒 (BCD 00h..59h)
    7-未使用 (常に0)

アラーム 1 と アラーム 2 レジスタ

  • アラーム1 と アラーム2 曜日レジスタ (INT1 and INT2 each)
    0-2R/W曜日 (00h〜06h)
    3-6-未使用 (常に0)
    7R/W比較有効 (0=毎日アラーム, 1=指定された日のみアラーム)
  • アラーム1 と アラーム2 時レジスタ (INT1 and INT2 each)
    0-5R/W時 (BCD 00h..23h in 24h mode, or 00h..11h in 12h mode)
    6R/WAM/PM (0=AM, 1=PM) (must be correct even in 24h mode?)
    7R/W比較有効 (0=毎時アラーム, 1=指定された"時"のみアラーム)
  • アラーム1 と アラーム2 分レジスタ (INT1 and INT2 each)
    0-6R/W分 (BCD 00h..59h)
    7R/W比較有効 (0=毎分アラーム, 1=指定された"分"のみアラーム)
  • 割り込み周期選択レジスタ (INT1 only) (when Stat2/Bit2=0)
    0R/W1Hz 周期有効 (0=無効, 1=有効)
    1R/W2Hz 周期有効 (0=無効, 1=有効)
    2R/W4Hz 周期有効 (0=無効, 1=有効)
    3R/W8Hz 周期有効 (0=無効, 1=有効)
    4R/W16Hz 周期有効 (0=無効, 1=有効)
    The signals are ANDed when two or more frequencies are enabled,
    ie. the /INT signal gets LOW when either of the signals is LOW.
    5-7R/WGeneral purpose bits

Note: There is only one register shared as "Selected Frequency Steady Interrupt" (accessed as single byte parameter when Stat2/Bit2=0) and as "Alarm1 Minute" (accessed as 3rd byte of 3-byte parameter when Stat2/Bit2=1), changing either value will also change the other value.

割り込み

There's only one /INT signal, shared for both INT1 and INT2. In the NDS, it is connected to the SI-input of the SIO unit (and so, also shared with SIO interrupts). To enable the interrupt, RCNT should be set to 8144h (Bit14-15=General Purpose mode, Bit8=SI Interrupt Enable, Bit6,2=SI Output/High). Not sure why Output/High... maybe as pullup... however, it seems to be working also as Input... ie. RCNT=8100h.

ピン詳細

 1 /INT      8 VDD
 2 XOUT      7 SIO
 3 XIN       6 /SCK
 4 GND       5 CS

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-27 (日) 17:45:30 (1310d)