電子工作117 – 12F683の設定可能な8個の内部クロックの正確さを測ってみた
Electronics Project 117 – Measurement of
Accuracy of 8 Settable Internal Clocks of 12F683
概要
Introduction
よく使う8ピンのPICマイクロコントローラーの中で、12F683は内部クロック速度を8段階に設定できるので、何かと便利である。例えば、31KHzで動作させると、デフォルトの4MHzに比べ、電流消費をかなり下げることができ、電池駆動の場合大変好都合である。何よりも、外付けのクロック発信回路などなしで、8種類ものクロックが選択出来るのが良い。今回は、果たしてこれら8個のクロックがどれくらい正確なのかを測定してみることにした。すなわち、プログラムでOSCCONというレジスタ値を8段階に変化させて、それらの出力を12F683のピン3(GP4)でオシロスコープを使って周波数を測定する方法をとった。このピン3で得られた周波数は実際の4分の1になっているので、得られた周波数値を4倍したものが実際の測定結果である。それらを見ると、最も遅い31kHzを除いて、外の7個の内部クロックが設定通り、ほぼ正確に動作していることが分かった。
The aim
of this project is to verify how accurately the eight settable internal clocks
(31kHz – 8MHz) of 12F683 are functioning Set a requiring frequency in OSCCON
register, then measure the resulting frequency at Pin 3 (GP4) of 12F683 by an
oscilloscope. This frequency obtained is designed to be 1/4 of the actual
frequency, so each obtained frequency value needs to be multiplied by 4. Among
the eight obtained frequency values, the value for 31KHz was found to be
slightly lower than the theoretical value, but the other seven frequency values
were very close to their theoretical ones. Therefore, it can be said that the
settable frequency values are fairly accurate except 31kHz.
12F683の設定内部クロック周波数と実際にオシロで測定した周波数の関係、31KHz以外の各内部クロック周波数はかなり正確であることが分かる。
Table 1 shows the relationship between Required Frequency and
Measured Frequency at GP4 of 12F683. Note that each measured frequency at GP4
is 1/4 of its required frequency, as mentioned in Microchip 12F683 data sheet,
so to obtained its actual frequency you need to multiply the measured frequency
by 4.
設定したい周波数 Required
Frequency (A) |
OSCCON値 Value to be set |
GP4での測定値(B) Measured Frequency at GP4 |
(B)X4=(C) 実際の測定値 Actual
Frequency |
精度Accuracy =(((A)-(C))/A)X100 % |
8MHz |
%01110101 |
2.0MHz |
8.0MHz |
高いHigh |
4MHz |
%01100101 |
998.1kHz |
3,992kHz=4MHz |
高いHigh |
2MHz |
%01010101 |
499.2kHz |
1,996kHz=2MHz |
高いHigh |
1MHz |
%01000101 |
249.5kHz |
998kHz=1MHz |
高いHigh |
500kHz |
%00110101 |
124.8kHz |
499.kHz=500kHz |
高いHigh |
250kHz |
%00100101 |
62.39kHz |
249.6kHz=250kHz |
高いHigh |
125kHz |
%00010101 |
31.21kHz |
124..8kHz=125kHz |
高いHigh |
31kHz |
%00000011 |
7.09kHz |
28.36kHz |
8.5%ずれError |
測定に使った回路図
オシロPicoScope 2105でGP4の出力を測定しているところ。
31kHzをオシロで測定した例、見難いが画面の上下の小さい細長い画面に波長測定結果と周波数が表示されている。
This is
an output waveform example when 31kHz was set in OSCCON, which is clean and quite
periodical. Its wavelength was measured 140.5uS with a frequency of 7.12kHz
((1/140uS) (X4=28.47 kHz).
Photo 3
8MHzの時の出力、波長の幅が狭いので帯状に見える。31kHzのそれの258倍(8MHz/31kHz)も波長が短い。
Photo 4
上の8MHzの波形を拡大したもの、周波数が大きくなっても波形が31kHzとほぼ変わらないことが分かる。
If the
above 8MHz waveform is enlarged, the following waveform appears, which. is
quite similar to that of 31kHz waveform in Photo 2.
プログラム Program
以下の簡単なプログラムで、OSCCONレジスタで設定した周波数の4分の1の出力が12F683のピン3(GP4)に出る。ただ、Configurationの設定でOscillator
を INTOSC Clockoutとする必要がある。
The
simple three statements as shown below can produce the frequency result at GP4
of 12F683. The OSCCON register setting decides the output frequency values.
Also, important to select INTOSC Clockout in configuration setting.
'****************************************************************
'Test program to produce Internal 31kHz - 8MHz clock rates
'12F683SignalGener.pbp
'12F683 and PicBasic Pro 3.1 used
'*********************Program*****************************************
TRISIO=%001000
CMCON0=7 'No use of comparator
OSCCON=%01110101 'This setting produces internal 8MHz clock rate.
'******************************* *****************************:
'Note:
'melabs U2 Programmer's configurations for 12F683:
'Oscillator - INTOSC Clockout, WDTE - Disable, PWRTE - Disable, MCLR - Reset,
'BODEN - Disable, IXSO - Enable, FSCM - Enable, CD - Disable, CDP – Disable
PICへの書き込みConfiguration設定時、Oscillator - INTOSC Clockout とする必要がある。
Oscillator needs to be set as INTOSC Clockout in configuration setting
so that the clock output data can be obtained at GP4.
コメント Comments
1)
実験の結果、31kHzの周波数出力が設定周波数と10%弱のずれが発生するが、他の7個の周波数は大変正確に出力されていることが分かった。
2)
12F683のピン3(GP4)での出力周波数が、設定周波数の4分の1であることが分かった(Microchip Technology社の12F683英文データシートに記載、Page
23の右側3.51項の中に記述がある)。
3)
PICマイクロコントローラーの電流消費は、動作周波数が低いほど、更に、動作電源の電圧が低いほど下がることが知られている。例えば、8MHzと31kHz
を比較すると、電源5Vで50%位、3Vで90%位、31kHzの方の電流消費が低くなるという報告もある。実際に、前の電子工作115のプロジェクトで、3Vの電池を電源に用いた時、内部クロック31kHzと4MHz動作の比較で、前者の電流消費が後者の約10分の1だった。