MCU 73:1線式通信 (M.Kikuchi)


1線式通信 A (@は下にあります)

 [ 初めにLED表示! ] 

7-LED*3

 実験をする為に表示器が必要で、avrで作る事にしました。3桁のLEDをコントロールするのですが、タイミングを取って表示するだけなのでavrのAT90S2313を使いました。
 特に理由はありませんが、手持ちがゴロゴロしている為です。PICでも少しの変更で動くと思います。

 動作は

A.タイマー0を使って4mSを作り、この信号ごとに桁の表示をさせます。
 これでも、チラツキはありませんので十分実用になると思います。
B.桁のDATAは取りあえず[123]と表示させた。
C.基本的なことなのでややっこしい事はやっていません。

 当初動きませんでした。これは「単なるアドレス設定ミス」がありました。タイマー0のオバーフロー(割り込み)アドレスを勘違いしました。
 オバーフローの方に設定して動きました。(連休疲れで頭がボヤーとしていたのかなー!)

 今後はDATA受信プログラムの挿入と別基板で送信側を作る予定です。
 この時点の[プログラムはこれ]です。

2011/5/15


1線式通信 @

 I2C式のDATA通信を使っています、また別の2線式通信も試して見ました。
 2線式の基本は「1本がクロックを送り、そのタイミングで片方からDATAを受け取ります。
 途中でクロックを変動させる事は普通ありません、クロックでDATAを受け取る方法ではなく、予め特定のタイミングを決め「それによってDATAを取り込めば受け取れる」と思います(どこかで見た感じもしますが…)

 [ 決めごと ] 

A.予めクロックを決めておく(今回暫定で20μSec)。
B.スタート信号を全ての基準にする。
C.ビット長は一般的な8bitとします。これらから具体的にすると次の様に考えて見ました。(今後変わるかも知れない)

Timing

 [ 受信と送信 ] 

受信側送信側
@:初めは[1]の状態。[1]なら送信を開始する。
A:[0]を確認すると立ち上がりを待つ。[0]にして10uSec、そして[1]を出す。
B:信号が[1]になるのをスタートとする。(Start bit)
C:10uSec後にDATAを受け[1]ならOK。20uSec後に[0]を出す。
D:20uSec後にチエック[0]ならOK。 
E:CDがOKなら20uSec毎にDATAを受ける。8bitDATAを送る。間隔は20uSec
〜Lまで 
M:信号は[1]になる。信号を[1]にして終了。

 Dに付いては無くても作動するので省略するかも知れない。Stop bitとして後ろに回すのもあるかなー。

この項目はしばらく中止します。

2011/5/3 作成


 [ パソコン過使用の警告器 ] 

警告器

 1線式通信を中止して「パソコン過使用の警告器」を作る事にしました。以前作った物はLCD式で夜使うことが多いので文字が見難い、そこで急に製作変更しました。

 今回も「30分ごとにBEEP音がする」という単純な物です。時計(タイマー)機能を追加するだけです。元々AVRも古いもので「10mAはきりますが結構電流を消費します」が、在庫がたくさんあるので使っているだけです。



 [ Soft関連 ] 

 動 作
 LED0.LED1.LED2の3桁動作で割り込みを使って順次(約4mSec)表示する。桁カウンターから1秒を作っている、これから分・時間を作り表示させています。

 タイマー(タイマー0)
 LEDの点灯は1桁4mSecで動作させるのにタイマー0を使い、3桁なので12mSecで一周します。プログラム的には
A.前回表示のLEDをoff
B.その桁のDATAを7-LEDのdataにしてPortへ転送
C.LEDをonで表示され、見える。

 カウント・アップ
 LEDは4mSecで動いているので82回すると約1秒です、これを元に60回で1分、更に10回で10分、60で1時間となる(Max9時間)。

 ビープ音
 メインプログラムで「0分か30分で0秒」の時約3KHzの音を出す(アラーム)。他は何もしない。

 結 果
 6時間で約1分早く表示した、これは1/360。それと「000表示で消費電流は28mA」でした。
 誤差に付いてはタイマー1を使ってないので、こちらでカウントアップをすればもっと正確になったかも。
(4MHz(0.25uSec)*256*15625で1Secになる)。

 こちらは温度計などは付けていません。現在の[プログラムはこれ]です[SW_RX()は使っていません、Softはまだ消していません]。(2011/6/8)


 [MENU] [MAIN MENU]

inserted by FC2 system