akira.keiのアイコン画像
akira.kei 2025年02月01日作成 (2025年02月02日更新) © GPL-3.0+
セットアップや使用方法 セットアップや使用方法 閲覧数 132
akira.kei 2025年02月01日作成 (2025年02月02日更新) © GPL-3.0+ セットアップや使用方法 セットアップや使用方法 閲覧数 132

8ピンPICのPIC16F18313を使う(その8)まだまだオシレータ

<前の記事 : 次の記事>

Raspberry Pi Pico(750円)で4.096MHz

先日、Raspberry Pi Picoを使って4.096MHzを発振する、という記事を読んだ。「700円以上の40pinマイコンでクロックジェネレータだけとかもったいなくね?(そういうことではない)」という印象だったので、8pinで160円(時価)のPICでやってみた。
4.0953MHz

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のアイコン画像
機械系エンジニアだが電子工作を趣味としている。週末はひとりバーベキュー。
ログインしてコメントを投稿する