「PIC16F1827 + SC1602B」でPLLを使って8MHz x 4 = 32MHzにしようとしたが出来なかった。
考えてみたら、今までは全部8MHzで動かしていたので、32MHzって1度も使ったことがなかったのだった。
で、改めてデータシートを読むと、わざわざ「5.2.2.6 32 MHz Internal Oscillator Frequency Selection」というセクションがあって、「The following settings are required to use the 32 MHz internal clock source:」と書いてある。
何だか、特別の事でもしなけりゃ32MHzにはできないのだろうか。
1.Configuration BitsのFOSCはINTOSCに
2.OSCCON RegisterのSCSはゼロに
3.OSCCON Registerのは0b1110にして8MHzに
4.OSCCON RegisterのSPLLENを1にするか、Configuration BitsのPLLENをONに
4つのうち3つは良かったが、2.のSCSの設定が間違っていた。
SCSの説明では、以下のようになっていて、
1xなら内蔵のオシレータを、00ならConfiguration Bitsで指定したものを使うと読めるので、どちらでも内蔵のオシレータを使うからいいのかと思っていたが、00にしないとダメだということだ。
事実、11になっていたのを00にしたらちゃんと32MHzで動いているようだ。