2017.7.10
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
ROM/RAM/RTCボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第7回]


データの送信

この一週間はいろいろあって超多忙でホームページの更新ができませんでした。
その間になんとか時間をみつけてハード、ソフトの両方を進めているのですがなかなか思うようには進みません。
少しずつホームページにUPしていきますので、気長にお付き合いください。

さて今回はいよいよIC通信によってDS1307に時刻データを送信します。
通信の基本的なルールとDS1307の内部レジスタについては前回見ていただきました。
実際の通信にあたってはもう少し具体的なルールが決められています。

下はマスター(CPU)からDS1307へのデータ送信の場合の波形サンプルです。

[出典]Maxim Integrated Products,DS1307 Datasheet

送信の開始はマスターがSCLがHのときにSDAをLにすること(スタート信号の送出)で開始されます。
スタート信号とストップ信号以外のデータはSCLがHの期間は保持し、Lの期間に変化させます。
マスターは8クロックを使って8ビットのデータを上位ビットから下位ビットの順に送り出します。
8ビットのデータを送出したあと、マスターは9番目のクロックを送出します。
9番目のクロックがHの期間中にスレーブはアクノリッジ信号(Lレベル)を出力します。
上の波形チャートではあいまいですが、そのことからすると9番目のクロックの送出前にマスターはSDAラインを開放しておかなければならない(SDL=Hにする)ということになります。
全データを送出したら、マスターはSCLがHのときにSDAをLからHにします(ストップ信号)。
そのためにはその直前のSCLがLの期間中にSDAを一旦Lにしておく必要があると思います。

ところで実際に時刻データをSD1307に送信するには、上のサンプルだけでは不足です。
下は実際の送信例を具体的に示したものです。


[出典]Maxim Integrated Products,DS1307 Datasheet

Sはスタート信号でPはストップ信号です。
Aはスレーブからのアクノリッジです。
上例のようにIC通信では通信の開始時にまずスレーブに固有アドレスを送出します。
DS1307の場合にはアドレスは1101000の7ビットです。
8ビット目が送信か受信かを示すR/Wビットです。
マスターからスレーブへの送信はR/Wビットを0にします。
そのあとには開始レジスタbフ8ビットを送ります。
続いて最初のデータ8ビットを送ります。
DS1307はレジスタデータを受信するたびにレジスタbインクリメントします。
最後のデータまで送り終わったら、ストップ信号を送って通信を終了します。

ROM/RAM/RTCボードの製作[第7回]
2017.7.10upload

前へ
次へ
ホームページトップへ戻る