第14回 回路図設計 〜I2C通信モジュール回路〜

今回は、I2C通信を行う温度センサとLCDモジュールの回路図を設計します。

目次

I2C通信モジュールの端子

温度センサとLCDモジュールの通信方式はI2Cです。前回の温湿度・気圧センサは、SPIかI2Cを選択できましたが、温度センサとLCDモジュールの通信方式はI2C固定です。

I2C通信モジュールは以下のような端子を持っています。

Pic practice 14 i2c terminal

端子名 内容
VDDや+など 電源プラス
GNDや-など 電源マイナス
SDA データを送受信する端子
SCL データ通信のタイミングをとる端子

I2C通信の詳細を説明していませんので、端子の意味はまださっぱりわかりませんよね。今のところは端子の意味や働きは全くわからなくて大丈夫です。

I2C通信モジュールもPICマイコンにただ接続するだけですが、SPI通信に比べてちょっとだけ部品が必要です。その内容も含めて、接続方法を説明します。

I2C通信モジュールの接続方法

I2C通信モジュール一般的な接続方法を説明します。

I2C通信モジュールを接続する場合、PICマイコンのピンに接続するだけですが、以下のようにそれぞれの信号線を10kΩの抵抗でプルアップする必要があります。

Pic practice 14 i2c toplogy single

I2C通信のモジュールは、種類によらずこのような接続方法を取ります。

実践編のシステムでは、温度センサとLCDモジュールがI2C通信を行いますので、2つのI2Cモジュールを接続する必要があります。複数のI2Cモジュールを接続する場合は、以下のように同じ信号線を接続していけばOKです。

Pic practice 14 i2c toplogy multi

注意点としては、10kΩのプルアップ抵抗は1ヶ所でOKです。I2Cモジュールが複数ある場合でもプルアップ抵抗は1組にします。

ところで、SPI通信モジュールも複数接続することができますが、接続方法については通信方法を説明するときに接続方法も説明します。

I2C通信モジュールはこのように同じ信号線を接続して、1ヶ所抵抗でプルアップするだけ、となります。

回路図

ということで、結局今回も接続しておしまいです。回路図は以下のようになります。

PICマイコンのピンはSPIモジュールの時と同様、端のピンの方がブレッドボードで接続しやすいという理由だけです。PICマイコンのプログラムで制御することになります。

液晶モジュール接続回路

なんだか解説が足りないような気もしますが、データ通信を行うモジュールは基本的に信号線を接続しておしまい、あとでプログラムするときに大変な目にあう、というのが基本です。ご不明点がありましたらコメント欄かお問い合わせフォームからご質問いただければと思います。

更新履歴

日付 内容
2018.3.25 新規投稿
2018.12.7 回路図のPICkitコネクタピン数を6ピンから5ピンに変更
通知の設定
通知タイミング
guest
4 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
gosan
gosan
2 年 前

ツール・ラボでは大変勉強になる所が有り拝見させて頂いております。
現在LDCと温度センサーのi2cタイミングで悩んでおりましてご連絡致しました。
症状としてし、数日間動かしてまれにi2cが止まってしまう(止まっている位置は、スタート,ack待ちなど定まっていません)のですが、オシロで見るとスタートパルスの時はデーター基準でクロックが変化する時間が5.4u程度のずれは有るのですが、それ以降のパルスタイミングがクロックが立ち下がりするタイミングに対してデーターが変化する時間が360ns : クロック立ち上がりに対してデーターが変化する時間が520ns
しか有りません。(クロックとデーターの切換がほぼ同じ状態)
上記時間に対して、信号をずらすタイミングもしくは調整方法等は有るのでしょうか?
動かしているICは、PIC16f18857です。
以上よろしくお願い申し上げます。

gosan
gosan
返信  管理者
2 年 前

ご連絡大変ありがとうございました。
此方でもいろいろ探してみた結果、原因がわかりました。
当方の持っている仕様書(資料)が古いという事が判り、i2cのSDAHTを使えば動かせる事が判りました。
ご調査・等で、ご苦労をおかけ致しました事に対して、大変感謝している次第です。

目次