先ず、基礎実験として18F2550では稼働しなかった電源電圧3.3Vで18LF2550がちゃんと稼働するのかどうかの実験です。
さて、問題はまだ色々あります。この18LF2550は電源電圧2.0Vから稼働しますが、電圧によって使用できる内部クロックの上限の周波数が変化するのです。
秋月さんの参考回路図では、外部に8.0MHzの水晶を使って駆動しているので、USBと通信可能な18LF系のPICのクロック設定は、データシートから見ると16MHzぐらいかなぁ・・8MHzを2で割って4MHzを内部のPLLシンセヘ渡して96MHzを作って、それを6で割って16MHzをCPUのクロック周波数にすれば良いかな?
(28-2図参照)
MPLAB IDE 上のアセンブラーで
CONFIG PLLDIV = 2
CONFIG CPUDIV = OSC4_PLL6
CONFIG FOSC = HSPLL_HS
これで、外部の8MHzの発振をUSB系チップの固有の内部の4MHz入力固定のPLLシンセに渡す為に1/2し、PLLにて96MHzになります。それをUSBと内部CPU用に使うのですが、CPUは最大で48MHz。今回は外部電源電圧の関係で動作可能なCPUのクロックは20MHz付近!分周は1/2,1/3,1/4,1/6のどれかなので、1/6を選んで16MHzを選びました。
ビルド・・OK!秋月のPICライターヘ読み込み完了!PIC書き込み完了!
3.3V電源でLED1個の点滅プログラムが見事動きました!やれやれ!
この18LF2550のスペックからすれば当然の話ですが、MPLAB IDE で18LF2550をアセンブル出来るかどうか?そして、秋月のPIC ライターで18F2550の設定で18LF2550が書き込めるか等、いろいろ不明な要素は有ったのですが、チップの電源動作範囲が異なるというだけで特に何もFとLFで差がない様ですね・・
さーて、18LF2550でバックライト付き液晶ディスプレーをちゃんと駆動しながら気圧センサーチップとSPIで通信して、RS232Cで外部へデーターを送り出せる様になるのはいつの日になる事やら・・
|
このプログラムで、問題なく点滅できるのが、実はこのままではConfigが甘い事が後になって解った。
; Oscillator Selection:
CONFIG PLLDIV = 2 ;4MHz = 8MHz / 2
CONFIG CPUDIV = OSC4_PLL6 ;16MHz = 96MHz/ 6
CONFIG FOSC = HSPLL_HS
CONFIG WDT = OFF
CONFIG PWRT = ON
CONFIG MCLRE = ON
CONFIG LVP = OFF
CONFIG PBADEN = OFF
ここまで明記しておけば Port_B を汎用のデジタルI/Oポートとして全ビットを安心して使えます。 |