電子工作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.

 

Table 1

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

 

 

Fig. 1

測定に使った回路図

Layout for measuring the clockout at GP4 by PicoScope 2105

 

 

Photo 1

オシロPicoScope 2105でGP4の出力を測定しているところ

Measuring the frequency at GP4 (Pin 3) of 12F683

 

 

Photo 2

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)も波長が短い

8MHz waveform captured by Oscilloscope

 

 

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

 

Photo 5

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だった

 

1)      It was confirmed that 7 internal clocks (125kHz – 8MHz) were functioning quite accurately, but 31kHz internal clock was slightly slower than the set value.

 

Menu Pageへ戻る     (Return to Menu Page)

Top of Pageへ戻る    (Return to Top of Page)