2022.10.23
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第81回]



●PICUSBIO−03(30)Timer1(12)CAPTUREモード(3)2つの謎

前回からの続きです。
前回は左側のコマンドプロンプトでPICUSBIO−03 #30からパルスを出力してそれを右側のコマンドプロンプトのPICUSBIO−03 #31で受けてCCPR1レジスタの値を表示するCAPTUREモードのテストプログラムを実行しました。
最初は左側のPICから周期699msecのパルスを出力したところそれを受けた右側のPICのCCPR1の値がカウントするたびに259〜260カウントずつ増加した値になりました。
私の考えでは今回のテストではCCPR1の値はつねに一定になるはずです。
そこで念のため出力パルスの周期を半分の349.5msecにしてみたところCCPR1の値は上記の1/2の131カウントずつ増加しました。
CCPR1の増分はどうやらパルスの周期(カウント回数)に比例しているようです。

そのことをさらに確認するため出力側のパルス周期を変えながらテストを続けてみました。

T0CONに$83を設定しました。
前回は最初は$85に設定しました。
プリスケーラが1:64で出力パルスの1周期は699msecでした。
次には$84に設定しました。
プリスケーラは1:32で出力パルスの1周期は349.5msecでした。
今回はプリスケーラは1:16で出力パルスの1周期は約175msecです。
前回と同じように前の値と次の値との差を計算してみました。

1196
11D8 42
1219 41
125B 42
129C 41
12DD 41

16進数表示で42(10進数では66)か41(65)ですからやはり前回の2回目のテストの値の1/2です。
ここまでくればCCPR1の増分は間違いなくパルスの周期(カウント回数)に比例していると考えてよいと思います。
さらにテストを続けました。

T0CONに$82を設定しました。
プリスケーラは1:8で出力パルスの1周期は約87msecです。
前の値と次の値との差を計算してみました。

340C
342D 21
344E 21
346F 21
348F 20
34B0 21

16進数表示で21(10進数では33)か20(32)ですからやはり前のテストの値の1/2です。
さらにテストを続けました。

T0CONに$81を設定しました。
プリスケーラは1:4で出力パルスの1周期は約43.5msecです。
前の値と次の値との差を計算してみました。

9B73
9B94 21
9BB4 20
9BD5 21
9BF6 21
9C16 20

ここで異変が起きました。
ずっとひとつ前のテストの増分の1/2の増分だったものが出力パルスの周期を43.5msecにしたところその前の87msecの周期のときのテストの増分と変わらない値になってしまいました。
何か操作ミスをしたのかと思って確認しながら再度テストしてみたのですが結果に変わりはありませんでした。
どうにも納得できない思いでしたがとにかくテストを続けることにしました。

T0CONに$80を設定しました。
プリスケーラは1:2で出力パルスの1周期は約22msecです。
前の値と次の値との差を計算してみました。

D6D8
D6F0 18
D708 18
D721 19
D739 18
D752 19

やっぱりおかしいです。
前のテストの増分に比べて1/4ほどしか減少していません(そもそもその前の増分自体がおかしいのですけれど)。
左側のPICのプリスケーラの設定を前の値の1/2にしながらテストをしてきましたがこれが最後のテストです。

T0CONに$88を設定しました。
プリスケーラを使わない設定です。
出力パルスの1周期は約11msecです。
前の値と次の値との差を計算してみました。

0F17
0F2C 15
0F40 14
0F50 10
0F65 15
0F79 14

やっぱりおかしいです。
前の増分からわずかしか変わっていません。
どこかにおかしなところがあります。
どうやらクリアしなければならない謎は2つあるようです。
一つ目は本来ほとんど動かないはずのCCPR1レジスタの値がカウントするたびに少しずつ増加していくのはなぜか、そしてその増分は左側のPICから送出されるパルスの周期に比例しているという謎です。
いま一つの謎はパルス周期が87msecまでは上記のように増分が周期に比例しているのに周期が43.5msecかそれ以下になると増分が周期に比例しなくなるのはなぜかということです。
一つ目の謎については多分こういうことではないかという目星がついたのですがそこに二つ目の謎が重なってしまったものですからもう訳がわからなくなって二日間ほど悩んでしまいました。
わかってしまえばなんてことはない謎だったのですが歳を取ってしまったせいで頭の回転が鈍くなってしまったようです。
毎回書いておりますように、歳は取りたくないものであります。

今回も謎を抱えたまま次回に続きます。

PIC−USBIO using BASIC[第81回]
2022.10.23upload

前へ
次へ
ホームページトップへ戻る