PIC1823のクロック出力を見る
●PIC16F1823のクロック出力
内部動作クロックを4MHz(工場で±1%に校正済み)に設定しCLKOUTピンから出力します。ただし、データシートには”実際出力されるのはFOSCの1/4の周波数”とあり、1MHzが出力されるはずです。また、CLKOUTENは優先度が高くONに設定すると問答無用でクロックを出力します
6.3.2 CLKOUT FUNCTION
The CLKOUT function has a higher priority than the reference clock module. Therefore, if the CLKOUT function is enabled by the CLKOUTEN bit in Configuration Word 1, FOSC/4 will always be output on the port pin.
●プログラム
#include <xc.h>
// CONFIG1
#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = ON
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = OFF
#pragma config CLKOUTEN = ON
#pragma config IESO = ON
#pragma config FCMEN = ON
// CONFIG2
#pragma config WRT = OFF
#pragma config PLLEN = ON
#pragma config STVREN = ON
#pragma config BORV = LO
#pragma config LVP = OFF
void main(void) {
// Oscillator Control Register
// SPLLEN (0) : 4x PLL is disable.
// IRCF (1101): Internal oscillator frequency [4MHz HF]
// uninplemented (0) : Read as '0'
// SCS (11) : System clock select [Internal oscillator block]
OSCCON = 0b01101011;
TRISC = 0b11101111;
while(1);
return;
}
OSCCON
マイコンのオシレータをコントロールするレジスタを設定しています
内蔵オシレータを4MHzに設定しています
8MHzに限り4倍のPLLを使用でき最大32MHzで使用できるようです
●CLKOUTの出力波形
1.001MHzとでました
0.99MHz ~ 1.01MHzの間に収まれば仕様上OKなのでいい感じですね
マイコンが自分の狙った周波数で動いてることが確認できました
8MHz, 16MHzと変更すればちゃんと変わりますが、ジッタが目立ち始めました
さーて、ラーメンでも食ってくるか