ATmegaのTWIモジュールをまじめに使ってみる

■家電制御デバイスはフィールドテスト中。サーバーと通信を繰り返して複雑なシーケンスを処理しなくて良いので、だいぶいい感じ。赤外線リモコン操作は確実性が低いので、スイッチ操作をしたら実際に電源が入ったかどうかを確認しないとならないのだけど、そのあたりの操作がデバイスで閉じて処理できるのでやりやすい。ただ、ちょっと間違えると応答待ちでループに入ってしまったりして、その手のバグ出しはちょっと手間がかかってる。ちょっとした条件の違いでハマることがあったりするし、家電品の消費電力量がアナログ量なので微妙にぶれるところがあったりするのも難しいし、面白いところです。

 それはそれとして、デバイス作りがひと段落ついたのでATmegaのお勉強。今までI2CはADコンバータのピンと重複していることもあって自前のルーチンで処理していたのですが、ATmegaシリーズにはペリフェラルとしてTWIモジュールを持っているのでそれをまじめに使ってみました。
 マスタモードで通信するI2Cのサンプルライブラリをいくつか見つけて、データシートを時折確認しながら動くかどうかを試していたのですが、最初はなかなかうまくいきませんでした。ブレッドボード上に組んでいたのですが、ジャンパ線を適当に使っていたのがよくなかったらしく、SDAとSCLの線長を合わせたら動くようになりました。今回I2Cの外部デバイスに選んだのは赤フグから出ているI2Cの8セグ(TWIディスプレー)ですが、クロック周波数は400Hz程度にまで落とさないとだめでした。ブレッドボードでなく、まだユニバーサル基盤など使えばもう少し成績は良くなるかもしれません。

 I2C対応チップの中には正規のI2Cに対応していない、変則的なプロトコルを実装しているものもあって、そうしたチップについては自前で組んだI2Cモジュールでないと対応できないのですが、標準的なものであればもちろん組み込みペリフェラルを使ったほうが良いわけです。ただ、ADCのチャンネルを2つ使われるので、そこはトレードオフになっていて、たぶん、外付けのアナログマルチプレクサなどでチャンネルを補うことで対応できるだろうと思っています。まだ、具体的に作るものは考えていないのですが、ちょっと調べておこうかなと。

Copyright (C) 2008-2015 Satosh Saitou. All rights reserved.
戻る
日記::一覧展開
2016.06
2016.05
2015.12
2015.11
2015.08
2015.07
2015.06
2015.05
2015.04
2015.03
2015.02
2015.01
2014.12
2014.11
2014.10
ケース加工 (2014.10.11)
2014.09
RaspberryPi B+ (2014.09.06)
2014.08
2014.07
SDカード再び (2014.07.05)
2014.06
2014.05
2014.04
2014.03
2014.02
2014.01
2013.12
2013.11
2013.10
2013.09
ヒステリシス (2013.09.28)
2013.08
2013.07
2013.06
2013.05
2013.04
箱詰め終わる (2013.04.13)
2013.03
XBeeで接続する (2013.03.10)
2013.02
音と光 (2013.02.03)
2013.01
2012.12
外装に収める (2012.12.23)
2012.11
2012.10
MPL1151A1 (2012.10.07)
2012.09
2012.08
2012.07
2012.06
2012.05
DHT11 (2012.05.12)
2012.04
PHPでIPCを行う (2012.04.22)
DHCPを立てる (2012.04.14)
DNSを立てる (2012.04.08)
2012.03
IPv6を追加する (2012.03.17)
MTUを調整する (2012.03.11)
2012.02
2012.01
2011.12
2011.11
アサーション (2011.11.20)
XB24-BとXB24-ZB (2011.11.06)
2011.10
家電入れ替え (2011.10.23)
2011.09
湿度センサ (2011.09.25)
2011.08
2011.07
2011.06
2011.05
2011.04
2011.03
2011.02
2011.01
2010.12
PWMで赤外線 (2010.12.26)
2010.11
2010.10
2010.09
音を鳴らす (2010.09.12)
2010.08
2010.07
2010.06
2010.05
2010.04
2010.03
2010.02
2010.01
2009.12
2009.11
2009.10
2009.09
2009.08
2009.07
2009.06
2009.05
2009.03
2009.02
2009.01
2008.12
AVR HTTPサーバ (2008.12.20)
2008.11
2008.10
2008.09
2008.08
ICMP Echo応答 (2008.08.16)
MACフレーム (2008.08.03)
2008.07
2008.06
2008.05
SDカード再び (2008.05.11)
GPSロケーター (2008.05.04)
2008.04
2008.03
音が小さい (2008.03.30)
2008.02
1998.11
作成:2014.06.07
公開:2014.06.15

Valid XHTML 1.1

loading image reserved place