アプリケーションノート 3721

DS1318と8051互換マイクロコントローラとのインタフェース


要約: このアプリケーションノートでは、DS1318経過時間カウンタを使って経過日数をカウントするアプリケーションを示します。ソフトウェア例には基本的な動作ルーチンが含まれています。アプリケーションの回路図も掲載してあります。

DS1318のピン配置
DS1318のピン配置

カウンタの概要

このアプリケーションノートでは、DS1318経過時間カウンタの使用方法を示します。DS1318は、244µsごとにカウントアップする44ビットのカウンタを備えています。この44ビットのカウンタには、6つの8ビットレジスタを通してアクセスします(図1)。

図1. DS1318の44ビットカウンタの構成
図1. DS1318の44ビットカウンタの構成

概念的には、44ビットのカウンタを、12ビットのサブ秒カウンタと、1秒に1回カウントアップする32ビットのカウンタに分解できます(図2)。秒以下の解像度が必要なければ、32ビットの秒カウンタレジスタにのみアクセスしても構いません。

図2. 12ビットのサブ秒カウンタと32ビットの秒カウンタ
図2. 12ビットのサブ秒カウンタと32ビットの秒カウンタ

このアプリケーションノートの例では、ソフトウェアルーチンが絶えず32ビットの秒カウンタを読み出して、秒の変わり目ごとに8051マイクロコントローラ(µC)のUARTを通して日時をASCII形式で出力します。日時の値は、1970年1月1日0時0分0秒からの経過時間(単位:秒)に基づいています。00000000hという値は1970年1月1日00:00:00を表し、42C924C0h は2005年7月4日12:00:00に相当します。

もう1つのルーチンでは、デバイスの定期的割込みを1Hzの周期に設定する方法を使用しています。割込みが発生するたびに、割込み処理ルーチンがカウンタのデータを読み出して、データを日時の書式に変換し、UARTを通してASCII形式でデータを出力します。

その他のルーチンも考えられます。別の例として、DS1318がユーザ入力を受け取って、単一のレジスタにデータを書き込む場合を想定しました。日時の情報をユーザから取得して、それを1970年1月1日からの経過秒数に変換し、その値をカウンタに書込みます。また、DS1318の全レジスタを読み出して、16進形式で出力するルーチンも用意しました。

動作

このアプリケーションノートのハードウェア例では、DS1318をµCのデータメモリ空間内に配置しています。µCは、該当するデータメモリ位置を読み書きすることによって、DS1318のレジスタにアクセスします。

この例では、低電圧の8051互換マイクロコントローラ、DS80C323を使用しています。ユーザ入力とプログラムからのデータ出力は、PC上の端末エミュレータプログラムからRS-232インタフェース経由でµCに渡されます。このアプリケーションノートで使用しているDS80C323マイクロコントローラについての詳しい情報は、当社のWebサイトでご覧いただけます。

ソフトウェアを図3のプログラムリストに示します。回路図を図4に示します。


図3. プログラムリスト
ダウンロード
(TXT、7K)
図3. プログラムリスト

図4. 回路図
より詳細な画像
(PDF、30K)
図4. 回路図