PICマイコンと開発ツール
PICマイコン
私はPICマイコン、その中でも8bitエンハンストミッドレンジという分類のPICマイコンをよく使っています。
型番でいうとPIC16F1xxxxなどです。選択理由は以下の通り。
1. 安価 (例:PIC16F18325は1個120円@秋月電子通商2022/5)
2.工作に便利な内蔵機能が豊富(入出力の切替、タイマー、A/D、D/A、PWM、I2C/SPI...)で各機能をどのピン に割り当てるかも自由度が高い。
3. 種類が豊富でピン数や内蔵機能、メモリ容量、低電圧/ローパワーなどいろいろ選べる。
4. はんだ付けしやすいDIPパッケージがある。必要なら小さいフラットパッケージも選べる。
5.フリーの開発環境でC言語で楽にハードウェア制御のプログラミングが可能
型番でいうとPIC16F1xxxxなどです。選択理由は以下の通り。
1. 安価 (例:PIC16F18325は1個120円@秋月電子通商2022/5)
2.工作に便利な内蔵機能が豊富(入出力の切替、タイマー、A/D、D/A、PWM、I2C/SPI...)で各機能をどのピン に割り当てるかも自由度が高い。
3. 種類が豊富でピン数や内蔵機能、メモリ容量、低電圧/ローパワーなどいろいろ選べる。
4. はんだ付けしやすいDIPパッケージがある。必要なら小さいフラットパッケージも選べる。
5.フリーの開発環境でC言語で楽にハードウェア制御のプログラミングが可能
スイッチやセンサーから信号を入力してLEDを光らせたり、モーターを制御したりするのにはピッタリです。
シリアルインターフェイス(I2C)を使えばLCD文字ディスプレイに文字を表示することもできます。 簡単な波形なら音だって出せますし。
プログラミングをするには少々お勉強と慣れが必要ですが、思うように動いた時はドーパミン?が出まくります。
プログラム(HEXファイル)書き込みソフト
すでにコンパイル&リンクしたプログラム(*.HEX)がある場合はMicrochip社から提供されているMPLAB X IPEを使います。
このソフトは下記の統合開発環境 MPLAB X IDEをインストールすると一緒にインストールできます。
HEXファイルをPICに書き込むには基板に電源を供給し、MPLAB SNAP等のPIC書込みツールをPCと基板に接続します。
MPLAB X IPEを起動してチップの型番とダウンロードしたHEXファイルをドラッグ&ドロップで指定しconnectボタンを押します。
もし下記のようにHold in Reset modeになっていたらRelease from Reset modeに変更してから
programボタンを押して書き込みます。
このソフトは下記の統合開発環境 MPLAB X IDEをインストールすると一緒にインストールできます。
HEXファイルをPICに書き込むには基板に電源を供給し、MPLAB SNAP等のPIC書込みツールをPCと基板に接続します。
MPLAB X IPEを起動してチップの型番とダウンロードしたHEXファイルをドラッグ&ドロップで指定しconnectボタンを押します。
もし下記のようにHold in Reset modeになっていたらRelease from Reset modeに変更してから
programボタンを押して書き込みます。
【!!!! Hold in Reset mode に注意!!!!】(2024/04/01追記)
最近MPLAB X IPEを使ってPICプログラムを書き込んだところ、PICマイコンが動作しなくなりました。
よく見ると、書き込んだあとにIPEのoutputを表示するウインドウに
*** Hold in Reset mode is enabled ***
と表示され、試しにVerifyをかけると用意した*.hexと一部異なるデータが書き込まれていました。
使用したIPEのバージョンは v6.15 でした。
IPEのバージョンアップでIPE起動時のデフォルト設定が変わったのではないかと思われます。
検索して調べたところ、左上の[settings]をクリックして表示されるウインドウで Release from Reset をクリックして選択するとOKになりました。
なおこの設定はIPE起動時に毎回する必要があるようです。...
よく見ると、書き込んだあとにIPEのoutputを表示するウインドウに
*** Hold in Reset mode is enabled ***
と表示され、試しにVerifyをかけると用意した*.hexと一部異なるデータが書き込まれていました。
使用したIPEのバージョンは v6.15 でした。
IPEのバージョンアップでIPE起動時のデフォルト設定が変わったのではないかと思われます。
検索して調べたところ、左上の[settings]をクリックして表示されるウインドウで Release from Reset をクリックして選択するとOKになりました。
なおこの設定はIPE起動時に毎回する必要があるようです。...
ソフト開発環境MPLAB X IDE
プログラム開発するためのフリーの統合開発環境 MPLAB X IDEがMicrochip社から提供されています。
インストールや使い方についてはググるといろいろ出てきます。
マイクロチップ・テクノロジー・ジャパン株式会社の日本語資料検索ページで「IDE」を検索するとユーザーマニュアルや 英語版で日本語字幕付きのyoutube解説動画「MPLAB® X IDEとMPLAB Code Configuratorを使ってPIC®およびAVR® MCUの応用設計を始める方法」などがあります。
他には 丸文株式会社さんの ホーム-->テクニカルスクエア-->マイコン-->できるMPLAB® X IDE [インストール編]
などが大変参考になると思います。
なお、Cコンパイラは8bit用以外にも16bitや32bit用がありますが、全部入れると大量のデータがインストールされて頻繁にアップデートの表示がでるようになります。
ですので使うものだけインストール時にチェックマークを入れると良いでしょう。
この開発環境のCコンパイラに加えて、Code Configuratorという各種設定が楽ちんにできるお助け機能が使えると非常に快適なのですが、古い型番のPIC 8bitマイコンには対応していないので注意が必要です。
対応しているかどうかは新規プロジェクトを作成し、型番を入れてCode Configuratorを起動してみればわかります。
大まかなプログラム開発手順は次の通り。
新規プロジェクト(Standalone project)を作成し、プロジェクト名やPICの型番等を設定します。次にCode Configuratorを起動します。
Code ConfiguratorのGUI表示上でクロックやI/Oピン、使用する機能ブロックを選択してからGenerateのボタンを押すと、なんということでしょう、初期設定や機能ブロックにアクセスするサブルーチンに加えてメインルーチン(main.c)のひな型まで自動生成してくれます。
あとは雛型のmain.c(割り込み処理を使う場合はinterrupt_manager.cも)にやりたい処理を追記し、トンカチアイコンを押してコンパイルに成功したら下記のプログラムツールとPICマイコンをつないでダウンロードボタン(下向き矢印)を押せばプログラム書込み完了です。
インストールや使い方についてはググるといろいろ出てきます。
マイクロチップ・テクノロジー・ジャパン株式会社の日本語資料検索ページで「IDE」を検索するとユーザーマニュアルや 英語版で日本語字幕付きのyoutube解説動画「MPLAB® X IDEとMPLAB Code Configuratorを使ってPIC®およびAVR® MCUの応用設計を始める方法」などがあります。
他には 丸文株式会社さんの ホーム-->テクニカルスクエア-->マイコン-->できるMPLAB® X IDE [インストール編]
などが大変参考になると思います。
なお、Cコンパイラは8bit用以外にも16bitや32bit用がありますが、全部入れると大量のデータがインストールされて頻繁にアップデートの表示がでるようになります。
ですので使うものだけインストール時にチェックマークを入れると良いでしょう。
この開発環境のCコンパイラに加えて、Code Configuratorという各種設定が楽ちんにできるお助け機能が使えると非常に快適なのですが、古い型番のPIC 8bitマイコンには対応していないので注意が必要です。
対応しているかどうかは新規プロジェクトを作成し、型番を入れてCode Configuratorを起動してみればわかります。
大まかなプログラム開発手順は次の通り。
新規プロジェクト(Standalone project)を作成し、プロジェクト名やPICの型番等を設定します。次にCode Configuratorを起動します。
Code ConfiguratorのGUI表示上でクロックやI/Oピン、使用する機能ブロックを選択してからGenerateのボタンを押すと、なんということでしょう、初期設定や機能ブロックにアクセスするサブルーチンに加えてメインルーチン(main.c)のひな型まで自動生成してくれます。
あとは雛型のmain.c(割り込み処理を使う場合はinterrupt_manager.cも)にやりたい処理を追記し、トンカチアイコンを押してコンパイルに成功したら下記のプログラムツールとPICマイコンをつないでダウンロードボタン(下向き矢印)を押せばプログラム書込み完了です。
プログラム書込みツール
私はずっとPICKit3という書込みツールを使ってきましたが、今はもう製造されておらず、かわりにPICKit4と、MPLAB SNAPが売られています。
2機種の特徴は以下の通り。
PICKit4:
2機種の特徴は以下の通り。
PICKit4:
PICの電源電圧より高い12VをResetピンに与えて書込む高電圧書込みモードと、新しいチップで使える低電圧書込みモードの両方が使えます。
高電圧書込みモードを使えばResetピンを通常のI/Oピンに指定することができます。(8300円@秋月電子通商)
高電圧書込みモードを使えばResetピンを通常のI/Oピンに指定することができます。(8300円@秋月電子通商)
MPLAB SNAP:
なお旧型のPICKit3の互換品(中華製)がAmazonなどで売られていていますが、当たりはずれがあるようなのでお勧めしません。
これらのツールをMPLAB X IDE経由で使うと、PICをボードにはんだ付けした状態でプログラムを書き込むだけでなく、ソースコードのステップ実行やブレークポイント設定をしてチップ内レジスタの値を見るといった実機デバッグが可能です。
またMPLAB X IPEというソフト経由で使うとコンパイル&リンク済みのプログラムデータ(HEXフォーマット)を書き込むことができます。
低電圧書込みモードのみ対応。古い型番のPICには書き込めず、Resetピンを通常のI/Oに転用することはできません。
ですが新しい型番のPICを使うなら一部の機能切り捨てはほとんど問題にならず、あとはPICKit4と同等なので安価でお勧めです。
ただしケースが無いためショートしないよう注意が必要です。
またPICKit4と異なり、PCと接続するUSBコード(MicroB)は付属しません。(3700円@秋月電子通商)
ですが新しい型番のPICを使うなら一部の機能切り捨てはほとんど問題にならず、あとはPICKit4と同等なので安価でお勧めです。
ただしケースが無いためショートしないよう注意が必要です。
またPICKit4と異なり、PCと接続するUSBコード(MicroB)は付属しません。(3700円@秋月電子通商)
なお旧型のPICKit3の互換品(中華製)がAmazonなどで売られていていますが、当たりはずれがあるようなのでお勧めしません。
これらのツールをMPLAB X IDE経由で使うと、PICをボードにはんだ付けした状態でプログラムを書き込むだけでなく、ソースコードのステップ実行やブレークポイント設定をしてチップ内レジスタの値を見るといった実機デバッグが可能です。
またMPLAB X IPEというソフト経由で使うとコンパイル&リンク済みのプログラムデータ(HEXフォーマット)を書き込むことができます。
私はPICを載せる基板にプログラム用のピンヘッダを必ずつけて、オンボードで書込み、デバッグをしています。
MPLAB SNAPのソケット部を直接ボードの書込み用ピンヘッダに挿してプログラムすることは可能ですが、ソケットがへたってきても付け替えることは困難です。
そこで2.54mmピッチのソケットとピンヘッダを付けた延長コードを作って使っています。
MPLAB SNAPのソケット部を直接ボードの書込み用ピンヘッダに挿してプログラムすることは可能ですが、ソケットがへたってきても付け替えることは困難です。
そこで2.54mmピッチのソケットとピンヘッダを付けた延長コードを作って使っています。
MPLAB SNAP用ケース
MPLAB SNAPのショート事故や破損を防ぐためにはケースに入れると良いでしょう。
上記写真のケースの3Dプリンタ用STLデータを添付します。
MPLAB-SNAP_T.stl
MPLAB-SNAP_B.stl
上下のパーツはM2、L=10mmの皿ネジ4本で止めます。
下側(MPLAB-SNAP-B.stl)のネジ穴はタップ加工なしでねじ止めできるように設計しました。
上記写真のケースの3Dプリンタ用STLデータを添付します。
MPLAB-SNAP_T.stl
MPLAB-SNAP_B.stl
上下のパーツはM2、L=10mmの皿ネジ4本で止めます。
下側(MPLAB-SNAP-B.stl)のネジ穴はタップ加工なしでねじ止めできるように設計しました。