PIC12F629 入門 NO.2 (外部発振回路で動かす)

[Previous] [Next] [Index]


セラミックレゾネータをつないで 6MHz、10MHz、20MHz の発振を確認
 PIC12F629 は 外部発振回路の接続で 20MHz まで動作することを左の回路を使って確認してみた。MPLAB IDE シミュレータの Stopwatch で LED の ON/OFF の周期をぴったり 1 秒になるようにプログラムして、それぞれのセラミックレゾネータできちんとクロックが動作しているかを確認した。ついでにそれぞれの発信周波数での最低動作電圧も確認してみた。

発信周波数 データシート電圧 実測電圧
6MHz 3.0V 2.1V
10MHz 3.0V 2.3V
20MHz 4.5V 2.93V

 以上は手持ちの一つの個体での実測値である。データシートに記載されている電圧より低い電圧まで動作することが確認できた。最高周波数でドライブしても充電式のリチウム電池 1 セルの末期電圧 3V までは確実に動作する。

 外部発振回路で使うには CONFIGURATION BIT の設定を変更すればいい。内部発振の時に指定した _INTRC_OSC_NOCLKOUT を _HS_OSC とする。この設定で 6MHz 、10MHz 、20MHz の各セラミックレゾネータで正常に発振した。内部発振回路の時に問題となった OSCCAL Value は外部発振回路を使う場合無視してかまわない。

__CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC

CPD Data Code Protection
CP Code Protection
BODEN Broun-out Detect Enable
MCLRE Master Clear Enable
PWRTE Power-up Timer Enable
WDT Watchdog Timer
HS High speed crystal/resonator

テストした 10MHz レゾネータ使用プログラム(テキスト形式)

 Li-Ion 電池 1 セル(3.98V)時の PIC の消費電流は 20MHz の時で約 2mA 、 10MHz の時で約 1mA となった。

 最低動作電圧の確認のため、電源装置の電圧を徐々に下げていって発光ダイオードが点滅しなくなったら徐々に電圧を上げて発光ダイオードが点滅し始める電圧を最低動作電圧としたが、何度か電圧を上げたり下げたりを繰り返した。その後電流計を入れて Li-Ion 電池をつないだところ、フルスケール 50mA の電流計が振り切れてしまった。 LED はきちんと点滅しているが、いくら何でも消費電流が多すぎる。 LED を外してみたが 50mA の電流計は振り切れたまま。そこで新しい PIC12F629 同じプログラムを書き込んで試したところ上記消費電流となった。動作ぎりぎりの電圧を行き来するテストは控えた方が良さそうだ。

 外部発振回路を使って高い周波数で動作するのはいろいろな場面で有利になると考えられる。しかしその代償として二つの I/O ポートが使えなくなってしまう。果たしてどのような場面でこの特徴を生かすことができるだろうか。


[Previous] [Next] [Index]
2003/08/06