2023.7.10
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第50回]



●LCDIF(2)

思い違いやらプログラムのバグのせいなどでまた週末の2日を思いっきり悩んで過ごすことになってしまいました。
やっとクリアできてほっと一息ついたところです。

前回の説明に訂正があります。
PIC18F14K50の場合、LCDIFを接続するためのI/OポートとしてはRA0、RA1、RB4、RB6は使えませんと書きましたが思い違い、記憶違いがありました。
PIC18F14K50ではRA0、RA1はUSBのD+、D−と端子を共用していますからUSB接続時はもちろんRA0、RA1はI/Oポートとして使えません。
PICBSコンパイラのシステムではUSB接続はUSBIFボードに任せてしまうためターゲットボードとしてのPIC18F14K50はRA0、RA1はI/Oポートとして使えるはず、と思ったのですがそこに誤認がありました。
よくよく確認してみましたらPIC18F14K50ではRA0とRA1はI/Oポートとして使う場合「入力」のみで「出力」の機能はないことがわかりました。
RB4、RB6は普通にI/Oとして使えるのですがそこのところもプログラムのバグなのか何なのかどうしてもまともな出力が得られないという状況に陥ってしまいました。
そこでPIC18F14K50の代わりにPIC18F14K22を使うことにしました。
PIC18F14K22はざっくり言うとPIC18F14K50からUSBIFの機能を外したPICという位置づけなので今回の用途にはむしろPIC18F14K50を使うよりもぴったり目的に合っています。
PIC18F14K22はUSBのための機能がありませんからRA0、RA1は普通に入出力両用のI/Oポートとして使うことができます。
ひょっとすると前回の回路図をご覧になってお気付きになられたかもしれません。
前回の回路図では下側のLCDIF用コネクタがついているほうのPICターゲットボードは「PIC18F14K22」になっていてRA0、RA1をLCDIF用コネクタに配線しています(上に書いた理由でPIC18F14K50ではこの配線はできません)。

参考までに、PIC18F14K22のdatasheetです。

[出典]Microchip TechnologyInc. PIC18F14K22 Datasheet


[出典]Microchip TechnologyInc. PIC18F14K22 Datasheet

そういういきさつだったのですがPIC18F14K50はずっと以前からND80Z3.5などのマイコンボードでUSBIFとして使っています。
I/Oが足りない中を工夫して目一杯使っていることを思い出してあらためてND80Z3.5の回路図を確認してみましたら。
RB4もRB6も普通にI/O端子として使っているじゃありませんか。
まるでキツネに化かされたような思いです。
さてはまた悪霊の仕業か。

あらためて動作確認をしてみましたらあれだけ難儀してもどうしても出力できなかったRA4、RA6が普通にI/Oとして使えてしまいました。
あれは一体なんだったのでしょう?
ま。
とにかくそういうことならば。
RA0、RA1を使う配線ではPIC18F14K22は使えますがPIC18F14K50は使うことはできません。
RB4、RB6を使うならばどちらのPICも使うことができます。
PIC18F14K22を使うことにした今となってはこの回路にPIC18F14K50を使うメリットは全くないのですけれど。
できるだけ多くのPICが使えるほうが望ましいと思いますから前回の回路を変更してRB4、RB6をLCDIF用に使うことにしました。

そのように変更した回路図です。


PICBASICコンパイラ[第50回]
2023.7.10upload

前へ
次へ
ホームページトップへ戻る