== RTCクロックモジュール PCF2129AT の使い方 == [https://www.switch-science.com/catalog/2353/ PCF2129AT SPI/I2C接続リアルタイムクロック・モジュール ] でも販売しているリアルタイムクロック(RTC)モジュールの使い方説明と、 サンプルプログラムです。 メーカーから[http://www.nxp.com/documents/data_sheet/PCF2129.pdf データシート(pdf)]も公開されています。 RTCとは、内部に専用のオシレータなどを組み込んだ、 電源が供給されている限り時間を刻み続ける部品のことです。 主に時計機能などに使われます。 PCF2129ATは、年(西暦2桁)・月・日・曜日・時・分・秒を刻むことができます。 ---- == 使い方 == 本製品はI2C又はSPIで制御されます。 通信方式によって配線が変わるのでデータシートを参照してください。[[BR]] [[Image(fig28.png,480px)]] 以下の記事ではI2Cでの配線を前提に記述します。 == 通信方法 == === I2C通信 === I2C通信の詳細を記載します。 ==== 送信 ==== メーカー公開のデータシートよりプロトコル図を抜粋しました。 [[Image(fig37.png,480px)]] 1.データ書き込みモードでスレーブのデバイスIDを書き込みます。[[BR]]0xA2は8bitでのアドレスです。ArduinoのWireライブラリを利用する際は7bitのアドレスが0x51になります。 2.データを書き込みたいレジスタアドレスを送信します。 3.書き込みたいデータを送信します。こちらは連続で書き込むと内部で自動的にレジスタアドレスをインクリメントしてくれます。レジスタアドレスのインクリメントは、0x1Bの次に自動的に0x00に戻ります。 4.通信を終了します。 以下に、本ページで紹介しているライブラリの一部を抜粋します。 {{{ void PCF2129AT::dataSend(int id,int reg,int *data,int datasize) { Wire.beginTransmission(id); Wire.write(reg); for(int i=0;i #include "PCF2129AT.h" PCF2129AT rtc; dt_dat dt; void setup() { Serial.begin(9600); Wire.begin(); rtc.init(); Serial.println("PC2129AT Sample Program"); dt.y = 2015; // 年の設定(2000年代) dt.wd = 4; // 週の設定(0-6) dt.mm = 11; // 月の設定(1-12) dt.d = 16; // 日の設定(1-) dt.h = 0; // 時の設定 dt.m = 0; // 分の設定 dt.s = 0; // 秒の設定 rtc.setDate(&dt); // 日時の設定 } void loop () { rtc.getTime(&dt); // 日時の取得 // 日時の表示 Serial.print("year :"); Serial.print(2000 + dt.y,DEC); Serial.print("\t week :"); Serial.print(dt.wd,DEC); Serial.print("\t month :"); Serial.print(dt.mm,DEC); Serial.print("\t date :"); Serial.print(dt.d,DEC); Serial.print("\t hour :"); Serial.print(dt.h,DEC); Serial.print("\t minutes :"); Serial.print(dt.m,DEC); Serial.print("\t second :"); Serial.println(dt.s,DEC); delay(100); } }}} === 動作サンプル === [[Image(sample1.png,480px)]] == ライブラリ == 簡易ですがライブラリを作成したので、 "libraries"下にPCF2129ATフォルダを設置してください。 現在のバージョンは2015/11/16版です。 [attachment:PVF2129AT.zip] == 付録 == mbedのページ [https://developer.mbed.org/teams/CQ_I2C_book/code/PCF2129AT/ https://developer.mbed.org/...]