Raspberry Pi Pico(750円)で4.096MHz
先日、Raspberry Pi Picoを使って4.096MHzを発振する、という記事を読んだ。「700円以上の40pinマイコンでクロックジェネレータだけとかもったいなくね?(そういうことではない)」という印象だったので、8pinで160円(時価)のPICでやってみた。
pragma_config.h
コンフィグレーションワード1はこれ。
// CONFIG1
#pragma config FEXTOSC = OFF
#pragma config RSTOSC = HFINT1
#pragma config CLKOUTEN = ON
#pragma config CSWEN = ON
#pragma config FCMEN = OFF
外部クロック(FEXTOSC)無効、内部クロック有効、クロック出力有効、CSWENをONにする。これだけだと1MHz駆動だが、mainルーチンで調整する。
main.c
OSCFRQに「0110」を設定すると16MHz駆動にできる。CLKOUTから約4MHzが出るので、これをOSCTUNEで調整した。高精度で測定できる計測器が無いので冒頭のオシロ画面でしか確認できないが、良いとこまで行っているのではないか。
#include <xc.h>
#include "pragma_config.h"
void main(void) {
OSCFRQbits.HFFRQ=0b0110; // 16MHz from 1MHz
OSCCON1bits.NOSC=0b110; // HFINT1 1MHz
OSCCON1bits.NDIV=0b000; // No Prescaler
OSCTUNEbits.HFTUN=0b010100; // Tune to 4.096 MHz
while(1) {__nop();}
}
実際は普通に4.096MHz発振器を買えばいいとかごもっともなんだけど、実用ではなく「今は手元にないけど暫定的に他で代用しようかな」という時には役にたつ。少なくとも555で苦労するより、さっくりPICだけで出来上がる。すごい(自画自賛)。
投稿者の人気記事
-
akira.kei
さんが
2025/02/01
に
編集
をしました。
(メッセージ: 初版)
-
akira.kei
さんが
2025/02/01
に
編集
をしました。
-
akira.kei
さんが
2025/02/01
に
編集
をしました。
-
akira.kei
さんが
2025/02/02
に
編集
をしました。
ログインしてコメントを投稿する