最終的に量産したい(かもしれない)機器を開発する場合、簡単な機能で良く処理速度も高速じゃなくてよいなら、安価な8bitマイコンで開発するのが良いと思います。
フリーで開発環境が揃い、手が出しやすいPICマイコンですが歴史が長い分、古い情報も多い感じですので割と最新の情報で整理したいと思います。
なおUSB非対応で200円ぐらいのマイコンをバラで買ってきてハンダ付けする・・という、組み込み開発のお話ですので、開発ボード買う場合は読み飛ばせるところがチラホラあるかと思います。
用意するもの
- 開発用PC
- PICマイコンと基板(ピッチ変換基板とユニバーサル基板でもOK)
- 発振子(セラロックと抵抗)
- 電源(5V)
- PICkit3(その後、PICkit4に乗り換え。ちょっと速くなりました)
- ソフト:「MPLAB-X-IDE」と8bit-PIC用コンパイラ「XC8」。どちらもフリー。
ソフトウェア環境の準備
Microchip社からダウンロードしておきます。
MPLAB-X-IDE: https://www.microchip.com/mplab/mplab-x-ide
XC8: https://www.microchip.com/mplab/compilers
MPLAB-X-IDE
セットアップ手順は省きます。
MPLAB-X-IDEインストール完了時の画面で、HermonyとMCCとコンパイラが紹介されていますが、HermonyはPIC32用なので不要です。MCCもダウンロードするの?となりますが不要です(下記参照)。コンパイラはPIC18の場合次項のXC8を入れます。
MPLAB-X-IDEが起動出来たら、メニューの[Tools] - [Plugins] から、「MCC (MPLAB Code Configurator)」というプラグインを入れます。
ドライバのソースコードを生成してくれますので、マイコン乗り換えもラクチンになります。
こんな画面です。”MPLAB Code Configurator"にチェックを入れてInstall
XC8
セットアップ手順は省きます。
なお、XC8 v2.00からC99対応になったようなのですが、sprintf()を使うとROMを使い切ったりしてくれるので、C90設定にしておくのが無難なようです。
(「8bit PIC の XC8 v2.* ビルドは C90で」 https://qiita.com/yukilab/items/9d6d3257c1e9b7329bab も参照)
ハードウェアの準備
今回選んだマイコンはPIC18F46K40(その後、PIC18F46K42というのも使いました。ADCが10bitから12bitにアップしてて、いい感じです)。
まずは電源端子を接続。それから発振子を接続します。
そのまま動いてくれればよかったのですが、直結ではダメで33Ωを入れたら動きました。
肝心のデバッガとの接続は、これを見ます。(PICKitに紙が同梱されてますけどね)
http://ww1.microchip.com/downloads/jp/DeviceDoc/50002721A_JP.pdf
ソフトの準備
MPLAB-X-IDEで、新規プロジェクトを作成します。これも手順は省きます。
MCCを起動します。メニューの[Tools] - [Embedded] - [MPLAB Code Generator v3: Open/Close] としても良いのですが、ツールバーに「MCC」ボタンがあります。
これを押すと、裏でJavaが起動するようで、時間がかかりますがじっと待ちます。
MCCが起動したら、まずは発振子の設定をします。
下記は、16MHzの発振子を接続して64MHzで動作させるときの設定例です。赤枠が設定変更箇所です。
設定したら「Generate」ボタンを押します。
間違っていると、初期化処理で発振待ちっぽいルーチンで止まります。。
動作確認が出来たら、使いたいデバイスをMCCで追加してみてください。
なお、割り込みを使う場合、main()の中に生成されてコメントアウトされている、割り込み有効化関数を有効化する必要があります。
ひとまず、これにて。