前回、長らく眠っていたPICkit2がWindows11で復活。いざ活用と思った矢先、PICkit2のターゲットボード搭載のマイコンPIC16F690はMCC非対応という事実が突き付けられました。MCC無はメンドイ。なんとかならんものか?一瞬で光明が見えました。マイコンを交換したらいいんじゃね、PIC16F1xxxに。
※「鳥なき里のマイコン屋」投稿順Indexはこちら
PIC16F690とPIC16F1829
古い Low Pin Count Demo Board に搭載されていたマイコンは以下のものでした。
PIC16シリーズではありますが、MPLAB X IDE上でMCC(MPLAB Code Configurator)の使える PIC16F1xxx ではなかったです。まあ地道にコードを積み上げていけば問題なくプログラムを作れそうですが、一端MCCの自動生成のお楽さを見てしまうとMCC無は辛いっす。
しかし、MicroChip社のPICマイコン、特に小ピンの奴らは
端子互換性が非常に高い
という特徴をもっています。マイコンの中身は異なるのでその特有な機能はデバイス毎に異なりますが、電源、グランド、Flashプログラミング等の共通端子はほぼほぼ完全互換。差し替えればそのままいける筈。そういうことなのかどうなのか、半分無意識的にPIC16F690と同様な20ピンDIPパッケージの以下のマイコンも仕入れてあったのです。
2つのデータシートからピン配部分を引用させていただきます。こんな感じ。
一緒じゃん。
さっそくデモボードからPIC16F690を外し、PIC16F1829に差し替えました。
PICkit2に接続したところが以下に。なお、先達のお教えに従い、PK2DeviceFile.datは「最新(といってもかなり古いケド)」に更新済であります。ちゃんとPIC16F1829と認識されております。
MPLAB X IDEでMCC使ってLチカ作成
さてPIC16F1829はMCCでの自動コード生成対象のマイコンです。デモボードではRC0/1/2/3にLEDが取り付けられているので、とりあえずRC0をGPIO出力に設定したところが以下に。GPIOだけ設定してコードを生成してみました。
そして、main.cの中にRC0を使ったLチカのコードを書き入れました。こんな感じ。
PICkit2経由でPIC16F1829に書き込み
上記で生成されたHEXファイルをPICkit 2 Programmerで読み込み、PIC16F1829に書き込んでみました。
書き込み成功。
VDD PICkit 2 の Onにチェック入れれば、書き込んだプログラムが走ってLチカします。こんな感じ。
あれあれ、Lチカの周期が妙に速いんでないかい。そういえば、GPIOの設定だけで、クロックとかの設定一切してなかった。それでもMCC生成ソースで動作はすると。