2020/11/07

PIC16F1系列(16F18326)はまりどころ

久しぶりにPICで工作をしています。

色々ネットを見ていると、最近(でもないか)は16F84Aとかではなくて16F1系列というのが良さそうなので、秋月で購入。同時にI2Cの液晶モジュールも購入してみました。
あと、もうPickkit2は流石に古すぎるようなので、MPLAB snapやPickkit4と悩みつつ、アマゾンでPickiit3の中華版(いわゆるジェネリックPickit3)を購入しました。
MPLAB snapやPickkit4は、純正の後継品ですが、古いチップに対応していないので(AVRとかには対応してますが)、色々使い勝手を考えた結果Pickit3に落ち着きました。
ジェネリック品なのでとにかく安いですし。

16F1系列は、とにかくメモリが大きいのが良いですね。

ハマりどころの備忘録。
  • ペリフェラルを使うときは PMD レジスタも有効にするのを忘れない。
    Timer1を使おうとして、いくらT1CONやTMR1H/Lに値を書いてもゼロのままで焦ってしまいました。
  • ペリフェラルピンセレクト(PPS)は、デフォルトでは未設定されていない。
    I2C(MSSP1)を使うときは、たとえRC0/RC1(MSSP1のデフォルト)を使う場合であっても、自分で設定しないとだめ。
    これでハマって(しかも最初に一度PPSを設定してみたのですが設定を間違えていて気づかなかったという)、いくらSENを立ててもうんともすんとも言わずで、液晶の初期不良なのかMSSPとの相性なのかと色々疑い始めてしまいました。
    オシロとにらめっこしつつ「MSSPを使わない素のI2C実装」をでっち上げてみたのですが、それだとちゃんと液晶に表示が出るというオチ。
    液晶は生きてるじゃん、ということになって改めてPPSを正しく設定したら、、、MSSPでちゃんと動きました。やれやれ。

0 件のコメント: