PICで気圧計 by 18LF2550 基礎実験 その1


電子パーツの老舗「秋月電子通商」から久々の気圧センサーユニット

AE-SCP1000-D01
とをパレットソフトさんの参考回路図と公開ソフトウエアで駆動してうまく行った事は、その15、その16で紹介した通りです。

元は、秋月さんの参考回路図では18LF2550を使用しなければ決して動かない事を、18F2550の基礎実験の段階で
自ら実証してしまった私は、困り果てた末にパレットソフトさんのおかげでこの気圧センサーを使う事が出来きる様になった訳です。

でも、せっかく買ったバックライト付きの液晶表示器が無駄になってしまうし・・、こうなったら意地でもこの18LF2550を海外から調達して、その参考回路図の通り動かしてやろうと決心したのでした。(ま、要するに暇つぶしなのですが・・)

しかし、これまた私にはよく分からない秋月さんの参考C言語リスト・・ま、18F2550用のアセンブラーレベルのSPI通信ソースリストも入手したので・・どうにかなるかなぁ?

1週間程前に、MicroChip Direct へ18LF2550を直接発注し、送料含めて5個で約5,000円!チップは1個450円位なのですが送料が高く付いてしまうんですね・・大量に買わないと高く付きます!

タイから直接FedExで発送されて2日で届くのですが、発送されるまでが長い!結局1週間かかってしまいました。

梱包は丁寧で外装の袋はボロボロになっていましたが、強靭な素材で破れる事も無く、中もしっかりした箱に入れられて、当然の静電気防止袋入りの静電気防止レール入りでした。

海外から直接購入した事が今まで無かったので、我が家の異常に長い住所を全てローマ字記入した事が後で心配になり、FedExの配送追跡サービスで日本の税関通を確認の後に、FedExの日本のオペレーターに宛先が省略されずに正しく記入されているか否かを問い合わせたら、オペレータが届け先を全て読み上げてくれて大変安心しました。
結果、当然の様にしっかり届きました。めでたし、めでたし!











注)この写真では Port_Bの RB0 で実験しています。下の参考プログラムと、ハード回路図は、Port_B の RB7 で実験しています。間違えない様にして下さい。


先ず、基礎実験として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ポートとして全ビットを安心して使えます。


注意事項
General disclaimer
トッ プページへ

なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで