アマチュア無線や電子工作,バイクの話などを徒然なるままに書き散らすメモ程度のblogです.


by jq1ocr

【AVR】1-wire に絡まる

別プロジェクトでセンサーとの通信に 1-wire を使う場合があるので,こんなセンサーで練習してみました.
d0106518_20324393.jpg
温湿度センサ AM2302

練習なのでもっと安いのでも良かったのですが,いいのを買ってしまいました.早速説明を見ると「シリアル単線(1-wireライク)通信」とあり,本当の 1-wire なわけではない pseudo-1-wire だったのであります.ガーン

まあとりあえず練習にはなると思うので,挑戦してみました.Atmel のアプリケーションノートによると UART を使った例が載っていましたが,別の用途に使ってしまったため,普通に GPIO を使うことにしました.センサーのプロダクトマニュアルをみながら簡単にコーディングしたのですが,40ビット受け取らなければならないところが2,3ビット足りません.

実際どのような信号になっているのかロジアナが欲しいところですがないのでオシロで見てみます.
d0106518_20412253.png
うまいことビット列が全部入る程度のサンプリングにすると,不鮮明ですが,どうやらちゃんとセンサーからは40bit出ているようです.となると,マイコン側で取りこぼしていることになりますね.

結局プログラム側のビットの読み方を変えてなんとか数字は出てくるようになりました.パリティ計算も省かずにやっていますので,多分大丈夫でしょう.
d0106518_23374859.jpg
あとは TWI とレベルコンバータを組み込んでみる予定です.
[PR]
by jq1ocr | 2014-02-17 21:30 | マイコン・電子工作 | Comments(0)