第9回 PICマイコンの概要

今回はPICマイコンの概要を説明します。

目次

今回の説明

PICマイコン電子工作入門の基礎編は、次の順序で説明しています。

この記事は、「 PICマイコンのベース回路を組む」の部分になります。

  1. LEDを電池と抵抗のみで光らせる回路を組み立てる
    PICマイコンの回路を組み立てる前に、ブレッドボードの取り扱いに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドボード上に回路を組み立ててLEDを光らせてみます。ここでは電池、抵抗、発光ダイオードの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。まずはブレッドボードに慣れましょう!
  2. PICマイコンのベース回路を組む ⬅︎ 今回
    PICマイコンのはじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。
    この回路をブレッドボードに組み立てます。
  3. プログラムを作る
    LEDを1秒に1回光らせるプログラムを作成します。
  4. PICマイコンに書き込んで動作させる
    作成したプログラムをPICマイコンに書き込んで動作させてみます。
  5. ベース回路にスイッチを追加
    LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。
    これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部からスイッチの信号を入力する方法を習得します。
  6. ベース回路にブザーを追加
    スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。

説明の進め方

今回から、PICマイコンを使ってLEDを点滅させる回路の製作に入ります。

回路の製作は、今回から第12回の複数の記事に分けて説明していきます。

説明が長くなりますので、最初にどのように説明を進めていくか瞰しておきたいと思います。

  1. PICマイコンを使った電子回路を開発する手順の復習(今回の記事)
    以前ご説明した「PICマイコンのプログラム開発手順」を復習します。
    次に、PICマイコンを動作させるには、どのような回路を作っていけばよいかを説明します。
  2. PICマイコンの説明(第10回&第12回の記事)
    で説明した回路を、実際にどのように組み立てていけばよいかを説明します。
  3. PICマイコン回路を完成させる(第12回の記事)
    で説明した内容をひとつにまとめて、PICマイコンの回路を完成させます

PICマイコンを使った電子回路を開発する手順

PICマイコン電子工作入門基礎編の第4回」で説明しましたが、ここでもう一度PICマイコンを使った電子回路を開発する手順を確認しておきます。

❶ PICマイコンの回路を作成して、❷ PICマイコンのプログラム開発環境であるMAPLABX IDE上でプログラムを開発、❸ 最後にそのプログラムをPICKit経由でPICマイコンに書き込みます。

ここまでできたら、あとは作った回路に電池を接続して動作させます。

以前説明したのにくどいよ、、、という感じですが、再度ここで説明したのには意味があります。


実はこの開発手順から、PICマイコンに必要な回路のヒントがあるんです。

この手順からわかることは、PICマイコンを使用した回路には、次のような機能が必要なことが想像できます。(ちょっと無理やり感がありますが…)

  • PICマイコンにプログラムを書き込む必要がある
    ➡︎ PICKit経由でプログラムを書き込めるように、PICマイコンに書き込むための何らかの回路が必要なこと
  • 電池を接続して動作させる
    ➡︎ 電源を接続する回路が必要なこと
  • LEDを光らせる
    ➡︎ 当然ながらLEDを光らせる回路が必要なこと

つまり、PICマイコンを中心として、次のような回路を製作していくことになります。

PICマイコン周辺回路

少し話はそれますが、今後、電子回路を見る機会が増えてくると思います。

結構複雑な電子回路になると、見ただけで「なんか無理」みたいな感想を持ってしまうこともあります。

でも電子回路は必ず基本的な機能ブロックの組み合わせになっています。例えば上の図のような感じですね。

複雑な電子回路でも、機能ブロックごとに読み解いていけば理解できるにようになってきます。

例えば、上の図の「LED点灯回路」は今回の製作するタイマーだけしか使えない、というわけではありません。

例えばArduinoやRaspberry PiでLEDを使いたい場合も、同じように設計すれば使えます。


このあと説明は、最初にPICマイコンそのものについて説明し、そのあと「電源回路」「LED回路」「プログラム書込み回路」の順でブロックごとに説明していきます。

最後はこれらをまとめて回路を仕上げます。

電子回路は機能ブロックごとに分けることができる、ということを実感していただければと思います。

PICマイコンの概要

PICマイコンにはとても多くの型番(種類)があります。

その中でも本体サイズがコンパクトで、機能もそれなりに搭載されている「PIC12F1822」という型番のPICマイコンを使用します。

このPIC12F1822の仕様や使い方が詳細に記載されたデータシートがMicrochip社からリリースされています。

まだこのデータシートは読めなくてもまったく問題ありませんが、仕様書がある、ということだけ理解しておきましょう。

日本語版 PIC12F1822データシート(PDFファイル)
英語版 PIC12F1822データシート(PDFファイル)

PIC12F1822の仕様書(データシート)には、日本語版と英語版があります

当然ながら日本語版を読むことになりますが、もし余力があれば英語版もダウンロードしてチラッと確認するようにしてみてください。

というのは、PIC12F1822はよく使われるマイコンなので、仕様書に日本語版がありますが、他の型番のPICマイコンでは仕様書に日本語版がないものもあります

急に英語版の仕様書を読むのはかなり辛い状況になりますので、余力があれば日本語版に対応する英語版の部分を確認するというのもいいかなと思います。

PIC12F1822の仕様概要

最初に、PIC12F1822の仕様概要を確認しますが、仕様書(日本語版)は、合計436ページあります。(最初から心が折れそうですが…)

仕様書を確認すると時間がかかってしまいますので、主な仕様を次にまとめました。

それぞれの項目は補足欄をご確認ください。

項目仕様補足
ピン数8ピンPIC12F1822本体から出ているピンの本数です。
動作電圧1.8〜5.5VPIC12F1822を動作させるために必要な電圧です。
かなり幅がありますが、速く動作させる場合は高い電圧が必要になります。
動作クロック最大32MHzPCで「CPU周波数」と呼ばれている仕様にあたります。PCの場合、2GHzとか3GHzが普通ですが、PICマイコンは数MHz〜数十MHz、という感じです。(桁が違いますね…)
プログラム
メモリ
2000ワード2000命令分のプログラムが書ける、と理解して問題ありません。ただ、C言語の1命令が1ワードではありませんので注意が必要です。
SRAM128バイトプログラム動作中、変数などを記憶しておくためのメモリ容量です。単位はGB(ギガバイト)などではなく「バイト」です!
この項目は一般的なPCのメモリに相当しますが、普通のPCのメモリ容量は16GBや32GBですので、かなりの差がありますよね。
EEPROM256バイト電源を切っても記憶内容が消えないメモリです。
PCのSSDに相当します。PCの場合、SSD容量は512GBや1TBですが、PIC12F1822は256「バイト」です!

PIC12F1822のピンの機能

これからPIC12F1822の仕様を少しずつ確認していきます。

最初は仕様書に記載されている「PIC12F1822のピンの機能」を確認します。

(PIC12F1822仕様書より引用)

これは、PIC12F1822を上から見た図なのですが、、、???って感じですよね。

本体部分には1から8の数字と、その横にはよく分からない文字が書いてあります。

これから数字と文字が何を意味しているのか確認します。

数字の意味

仕様書に書かれている数字は、PIC12F1822の「ピンの番号」を示しています。

このマイコンに限らず、一般的なマイコンは本体から複数のピンが出ていますが、それぞれのピンはそれぞれの機能を持っています。どのピンがどの機能を持っているか、確認する必要があるわけです。

でも、ピンについて何も手かがりがないと、

「この機能はどのピンだっけ?」
「ほら、右下から数えて3番目のピンだよ」
「それってどっち向きに置いたときなの?」
「え〜っと、、、」

と、かなりややこしいやりとりが必要になってしまいますよね。

そこで、ピン番号を決めるわけです。


PIC12F1822を上から見ると、以下のようになっています。

Pic12f1822 package

PICマイコンに限らず、このような形状のものは、片方の辺に半円の切り込みとその近辺に丸い印が付いています。

ピン番号は、半円の切り込みが左にくるように置いたとき、丸い印のピンから左回りに、1から番号を振っていきます

PIC12F1822を上のように置いた場合、次のようにピン番号が割り振られます。

Pic12f1822 numbering

先ほどの仕様書の説明図は次のようになっていました。

(PIC12F1822仕様書より引用)

よく見ると、上側の辺に半円の切り込みが描かれていますよね。その左側が1番ピンで時計回りにピン番号が振られているのがわかると思います。

これで数字の意味は判明しました!

文字の意味

次にそれぞれのピンのそばによく分からない文字が書いてありますよね。

(PIC12F1822仕様書より引用)

1番ピンの「VDD」とか、2番ピンの「RA5」という文字です。

これは、それぞれのピンがどのような機能をもっているかを意味しています。

今の段階では、それぞれの文字の意味はわからなくて全く問題ありません。

でも、1番と8番ピンは、なんとなく、「VDD」と「VSS」、という機能のピンだろう、ということが想像できると思います。

それにくらべて、4番、6番、7番ピンはちょっと雰囲気が違って、いろいろな文字がかかれています。

例えば4番ピンは「MCLR/VPP/RA3」と書かれていますよね。

よく見ると「/」(スラッシュ記号)で区切られていて、「MCLR」「VPP」「RA3」という3種類の文字が書かれています。

このように、1つのピンに複数の文字が書かれている場合、複数の機能を持っている、ということを意味しています。先ほど例に挙げた4番ピンは、「MCLR」「VPP」「RA3」という3つの機能を持っている、という意味になります。

「1つのピンに複数の機能」と聞くと、どうやって使うんだろうと思ってしまうかもしれません。

PICマイコンは、プログラムで設定することにより、そのピンの役割を決めることができるようになっています。

ちょっとしつこくなってしまいますが、例えば4番ピンであれば、プログラムで設定することにより、「MCLR」「VPP」「RA3」のいずれかの機能にすることができます。(当然ですが、今はそれぞれの意味はわからなくても大丈夫です!)。


今回の製作では、このPIC12F1822の各ピンを、次の機能として使用します。(ピン番号は明示していませんので、読み取ってみてください)

Pic12f1822 pin usage

それぞれのピンの意味は次のようになります。4番ピンを複数機能で使用しますが、どのように複数の機能を使うかは今後の記事で説明していきます。

次の表で、4番ピンは「RA3」機能としての説明と、「MCLR/VPP」機能としての説明がある点に注意してください。また、5番ピンは基礎編では使用しませんので次の表にはありません。

ピン番号機能名意味
1VDDPIC12F1822を動作させるための電源を接続するピンです。このピンには電源のプラス側を接続します。電池ボックスのプラス側のリード線をこのピンに接続します。
2RA5電気信号の入出力ピンとして使用します。具体的には、RA5はLEDを点滅させるためのピン、RA4はブザーを鳴らすためのピン、RA3はスイッチが押されているかを確認するためのピンとして使用します。
3RA4
4RA3
4MCLR/VPPこれらのピンは、PICKitを使ってPIC12F1822にプログラムを書き込むときに使用します。PICKitとのつなぎ方は後ほど説明します。
6ICSPCLK
7ICSPDAT
8VSSPIC12F1822を動作させるための電源を接続するピンです。このピンには電源のマイナス側を接続します。電池ボックスのマイナス側のリード線をこのピンに接続します。

PICマイコンに必要な回路

繰り返しになりますが、これから製作するLEDを点滅する回路は、次のような機能の回路が必要なことを説明しました。

PICマイコン周辺回路

次回以降の記事では、次の回路を順番に説明していきます。

  • 電源関連の回路
  • LED関連の回路
  • プログラム書き込みの回路

3つの回路をそれぞれ説明したあと、最後にひとつの回路にまとめます。

次回は電源関連の回路の説明です。

更新履歴

日付内容
2016.7.3新規投稿
2018.10.31一部の図を差し替え
2018.11.23画像リンク修正
2019.1.28PIC12F1822の32MHz動作時電圧について、「5V以上」を「2.5V以上」に修正(誤記訂正)
2024.8.13説明図変更
2025.3.17説明補足
通知の設定
通知タイミング
guest
0 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
iwa
iwa
5 年 前

お世話になっております。
PIC12F1822の主要な仕様の動作クロックですが、32MHzで動作させるには5.0V以上の電圧が必要となります。とありますが、データーシートのFIGURE30-1を見ると、2.5V以上で32MHzで動作するように思えますが、如何でしょうか。

管理者
管理者
返信  iwa
5 年 前

ご指摘どうもありがとうございました。

おっしゃる通り、32MHzは2.5V以上であれば動作します。この記事を書いた時、どのように確認したか忘れてしまいましたが、データシートでは以下のようになっています。

0〜16MHz: 1.8V以上
16MHz〜32MHz: 2.5V以上

「5V必要」と言い切ってしまった背景はわかりませんが、誤記です。ご指摘どうもありがとうございました。

目次