セイコーインスツル株式会社の、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ファーストとなっている)
コマンドレジスタ †
Fwd | Rev | |
0-3 | 7-4 | 固定コード (06h = 0110b にしなければならない) (Fwd と Rev は同じ値) |
4-6 | 3-1 | コマンド |
| Fwd | Rev | パラメータバイト列 (読み/書きアクセス) |
| 0 | 0 | 1 byte, ステータスレジスタ 1 |
| 4 | 1 | 1 byte, ステータスレジスタ 2 |
| 2 | 2 | 7 bytes, データ & 時間 (年,月,日,曜日,時,分,秒) |
| 6 | 3 | 3 bytes, 時間 (時,分,秒) |
| 1* | 4* | 1 byte, int1, 周期設定 |
| 1* | 4* | 3 bytes, int1, アラーム時間 1 (曜日,時,分) |
| 5 | 5 | 3 bytes, int2, アラーム時間 2 (曜日,時,分) |
| 3 | 6 | 1 byte, クロック調節レジスタ |
| 7 | 7 | 1 byte, フリーレジスタ |
7 | 0 | パラメータ 読み/書き アクセス (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
0 | W | リセット(0=通常, 1=リセット) |
1 | R/W | 12/24 時間モード (0=12時間, 1=24時間) |
2-3 | R/W | General purpose bits |
4 | R | 割り込み 1 フラグ (1=ON) ;auto-cleared on read |
5 | R | 割り込み 2 フラグ (1=ON) ;auto-cleared on read |
6 | R | 電源ローフラグ (0=通常, 1=電源ロー) ;auto-cleared on read |
7 | R | 電源オフフラグ (0=通常, 1=電源オフ) ;auto-cleared on read |
電源オフは、バッテリーが取り除かれたか、完全に充電が切れた状態を示し、全てのレジスタが0x00(または0x01)にリセットされる。このとき、もう一度初期化しなければならない。
- ステータスレジスタ 2
0-3 | R/W | INT1 モード/有効 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-5 | R/W | General purpose bits |
6 | R/W | INT2 有効 0b 無効 1b アラーム 2 割り込み |
7 | R/W | テストモード (0=通常, 1=テスト, 使わない) (cleared on Reset) |
- フリーレジスタ
0-7 | R/W | General purpose bits |
日付用レジスタ †
- 年レジスタ
0-7 | R/W | 年 (BCD 00h〜99h = 2000〜2099) |
- 月レジスタ
0-4 | R/W | 月 (BCD 01h〜12h = 1月〜12月) |
5-7 | - | 未使用 (常に0) |
- 日レジスタ
0-5 | R/W | 日 (BCD 01h〜28h,29h,30h,31h, 最終日は年・月の指定による) |
6-7 | - | 未使用 (常に0) |
- 曜日レジスタ (7進数カウンタ)
0-2 | R/W | 曜日 (00h〜06h, カスタム割り当て, 通常 0=月曜?) |
3-7 | - | 未使用 (常に0) |
時間レジスタ †
- 時レジスタ
0-5 | R/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-6 | R/W | 分 (BCD 00h..59h) |
7 | - | 未使用 (always zero) |
- 秒レジスタ
0-6 | R/W | 秒 (BCD 00h..59h) |
7 | - | 未使用 (常に0) |
アラーム 1 と アラーム 2 レジスタ †
- アラーム1 と アラーム2 曜日レジスタ (INT1 and INT2 each)
0-2 | R/W | 曜日 (00h〜06h) |
3-6 | - | 未使用 (常に0) |
7 | R/W | 比較有効 (0=毎日アラーム, 1=指定された日のみアラーム) |
- アラーム1 と アラーム2 時レジスタ (INT1 and INT2 each)
0-5 | R/W | 時 (BCD 00h..23h in 24h mode, or 00h..11h in 12h mode) |
6 | R/W | AM/PM (0=AM, 1=PM) (must be correct even in 24h mode?) |
7 | R/W | 比較有効 (0=毎時アラーム, 1=指定された"時"のみアラーム) |
- アラーム1 と アラーム2 分レジスタ (INT1 and INT2 each)
0-6 | R/W | 分 (BCD 00h..59h) |
7 | R/W | 比較有効 (0=毎分アラーム, 1=指定された"分"のみアラーム) |
- 割り込み周期選択レジスタ (INT1 only) (when Stat2/Bit2=0)
0 | R/W | 1Hz 周期有効 (0=無効, 1=有効) |
1 | R/W | 2Hz 周期有効 (0=無効, 1=有効) |
2 | R/W | 4Hz 周期有効 (0=無効, 1=有効) |
3 | R/W | 8Hz 周期有効 (0=無効, 1=有効) |
4 | R/W | 16Hz 周期有効 (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-7 | R/W | General 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