TCXO RTC for STM32F4-Discovery

sorry. japanese only.

TCXO RTC(DS323x) addonボード

はじめに STM32F4Discoveryボード(以下discoボード)は安価な上に高機能な評価ボードですが,バッ テリバックアップ用途での応用がしづらい所が残念な点です。 時計機能を必要とするアプリケーションには少々扱いにくいと思い,Maxim社のTCXO RTC DS3231,DS3232,DS3234などを搭載して,時刻の保持や非常に精度の高いLSE(低速外部クロッ ク)源にもできる,バッテリバックアップ可能なTCXO RTCアドオン基板を作成してみました。 ハードの概要 ・Maxim社の高精度TCXO RTCを接続可能(DS3231,DS3232,DS3234) ・RTCへのインターフェイスにはI2C/SPIを用いる ・I2Cインターフェイス(DS3231,DS3232)のRTCの場合には,RTCアラームの割込みが可能 ・RTCの32768Hz出力をLSE(低速外部クロック)へ入力可能 ・コイン電池を使ったRTCのバッテリバックアップ ・邪魔にならないようにdiscoボードの部品面にコンパクトに実装(下の画像を参照) discoボードは,ピンヘッダがボードの部品面に5mmほど突出して実装されており,ここに 接続することで,かなりイージーに接続ができますのでこれを利用しています。
parts layout on TCXO RTC addon boardusing TCXO RTC addon board on disco board. TCXO RTC addonの部品レイアウトと製作したボードの搭載の状態(画像をクリックで拡大)
想定する使用方法について (1) RTCの高精度な32768Hz出力を低速外部クロック入力(LSE)をクロックソースとして選択 (2) アプリケーション起動時にMCU内蔵RTCをLSEソースで設定しRTCの時刻をMCU内蔵RTCへ (3) アプリケーションはMCU内蔵RTCを利用し時刻を取得 (4) アプリケーションがRTCを意識するのは,RTCへの設定や不揮発メモリへ利用時のみ アプリの起動時に日付/時刻データをTCXO RTCから読み込んで,内蔵RTCに設定してしまい, 後は内蔵RTCだけを使うようにすれば,アプリの影響範囲を局所化できるという考え方です。 もちろん,時刻を取得するたびにTCXO RTCから読み出してもいいのですが,折角MCUに内蔵 RTCが搭載されているのですから,これを利用しない手はありません。 TCXO RTCの出力するクロックを外部クロック入力として利用することで精度を落とさず, MCUの機能を活用するわけです。 このTCXO RTCボードでは,制御に使用するSPI/I2Cインターフェイスを,以下のGPIOを駆動 して実装する必要があります。 稿末にサンプルプログラムのソースアーカイブをおいておきます。
インターフェイス線のGPIO割当て表
MCU GPIO DS3234
(SPI I/F)
DS3231/32
(I2C I/F)
PE4 DIN SDA
PE5 DOUT N.C.
PE6 SCLK SCL
PC13 /CS N.C. or /INT
上記以外のTCXO RTCの信号を取り出すこともできますが,詳細はTCXO RTC addonボード回路図をご覧ください。


ボードの回路図
schematic graph of TCXO RTC addon board TCXO RTC addonの回路図(画像をクリックで拡大)
I2CインターフェイスのTCXO RTCを使用するにあたって I2CインターフェイスのRTC(DS3231かDS3232)を使用する場合には,R3,R4にプルアップ抵抗 (10KR程度)の実装が必要になります。 またI2CインターフェイスのRTCの場合には,RTCのSQW/INT#信号線を使用することが可能と なります。その場合にPC13=/INTというジャンパはクローズします。 (PC13がSQW/INT#の入力となりますのでDS3234の場合にはオープンのままとしてください。) DS3231を実装する場合には,パッケージが16ピンですので,ボードの3ピンの位置にLSIの 1ピンが来るようにずらして実装してください。 TCXO RTCを使用したサンプルプログラム 棒読み時計 このアドオンボードを活用する簡単なアプリケーションです。discoボードのユーザボタン を押すと,ボード上のフォーンジャックから現在の内蔵RTCの時刻を読み上げます。 アドオンボードがあれば,計時の精度と起動時に時刻の自動設定を行えます。 サンプルプロジェクト ↑の中にあるsrc/srm32f4xx/sspi.cやsi2c.cがTCXO RTCアクセス用関数のサンプルです。 TCXO_RTCから内蔵RTCへの時刻セットの他にstm32f4の内蔵RTCを外部の32768Hzで使用する 処理等も書き散らかしてあります。 [ご注意] ・このページの記載事項については,一切無保証です。
inserted by FC2 system