今回はプログラムの書き込みと動作確認をします。といっても以前すでに書き込み&動作させましたので復習となります。
本シリーズ記事の内容を改訂して、基礎編、応用編、実践編として以下のリンクに公開しています。以下のシリーズはさらにいろいろなPICマイコンの機能をご紹介しています!
PICマイコン電子工作入門 〜基礎編〜
PICマイコン電子工作入門 〜応用編〜
PICマイコン電子工作入門 〜実践編〜
今回の説明
発光ダイオード点滅回路を完成させるために以下の順序で説明しています。このエントリの説明は(4)「PICマイコンに書き込んで動作させる」の部分になります。この回で完了します。
- 発光ダイオード(LED)を電池と抵抗のみで光らせる回路を組む
PICマイコンの回路を組む前に、まずは電池、抵抗、発光ダイオードのみを使って、ブレッドポード上に回路を組んで発光ダイオードを光らせてみます。ここでは電池、抵抗、発光ダイオードの回路記号、回路図と、回路図からブレッドボードに組む方法を説明します。 - PICマイコンのベース回路を組む
はじめの一歩の回路は、発光ダイオードを1秒に1回光らせるだけの回路です。この回路を組みます。 - プログラムを作る
発光ダイオードを1秒に1回光らせるプログラムを作成します。 - PICマイコンに書き込んで動作させる
作成したプログラムをPICマイコンに書き込んで動作させてみます。 - ベース回路にスイッチを追加
発光ダイオードの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。これまでは発光ダイオードを光らせる、という出力制御をしましたが、PICマイコンで外部から信号を入力する方法を確認します。 - ベース回路にブザーを追加
スイッチ付きの1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーを作ってみます。
プログラムを書き込む方法
この入門シリーズ第16回で、すでにプログラムの書き込みと動作確認をしていますので、今回は復習になります。あまり新しい情報はないと思いますので、すでに動作確認までされている方は軽く読み飛ばしていただいて構わないと思います。
作成したプログラムをMPLABXでビルドすると、PICマイコンに書き込むプログラムファイル(バイナリ、とも呼んだりします)が生成されます。このプログラムファイルを書き込むにはPICkit3などの書き込みツールを使用して書き込みます。以前説明した図を再掲しておきます。
PICマイコンにプログラムファイルを書き込むには、PICマイコンに電圧をかける必要があります。電圧をかける、つまり電源を供給する方法は2通りあります。ひとつはMac→USBケーブル→PICkit3経由で供給する方法、もうひとつは電子回路側の電源から供給する方法です。
PICkit3から電源を供給した方が楽なような気もしますよね。特にブレッドボードで組み立てた場合、いちいち電源をつないで、電源を供給して、、、というとちょっと面倒なので、どうせPICkit3を回路に接続してプログラムを書き込むのであれば、PICkit3から電源を供給してしまった方がいいですよね。ただ、どのような場合でもPICkit3から電源を供給してプログラムを書き込めるわけではありませんので注意してください。
電源供給方法の選択の仕方ですが、まず、電子回路側の電源から供給する方法はどのような場合でも使えます。PICkit3から電源を供給する方法は、「電子回路側の消費電流が少ない場合」のみ使える方法となります。
PICkit3からプログラムを書き込む場合、PICkit3から電子回路の電源に接続されます。電子回路側は、PICkit3から電源供給を受けますので、回路構成によっては電子回路が動作してしまいます。もしその動作する内容が、かなり電流を使う場合、PICkit3からの電流供給が足りなくなり、うまくプログラムが書き込めない場合があります。
では、PICkit3から電子回路にどのくらいの電流が供給できるかというと、PICkit3のマニュアルによると30mA程度、とのことです。例えば、電子回路側に常時点灯する高輝度発光ダイオードが数個付けられている場合、高輝度発光ダイオードは20mAぐらいあるいはそれ以上で光らせることがありますので、このようなケースではPICkit3からの電源供給方法は使えないことになります。
とはいっても自分が作った電子回路の消費電流なんてよくわからないケースが多いと思いますので、ここまで詳しく説明してからなんですが、
・感覚的にPICkit3からの電源供給で大丈夫そうで、電子回路側の電源接続が面倒だったら、PICkit3からの電源供給で書き込んでみる
・なんかよくわからないエラーが出たら、電子回路側の電源供給に切り替える
といういい加減な方法がよいと思います。そのうち「あっ、これはダメそうだよね」みたいな感覚がつかめてくると思います。(無責任ですが)
PICkit3から電源を供給する方法
電源供給方法は、プロジェクトのプロパティから設定します。まずはPICkit3から電源を供給する方法の設定です。
プロジェクト名のところを右クリックしてメニューを表示します。
以下のようなプロジェクトのプロパティダイアログが表示されます。
続いて、左の “Categories:” の中の “PICkit3” を選択します。
右側の領域がPICkit3の設定メニューになりますので、”Option categories:”のプルダウンメニューから “Power” を選択します。
Power設定画面になりますので、PICkit3から電源を供給する場合は “Power target circuit from PICkit3” のチェックボックスをチェックします。供給しない場合は、チェックを外します。また、PICkit3から電源を供給する場合は、供給電圧を指定します。今回のPIC12F683は5VでOKなので5Vにします。なお、PICマイコンの中には低電圧モデルもありますので、その場合は供給電圧の設定に十分注意します。
関係ないですが、”Power target circuit from PICkit3″ の “Power” は名詞ではなく動詞(他動詞)ですね。英語を勉強されている学生さんの方々はこんなところにも注意を向けてみるとよいと思います。
ここまで設定できたらOKボタンをクリックして、あとはプログラムをビルド、書き込みすることになります。
まずプログラムをビルドします。ウインドウ上のビルドアイコンをクリックします。
ビルドが成功すると、ビルドメッセージの中に、”BUILD SUCCESSFUL” という表示が出ますので、それを確認します。
いよいよ書き込みますので、PICkit3をターゲットの電子回路に接続します。
今回使用したコネクタはピンの長さがちょっと短いので、PICKit3を左手で固定しながら、書き込みボタンをクリックします。
書き込み処理が始まると、以下のようなダイアログが出てきます。(“Do not show this message again”(今後表示しない)、というチェックボックスをチェックしている場合は出てきません)
このダイアログの意味は「警告!これから書き込もうとしているPICマイコン(PIC12F683)だけど、3.3Vタイプと5Vタイプがあって、3.3Vタイプのものに供給電圧5V設定するとまずいこと起こるよ。これからPICマイコンのIDを調べるんだけど、その時にぶっ壊れるかもしれないよ。ねぇ、いいの? 続けちゃっていいの? ねぇ、ねぇ? (意訳)」という感じです。5VタイプなのでOKボタンをクリックします。
書き込みが成功すると以下のように、Programming/Verify completeと表示されます。
あとは、PICkit3を外して、電子回路に電源を接続、スイッチを入れれば動作するはずです!
電子回路側で電源を供給する方法
もうひとつの書き込み方法として、電子回路側で電源を供給する方法があります。この方法は、電子回路側は通常動作させるときのように電源をつないでスイッチを入れるだけです。今回この入門で作成した回路の場合は以下のようになります。
この状態でPICkit3をコネクタに接続して、先ほどの方法と同様に書き込むをすればOKです。
電源供給方法に問題がある場合のエラー例
ところで、PICマイコンにプログラムを書き込む際に電源供給はうっかり間違えます。私だけかもしれませんが、よく間違えます。ということで、間違えるとどうなるか、確認しておきます。
まず、PICkit3からは電源供給せずに電子回路側の電源を使用する場合です。この場合、電子回路側の電源を供給しないで書き込みを行うと、以下のメッセージが出力されました。
電子回路に誰も電源を供給していないわけですから、何かを読み取ることも書き込むこともできないわけです。そのため、”Target device was not found. You must connect to a target device to use PICkit 3.”というメッセージが表示されます。この意味は、「ターゲットデバイスが見つからなかったんですけど。PICkit3使うときはターゲットデバイスつなげるだろ。普通(意訳)」といった感じです。
次は、PICkit3から電源供給するにもかかわらず、さらに電子回路側も電源供給してしまった場合です。この場合は私の環境では以下のメッセージが表示されました。
これはちょっと不可解なメッセージですよね。デバイスID、つまりPICマイコンのタイプを調べようとしたら失敗した、と。このメッセージ見て、すぐに「あっ、デバイスID取れなかったのね。ごめんごめん。電子回路側の電源OFF、っと」なんて人あんまりいなさそうですよね。
上のメッセージもそうですが、「もしかしたら電源供給確認した方がよいかも」というようなメッセージを出してくれればいいですが、それも難しいのかもしれません。いずれにしてもこのようなメッセージが表示されたら、電源供給まわりを確認するのもとひとつ、と覚えておきましょう。
更新履歴
日付 | 内容 |
---|---|
2015.9.22 | 新規投稿 |
2018.12.3 | 新シリーズ記事紹介追加 |