マイコン独立大作戦
ROM/RAM/RTCボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第12回]
●オープンコレクタ出力波形
このところやらなければならない作業が山積していて、なかなかHPの更新ができません。
本日も時間がありません。
ほんの少しだけの更新です。
すでに説明しましたようにDS1307とCPUとの間の通信はI2Cで行ないます。
参考回路はDS1307のDatasheetに記載されています。
[出典]Maxim Integrated Products,DS1307 Datasheet
その図を見ますとデータライン(SDA)だけではなくてクロック(SCL)にもプルアップ抵抗が入っています。
データライン(SDA)は送受信回路なので当然オープンコレクタ出力になりますが、はてクロックもかいな?とちょっと疑問に思いますが、I2Cはどうもそうするもののようですので、そのような回路にしました。
回路図は[第3回]でお見せしました。
ここでちょっと気になりましたのは、オープンコレクタ回路ではLからHへの立ち上がりが遅いということです。
DS1307との通信ではDatasheetの記載にしたがって、必要なところでは一定時間(約5μS)を確保するようにしているのですが、たとえばCPUがデータを送信してそのあとでDS1307からのACKを受信するために、出力ラインをHにしたとき、もし最後のデータ出力がLだったとすると、オープンコレクタ出力ではLからHへの出力変化には時間がかかります。
すぐにDS1307からACKが出力されればよいのですが、もしACK出力が遅れた場合、データ出力のLの遅延をDS1307からのACKと間違えてしまうのではないかということが少し気になりました。
その後にDS1307との間の通信波形を確認してみますと、どうやらDS1307からのACK出力はCPUからのデータ出力の最後のビット出力のクロック(SCL)が立ち下がるとほぼ同時に行なわれているらしいということがわかってきましたので、この件については気にする必要はないという結論になりました。
実はその結論に至る前に、気になったものですからオープンコレクタ回路(74HC03)の出力波形をオシロで観測してみました。
せっかく写真も撮りましたので、何かの参考になるかも知れませんから、ここにUPしておくことにいたします。
上側(CH1)は74HC03の入力信号で下側(CH2)が出力波形です。
やはりかなりなまっていますが1/2VCCまで約250nsぐらいですから、プログラムで読み込むことを考えるとこの程度の遅延は問題になりませんでしょう。
水平時間軸を1ms/divにしました。
出力がLからHになるときの波形はなまっていますが、HからLになるときはシャープな波形です。
ROM/RAM/RTCボードの製作[第12回]
2017.7.20upload
前へ
次へ
ホームページトップへ戻る