今回はPICマイコンの概要を説明します。
今回の説明
PICマイコン電子工作入門(基礎編)では、以下の順序で説明しています。この記事の説明は(2)「PICマイコンのベース回路を組む」の部分になります。
- LEDを電池と抵抗のみで光らせる回路を組み立てる
PICマイコンの回路を組み立てる前に、まずはブレッドボードに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドポード上に回路を組んでLEDを光らせてみます。ここでは電池、抵抗、発光ダイオードの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。まずはブレッドボードに慣れましょう! - PICマイコンのベース回路を組み立てる
はじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。この回路をブレッドボードに組み立てます。 - プログラムを作る
LEDを1秒に1回光らせるプログラムを作成します。 - PICマイコンに書き込んで動作させる
作成したプログラムをPICマイコンに書き込んで動作させてみます。 - ベース回路にスイッチを追加
LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部から信号を入力する方法を確認します。 - ベース回路にブザーを追加
スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。
説明の進め方
今回から、PICマイコンを使ってLEDを点滅させる回路の製作に入ります。説明が長くなりますので、まずはどのように説明をするか俯瞰しておきたいと思います。
- PICマイコンを使った電子回路を開発する手順の復習
以前ご説明したPICマイコンのプログラム開発手順を復習します。次に、PICマイコンを使用する場合、どのような回路を作っていけばよいかを説明します。 - PICマイコンの説明
PICマイコンそのものの説明を行います。(1)で説明した回路をどのように組み立てていけばよいかを説明します。 - PICマイコン回路を完成させる
(2)で説明したそれぞれ必要なブロックをひとつにまとめて、PICマイコンの回路を完成させます
PICマイコンを使った電子回路を開発する手順
「PICマイコン電子工作入門(基礎編) 第4回」で説明しましたが、もう一度ここでPICマイコンを使った電子回路を開発する手順を確認しておきます。
PICマイコンの回路を作成し、MacやWindowsPC上で、PICマイコンのプログラム開発環境であるMAPLABX IDE上でプログラムを開発、最後にそのプログラムをPICKit経由で作成した回路に書き込みます。ここまでできたら、あとは作った回路に電池を接続して動作させます。
以前説明したのにくどいよ、、、という感じですが、再度ここで説明したのには意味があります。実はこの手順から、PICマイコンに必要な回路のヒントがあるんです。
この手順からわかることは、PICマイコンを使用した回路には、
- プログラムを書き込む必要があるので、PICKit経由でプログラムを書き込めるように、PICマイコンに書き込むための何らかの回路が必要なこと
- 電池を接続して動作させるため、電源を接続する回路ことが必要なこと
- LEDを光らせるので、当然ながらLEDを光らせる回路が必要なこと
ということになります。つまりPICマイコンを中心として、以下のような回路を作成していくことになります。
今後、電子回路を見る機会が増えてくると思います。結構複雑な電子回路になると、見ただけで「なんか無理」みたいな感想を持ってしまいますが、上の図のように電子回路は機能ブロックごとに読み解く、あるいは作成していけばそれほど難しくはありません。
今回出てくるLEDを接続する部分も、この回路だけでしか使えない、というわけではなく、例えばArduinoやRaspberry PiでLEDを点滅させたい場合も、同じように設計すれば使えます。電子回路を読み解くポイントは、ブロックごとに解読していく、ということを覚えておいてください。
このあとですが、まずPICマイコンそのものについて説明し、そのあと「電源回路」「LED回路」「プログラム書込み回路」の順で説明していきます。最後はこれらをまとめて回路を仕上げます。
PICマイコン
PICマイコンには多くの種類があります。その中でもコンパクトで、機能はそれなりに搭載されている “PIC12F1822” というPICマイコンを使用します。
このPIC12F1822の仕様や使い方が詳細に記載されたデータシートがMicrochip社からリリースされています。まだこのデータシートは読めなくてもまったく問題ありませんが、仕様書がある、ということだけ理解しておきましょう。
日本語版 PIC12F1822データシート(PDFファイル)
英語版 PIC12F1822データシート(PDFファイル)
仕様書(データシート)は日本語版と英語版があります。最初は日本語版を読まれると思いますが、可能な限り対応するページの英語版も確認するようにしてみてください。PIC12F1822はよく使われる仕様書なので日本語版がありますが、他のタイプマイコンでは日本語版がないものもあります。
PIC12F1822の主要な仕様は以下になります。
項目 | 仕様 | 補足 |
---|---|---|
ピン数 | 8ピン | PICマイコン本体から出ているリード線(「足」とも呼びます)の数です。 |
動作電圧 | 1.8V〜5.5V | この範囲の電圧を与えれば動作しますが、早く動作させるには高い電圧が必要になります。 |
動作クロック | 最大32MHz | MacやPCで「CPUの周波数(速度)」と言われているものにあたります。MacやPCの場合、2GHzとか3GHzが普通ですが、PICマイコンは数MHz〜数十MHz、という感じです。32MHzで動作させるには2.5V以上の電圧が必要となります。 |
プログラムメモリ | 2kワード | 2000命令分のプログラムが書ける、と理解して問題ありません。ただ、C言語の1命令がここでいう1命令ではありませんので注意が必要です。C言語1命令が実際には何命令になるかはちょっと高度な内容ですのでこの入門シリーズでは説明は省略します。 |
SRAM | 128バイト | プログラム動作中の変数を保持するためのメモリ容量です。単位はメガバイトなどではなく「バイト」です!このメモリに保持した内容は電源を切ると消えてしまいます(「揮発性メモリ」と呼びます)。 |
EEPROM | 256バイト | 電源を切っても消えないメモリです(「不揮発性メモリ」と呼びます)。ずっと保持しておきたい値はここに格納します。こちらも単位は「バイト」です。 |
それではまずデータシートに記載されているPIC12F1822のピンの機能をデータシートでみてみましょう。
???って感じですよね。数字が1から8と、よく分からない文字が書いてあります。これを解読するために、まずは「ピン番号」というものから覚えていきましょう。
PICマイコンに限らず、このよなう形状のものはピンを区別するためにそれぞれのピンに番号が振られています。ピン番号がないと、
「どこにつなぐんだっけ?」
「ほら、右下から数えて3番目のピンだよ」
「それってどっち向きに置いたときなの?」
「え〜っと、、、」
と、かなり鬱陶しいやりとりが必要になってしまいますよね。そこで、ピン番号を決めるわけです。
PIC12F1822を上から見ると、以下のようになっています。
PICマイコンに限らず、このような形状のものは、片方の辺に半円の切り込みとその近辺に丸い印が付いています。半円の切り込みが左にくるように置いたとき、丸い印のピンから左回りに、1から番号を振っていきます。上の図では、
このように番号を振ることになります。先ほどのデータシートを見ると、四角い枠の内側に番号が書いてあります。この番号はピン番号を意味しています。先ほどのデータシートの図で、数字の意味は判明しました!
次にそれぞれのピンのそばによく分からない文字が書いてありますよね。「VDD」とか「RA5」という文字です。
これは、各ピンがどのような機能をもっているかを意味しています。
1番と8番ピンは、なんとなく、VDDとVSS、という機能のピンだろう、ということが想像できると思います(VDD、VSS自体の意味は置いておいて)。
同様に、2番ピンはRA5、3番ピンはRA4みたいですよね? (ここでもRA5、RA4自体の意味は置いておきます)。それに比べて、4番、6番、7番ピンはいろいろな文字がかかれています。
これらのピンにいろいろな文字が書かれている理由ですが、それは、PICマイコンは設定を変更することにより(プログラムで設定を行います)、各ピンがいろいろな役割になることができるためです。
ここでは意味までは説明しませんが、例えば、4番ピンであれば、プログラムで設定することにより、「MCLR」「VPP」「RA3」のいずれかの機能を持つように設定できる、ということになります(当然ですが、今はそれぞれの意味はわからなくても大丈夫です!)。
今回の製作では、このPICマイコンの各ピンを以下の機能として使用します。念のためデータシートのピンの機能説明の図と比較してみてください。
ピン番号は書きませんでしたので、どれが何番ピンかご自分で確認してみてください。各ピンの意味は以下のようになります。注意点としては、4番ピンを複数機能で使用する点です。
ピン番号 | 記号 | 意味 |
---|---|---|
1 | VDD | このピンに電源のプラスを接続します。今回は約5Vの電源を用意しますので、電池ボックスのプラス側のリード線をこのピンに接続します。 |
8 | VSS | このピンに電源のマイナスを接続します。電池ボックスのマイナス側のリード線をこのピンに接続します。 |
2, 3, 4 | RA5, RA4, RA3 | 電気信号の入出力ピンとして使用します。具体的には、2番ピン(RA5)はLEDを点滅させるための外部へ信号を出力するピン、3番ピン(RA4)はブザーを鳴らすための外部へ信号を出力するピン、4番ピン(RA3)はスイッチが押されているかを確認するために外部から信号を入力するピンとして使用します。 |
4, 6, 7 | MCLR/VPP, ICSPCLK, ICSPDAT | これらのピンは、PICKitを使ってこのマイコンにプログラムを書き込む際に使用します。PICKitとのつなぎ方は後ほど説明します。4番ピンはスイッチを接続して信号を入力するピンにも使用します。 |
5 | 空き | このピンは基礎編では使用しません。応用編ではこのピンも使用して、いろいろな機能を追加していきます。 |
繰り返しになりますが、PICマイコンを使った電子回路では、
- プログラムを書き込む必要があるので、PICKit経由でプログラムを書き込めるように、PICマイコンに書き込むための何らかの回路が必要なこと
- 電池を接続して動作させるため、電源を接続する回路ことが必要なこと
- LEDを光らせるので、当然ながらLEDを光らせる回路が必要なこと
ということを説明しました。また、先ほどPICマイコンの各ピンの役割を説明しました。なんとなくこれらがつながっていそうですよね。
それではこれから、PICマイコンに、
- 電源関連の回路
- LED関連の回路
- プログラム書き込みの回路
を設計して接続していきます。まずはこれら3つの回路を別々に説明して、最後にひとつの回路にしてみます。次回は電源関連の回路について説明します。
更新履歴
日付 | 内容 |
---|---|
2016.7.3 | 新規投稿 |
2018.10.31 | 一部の図を差し替え |
2018.11.23 | 画像リンク修正 |
2019.1.28 | PIC12F1822の32MHz動作時電圧について、「5V以上」を「2.5V以上」に修正(誤記訂正) |
2024.8.13 | 説明図変更 |
お世話になっております。
PIC12F1822の主要な仕様の動作クロックですが、32MHzで動作させるには5.0V以上の電圧が必要となります。とありますが、データーシートのFIGURE30-1を見ると、2.5V以上で32MHzで動作するように思えますが、如何でしょうか。
ご指摘どうもありがとうございました。
おっしゃる通り、32MHzは2.5V以上であれば動作します。この記事を書いた時、どのように確認したか忘れてしまいましたが、データシートでは以下のようになっています。
0〜16MHz: 1.8V以上
16MHz〜32MHz: 2.5V以上
「5V必要」と言い切ってしまった背景はわかりませんが、誤記です。ご指摘どうもありがとうございました。