2016年01月31日

文字表示器 -第5回:不具合の原因推測(電流駆動能力)

はじめに

前回は動作がおかしかった文字表示器のプルアップ抵抗(図1 R1-R4)の抵抗値を10[kΩ]から47[kΩ]に大きくしたら、正常に動くようになりました。今回はなぜ正常に動いたのかを推測してみます。

jan24_LCD回路図.png
図1 回路図


目次



1. 現象の確認と不具合の推測

前回発生した不具合とその対策を確認します。
  1. キャラクタLCDが正常に動作しなかった
  2. I2Cの波形を確認したらLowレベルが0.8[V]と高かった(図2)
  3. プルアップ抵抗を10[kΩ]から47[kΩ]に大きくしたら、Lowレベルが0.2[V]まで下がった(図3)
  4. キャラクタLCDが正常に動くようになった
jan29_I2C波形_1.png
図2 10[kΩ]時I2C波形

jan29_I2C波形_2.png
図3 47[kΩ]時I2C波形

プルアップ抵抗が10[kΩ]のときはLowレベルが0.8[V]とやや高いため、正常な通信ができなかったのだと思われます。47[kΩ]に変更したことでLowレベルが0.2[V]と下がったため、正常な通信が出来るようになったと思われます。
なぜプルアップ抵抗を変更することでLowレベルの電圧が変化したかについてですが、I2C関連の部品のどれかの電流駆動能力が不足しているからと思われます。


2. 電流の駆動能力とは

電流駆動能力とは部品がどれだけの電流を流せるかの能力のことです。駆動能力はドライブ能力とも言ったりします。そして電流駆動には方向があり、シンク(吸い込み)ソース(吐き出し)の2種類です。

図4はプルアップ回路とICを組み合わせた回路です。Lowを出力するにはICが電流を吸い込み、プルアップ抵抗に電流を流す必要があります。このようにプルアップ回路でICが電流を吸い込む方式をシンク駆動といいます。

jan29_I2C不具合_1.png
図4 シンク駆動

反対に図5のようなプルダウン回路とICの組みあわせでは、Highを出力するためにICが電流を吐き出します。このような方式をソース駆動といいます。

jan29_I2C不具合_2.png
図5 ソース駆動

このように回路によってICは電流を吐き出したり吸い込んだりするわけですが、High/Lowレベルを正しく出力するためには抵抗器に電源電圧と同じだけの電圧降下を発生させられるだけの電流駆動能力が必要です。
例えば電源が+5[V]、抵抗器が10[kΩ]の場合は5[V]/10[kΩ]=0.5[mA]以上の電流駆動能力が必要です。電流駆動能力がこれを下回るとHigh/Lowレベルを正しく出力できなくなります。


3. 電流駆動能力が不足する場合の対策

先ほどの例では0.5[mA]以上の駆動能力が必要ですが、仮に駆動能力が0.4[mA]と不足している場合を考えます。
プルアップ抵抗に電流が0.4[mA]しか流れなければ、プルアップ抵抗の電圧降下は0.4[mA]×10[kΩ]で4[V]です。電源電圧5[V]から電圧降下4[V]を引くと残りは1[V]なので、出力レベルは0[V]でなく1[V]となってしまいます(図6)。

jan29_I2C不具合_3.png
図6 プルアップ抵抗10[kΩ]、駆動能力0.4[mA]の例

図6のように電流駆動能力が不足すると、High/Lowレベルを正しく出力できません。この場合の対策として簡単なのは前回行ったように、プルアップ抵抗値を大きくすることです。そうすると電源電圧分の電圧降下を発生させるのに必要な電流が少なくなるため、駆動能力が少なくてもHigh/Lowレベルを正しく出力できます(図7)。

jan29_I2C不具合_4.png
図7 プルアップ抵抗47[kΩ]、駆動能力0.4[mA]の例

このように電流駆動能力が不足していても、プルアップ抵抗やプルダウン抵抗を大きくすることで正常に動く場合があります。
※プルアップ抵抗やプルダウン抵抗を大きくすれば駆動能力は少なくて済みますが、ノイズ耐性が弱くなり動作が不安定になる場合があります。多くの場合は数[kΩ]から数十[kΩ]で問題ないです。


まとめ

以上に説明したように、文字表示器の動作がおかしかったのは電流駆動能力が不足していたためと思われます。ただしなぜ不足していたのかは不明です。想像ですがレベルシフタを使用したため、そこから余分な電流が漏れ、電流駆動能力が不足するようになった可能性もあります。

プルアップ抵抗が10[kΩ]で駆動能力が不足した詳細な理由は不明ですが、プルアップ抵抗を大きくすることで文字表示器が正常に動作しました。次回も文字表示器を扱います。


マンガでわかる電気回路 [ 飯田芳一 ]

価格:2,160円
(2016/1/31 18:40時点)
感想(1件)

posted by ました at 18:37| Comment(0) | TrackBack(0) | 電子工作の実践 | このブログの読者になる | 更新情報をチェックする

2016年01月24日

文字表示器 -第4回:不具合調査、動作確認(成功)

はじめに

前回は文字表示器を実装し動作確認を行いましたが、正常に動きませんでした。
今回は動かない理由を調べ、動くようにします。


目次



1. 不具合調査と対策

図1が作成した回路です。

jan10_LCD回路図.png
図1 文字表示器回路図

通信に関わるのはI2Cの信号ですので、SDAの信号をオシロスコープで観察しました(図2)。青が5[V]側のSDA(IC1.A1)、赤が3.3[V]側のSDA(IC2.B.1)です。

jan24_10k.png
図2 SDA信号波形

この波形で問題なのはLowのときに0[V]に下がりきっていないことです。中途半端な電圧になっていますので、LowをHighと認識しているときがあるのかもしれません。

そこで、対策としてプルアップ抵抗の抵抗値を10[kΩ]から47[kΩ]に変更しました(図3)。変更後のSDA信号波形が図4です。(5[V]側の信号のスケールが異なっていますが、無視してください)

jan24_LCD回路図.png
図3 文字表示器回路図(プルアップ抵抗47[kΩ])

jan24_47k.png
図4 SDA信号波形(プルアップ抵抗47[kΩ])

プルアップ抵抗を変更することで、Lowのときに0[V]まで下がりました。これなら正常に動きそうです。


2. 動作確認

プルアップ抵抗47[kΩ]時の動作を確認しました。カウントが正常に動作しています。



まとめ

プルアップ抵抗の抵抗値を大きくすることで、文字表示器が正常に動作するようになりました。
次回はなぜプルアップ抵抗を変更することで正常に動いたかを考えてみます。


スイッチサイエンス Arduinoをはじめようキット

価格:4,320円
(2016/1/24 16:54時点)
感想(0件)

posted by ました at 16:56| Comment(2) | TrackBack(0) | 電子工作の実践 | このブログの読者になる | 更新情報をチェックする

2016年01月17日

文字表示器 -第3回:部品実装、動作確認(失敗)

はじめに

前回は文字表示器の回路図作成を行いました(図1)。今回は作成した回路図を元に部品をブレッドボード上に実装し、動作確認をします。

jan10_LCD回路図.png
図1 文字表示器回路図


目次



1. 部品実装

回路図を元に必要な部品を一覧にしたものが表1です。

表1 部品一覧
部品番号部品数量
1R1 - R4抵抗器 10[kΩ]4
2IC1I2C用レベルシフタ AE-FXMA21021
3DIS1キャラクタ液晶 AE-AQM08021


図1と表1を元に文字表示器をブレッドボード上に部品を実装しました(図2)。

P1000394.jpg
図1 文字表示器実装状態


2. スケッチ

ArduinoでAQM0802を動かすために、ブログ「オレ工房」(作者:TOMOさん)にあるAQM0802に対応したライブラリを使用します。ライブラリの中に「HelloWorld」というサンプルスケッチがあるので、そのスケッチを使います。
ただし、そのままだとキャラクタ液晶の表示が見にくかったため、コントラストを40から27に変更しています


3. 動作確認

下記の動画が実際に動かした様子です。上段にHello, World、下段に起動してからの時間カウントが表示されます。


Hello, Worldの表示が切れているのはひとまず置いておくとして、時間カウントがおかしいです。6以降のカウントが正しく表示されていません
よって動作確認をした結果、現在の回路では正常に動作しないことがわかりました


まとめ

文字表示器の部品の実装とスケッチの書き込みを終え動作確認を行いましたが、正常に動作しませんでした。
次回はなぜ正常に動作しないのかを調べ、その箇所を修正します。


参考資料

  1. 作者名:TOMO. "I2C液晶のArduinoライブラリ – ST7032". サイト名:オレ工房. http://ore-kb.net/archives/195, (参照日:2016-01-17)


【新品】【本】Arduinoで計る,測る,量る 計測したデータをLCDに表示,SDカードに記録,無線/インターネットに送る方法を解説 神崎康宏/著

価格:3,024円
(2016/1/17 14:26時点)
感想(0件)

posted by ました at 18:43| Comment(0) | TrackBack(0) | 電子工作の実践 | このブログの読者になる | 更新情報をチェックする