編集履歴一覧に戻る
akira.keiのアイコン画像

akira.kei が 2025年01月25日20時10分59秒 に編集

コメント無し

本文の変更

+

[次の記事 >](https://elchika.com/article/4f28d674-fd28-4db3-a8c2-7308a419d701/)

## 8pin PICと言えば これまで8pin PICといえばずっと[PIC12F1822](https://akizukidenshi.com/catalog/g/g104557/)を使ってきた。 ![PIC12F1822](https://camo.elchika.com/86b98ccbda01e355985b0ea6ba9529a118359bb6/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f65336436303234642d353865662d343934652d393765342d623737393536356165313636/) 今のお値段は二百円だ。高くなってきたが[Raspberry Pi PICO](https://akizukidenshi.com/catalog/g/g116132/)に比べたらまだまだ安い。でもPickit4が買えなくなって[Pickit5](https://akizukidenshi.com/catalog/g/g118150/)が1万8千円近くすることを考えると、PICを使い始めるハードルがずいぶん高くなった印象だ。 ただ何かの中に組み込んだりするには千円弱のPICOやXIAOはちょっと使いにくいので、まだまだPICの出番は多いはず。まぁ今は[40円のRISC-V](https://akizukidenshi.com/catalog/g/g118062/) に駆逐されそうなんだけど。。。 ## 8pinのPIC16F 8pinのPIC16Fシリーズでは、150円の[PIC16F15313](https://akizukidenshi.com/catalog/g/g130016/)と160円の[PIC16F18313](https://akizukidenshi.com/catalog/g/g110889/)が秋月電子で買える。機能の差異はほとんどないので、今回は数字が大きい(15<18)し、これまで使ってたPIC12F1822と名前が近いPIC16F18313を選んでみた。 ![キャプションを入力できます](https://camo.elchika.com/ee19c7d718de6b120f447f88a3401e82f50fd474/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f39356537356239322d613330392d346136632d613063382d313734366131353736663035/) ![キャプションを入力できます](https://camo.elchika.com/5dd3a0d393a9c1bfa9e415638ab5b65e1ded55ec/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f38303862663535652d666339382d343563652d393430372d396435376365313037346261/) ## PIC12F1822のオシレータブロック これまでのPIC12F1822 のオシレータブロックはこんな感じだ。 ![PIC12F1822](https://camo.elchika.com/0bff6cba2559fc1350c79a971fbb85d72f30cd29/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f61656436316232612d396231622d346435362d393739662d343633336435333238613565/) 内部オシレータを使う場合、CONFIGレジスタ「#pragma config」で内部オシレータ(INTOSC)とPLLの有無(PLLEN)を選び、OSCCONレジスタでMUXを指定すると32M/16M/8M/4M/2M/1M/500k/250k/125k/62.5k/31.25kの11種類のシステムクロックが選べる(動作はこの1/4)。 ブロック図を見ると速い方の内部オシレータは500kでこれをPLLで32倍の16Mにしてさらに半分の8Mに落としてから4倍PLLに入れて32Mを得ている。複雑すぎ〜w ## PIC16F18313のオシレータブロック 一方のPIC16F18313の方は、やはり桁が増えた(1822→18313)おかげで中身がだいぶ変わっている。 ![PIC16F18313](https://camo.elchika.com/be274adeaa3db5c4763d30993372e4097a23e548/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f37643332643965362d663439352d346435382d616633352d323130313064646338646464/) PIC16F18313の内部オシレータを使う場合、Config Word(#pragma config)で32M(HFINT32)、1M(HFINT1)または31k(LFINT)を選ぶ。OSCCONレジスタを設定したい場合はConfig Word中のCSWENをONにしないといけないので、基本的にOSCCONレジスタは設定しないようになってるようだ。 32MHz駆動の場合はCONFIG1を以下のようにすれば、mainに来た時にはもう32MHzになっている。 ``` // CONFIG1 #pragma config FEXTOSC = OFF #pragma config RSTOSC = HFINT32 #pragma config CLKOUTEN = ON #pragma config CSWEN = OFF #pragma config FCMEN = OFF ``` 1MHz駆動ならHFINT32ではなくHFINT1、31kHz駆動ならLFINTにすればいい。OSCCONで再設定したければCSWENをONにしてPostscalerをOSCCON1bits.NDIVで切り替える。入力が3種、分周設定が10種あるので、多彩な動作クロックが得られるがここまで必要なのか。。。31k入力512分周でCLKOUT端子から15Hzが出る。おっそw ![LFINT31k/512/4=15Hz](https://camo.elchika.com/31870abd8f94cf0acc58bc2be2ff8ddc35ae982d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f32626435333461312d383333362d346334622d383662302d326261373331353561633062/) ## まとめ - 8pin PICはPIC12F1822(200円)より新しいPIC16F15313(150円)やPIC16F18313 (160円)の方が安いが機能面ではそれほど大きな差がない。 - よく使ってたPIC12F1822と新しいPIC16F18313はオシレータブロックの設計がまるで違うので、内部オシレータの指定方法を再確認した。 - PIC16F18313のオシレータ設定は多彩だが、ほとんど使わないのではないかという印象。32MHzと1MHzの2択で十分か。