Japanino ArduinoISPで ATtiny13 の BASCOM-AVRでの software serial - ソフトUARTの実験(3) (30) (11/15)
回路に当てるプローブ(手製)はUSBの電源を切ってから(USBケーブルを抜く等)、赤のプローブを5V、黒のプローブをGNDに近い側へ当てる。
ソースで言うと、最大処理時間は、IF文が真で、LEDの点滅をWaitms 500する4行だ。
オシロスコープ(ソフト名ハンディ・オシロスコープ)を起動すると、以下のようになる。
かなり前の記事「オシロスコープの使い方」で較正をした後なら、
以下のように縦のスライドバーが20に移動している。
ATtiny13にプログラムを既に書き込んであるとして、USBの電源を入れると次のように大きく波打つ様子が表示される。
自分の場合は下(CH1)の方に出るようにイヤホンジャックを半田付けしたようだ。ただしこれは最初のFor~Nextの300ms待つ処理の波形。波形が見ずらいので左下の数値0.2(起動時)を1にすると良い。
波形がはみ出さないようCH1の縦スライドバーを15にする。そして動いている波形を止めるのに赤枠の[Pause/Logging]ボタンを押す。
以下にうまく止まった様子を示す。
何回か[Pause/Logging]ボタンを押して画面にきれいに収まるようにする。USBのON/OFFも何回かやってOK。
1周期を測るのに山の始まりと谷の終わりを左クリック、右クリックしたままドラッグして縦線を各ポイントに移動する。
慣れたところで、実際の処理の方に行こう。
起動時の点滅が終わるまで放っておく。そして[Pause/Logging]ボタンを押して[Pause]と表示されている状態にする。この時ロギングされて録画?中になっている。そして左下は25としておく。波形が1500ms待ちですごく間延びしているので。
Tera Termからファイル転送でデータを送信した様子が以下の通り。
赤のプローブを次のようにPB4の配線に変える。GNDはそのまま。
その波形は以下の通り。
5で計測すると以下の通り。
ゆっくりと波形が進むので先頭の波形が画面左に寄ったところでPause。
これを今度は左下の横スライドバーを5にすると、全体のロギングした波形が先頭5%の部分が画面全体に引き伸ばされて、以下のようにズームした状態になる。
これが1個目。
2個目の波形を見るのに横スライドバーの上の、横スクロールバーを右に移動させる。似たような波形が以下の通り表示される。
横スライドバーをマウスでクリック(メモリ部分でもよい)してから矢印キーを押すと、細かく調整できるので、5→1にし、さらに横「スクロール」バーの位置を右にずらして3番目の波形を確認する(左下のデフォルト0.2の数字は拡大し過ぎると右端の波形データから欠損していくので戻しても元には戻らなくなるのでバーだけいじるのがよい)。
3番目の波形はマウスで線を移動して波形の先頭と末尾の時間の間隔を見てみる。
1個目、2個目、3個目と見てきて、なんとなくビットを表しているのかな~と予想できる。今の通信パラメータは300bps,8ビット,n(ノンパリティ),1ストップビット。次のようにシリアル通信のデータのフォーマットと比べてみると、1個目がまさにAのフォーマットになっている。
もう一度最初に戻って(プローブでLEDをはさんで左下を25にした)横スライドバーで10くらいにした波形が以下の通り。
最後のは、Tera termの送信遅延を0にし、PB4を計測する事で通信をモニターした波形。最初のストップビットの終わりから、次のストップビットの終わりまでの時間を測ったら33.3msだった。
そしてオシロスコープの出来る事、やり方が少しずつ分かってきたように思う。