ここのところ大流行していたPICですが、実にさまざまなバリエーションがあります。この中で容易に入手できるものはどんなものでしょうか。12ビットコア、14ビットコアのものを秋葉原のお店の通販の頁から拾ってみました。そのまま引き写しているので正確ではないかもしれません(2012/03/13 webにて、秋月/千石/若松/マルツ)。
リストにしてみると大変な種類で、圧倒されます。これだけ手に入るということはありがたいことです。
アマチュアで遊ぶという観点から見ていくと、リストから、いろいろな条件で絞ることができます。機能はもちろんですが、使いやすさから意外に使える範囲は狭くなります。
実機で、何回もプログラムを書き直したり、チップを流用したりするのだから、当然、1タイムのものは避けたいし、当然、紫外線消去の必要な窓付きもいまさら選択はできません。ということで、書き込み回数の多い、12FXXXとか16FXXXとかを選ぶことになります。
フラットパッケージも最終的にはいいかもしれないけれど、やはり、ICソケットが使えて、標準タイプのものが、やはり、使いやすい。半田付けも容易。それに、ソケットが使えないと、実装したまま書き込める工夫をしなくちゃいけないので、やはり、いろいろ面倒です。
書き込みツールも自作するのがアマチュアの醍醐味だけど、やはり、最初は楽をしたいです。よほどのことがない限り、手持ちのツール(私の場合は秋月のPIC-WRITER)で書き込みたい。
最近はマイクロチップ製など、フラッシュタイプならば、ほぼ、全種類対応の安価なライターが入手できるので、この制限はゆるく考えて良さそうです。
言わずもがなですが、大きいファクターです。同じような規模のPICでも数倍価格が違うこともあるので…
8ピン以下のチップで考えると、候補は PIC12F508/PIC12F509/PIC12F615/PIC12F629/PIC12F675/PIC12F683。508/509は古典的なC508/C509のフラッシュ版だから押えておきたいけれど、現状では秋月のライターが未対応。
Name | Program (Words) | EEPROM (Bytes) | RAM (Bytes) | ADC | comp | 8bit Timer | 16bit Timer | Max MHz | intOSC | CCP | Reset |
---|---|---|---|---|---|---|---|---|---|---|---|
PIC10F200 | 0.25 | - | 16 | - | - | 1 | - | 4 | 4M | - | - |
PIC10F222 | 0.5 | - | 23 | 2x8bit | 1 | 1 | - | 8 | 8M | - | - |
PIC12F508 | 0.5k | - | 25 | - | - | 1 | - | 4 | 4M | - | - |
PIC12F509 | 1k | - | 41 | - | - | 1 | 4 | 4M | - | - | |
PIC12F609 | 1k | - | 64 | - | 1 | 1 | 1 | 20 | 8M | - | BOR |
PIC12F615 | 1k | - | 64 | 4x10bot | 1 | 2 | 1 | 20 | 8M | 1 | BOR |
PIC12F629 | 1k | 128 | 64 | - | 1 | 1 | 1 | 20 | 4M | - | BOR |
PIC12F675 | 1k | 128 | 64 | 4x10bit | 1 | 1 | 1 | 20 | 4M | - | BOR |
PIC12F683 | 2k | 256 | 128 | 4x10bit | 1 | 2 | 1 | 20 | 8M/32k | 1 | BOR |
この表から見ると、PIC12F508/PIC12F509は、C508/C509の置き換え用途以外では不要。他の三つは、機能的には、PIC12F683 > PIC12F615 > PIC12F675 > PIC12F629の順。お値段も、例えば、秋月ならば、それぞれ、150円、100円、120円、100円。
結局、PIC12F683か、PIC12F615のいずれかを選択になりそう。PIC12F615はEEPROMがないなど、容量が少ないけれど、四つのADとCCPを同時に使えます(PIC12F683は、ADとCCPが重なるので、同時使用ならば、三つのADとCCP)。
どちらのチップにもシリアルI/Oが無いのが、ちょっと、つらいところ。そういう使い方をしなければ良いのですが。
PIC12F629/PIC12F675ば、メリットは少ないですが、EEPROMがあるので、PIC12F615よりも使える場合があるかもしれません。PIC12F683より、多少、お安いのでこの辺は、お値段で判断といったところ。
629/635/675/683は、フラットパッケージ版も入手できるので、小さく作る場合には便利かもしれません。
PIC10F200/PIC10F222は米粒PIC。6ピンのとても小さなパッケージで部品的な使い方に向いていそうです。お値段も、60円/80円とお安い。デバッグ用に8ピンのものも手に入ります。この二つは14ビットコアなので、割り込みが使えないなどの制限があります。割り切って使うのが面白そうです。
ピン数の多いもの、つまり、ある程度の規模の回路で使うときの選択です。実はフラッシュタイプでないものにも魅力的なものが多いのですが、目をつぶってフラッシュものから選んでみます。
name | pins | Program (Word) | EEPROM (Bytes) | RAM (Bytes) | I/O | ADC 8bit | ADC 10bit | Comp | 8bit Timer | 16bit Timer | USART | I2C/SPI | Max MHz | intOSC | CCP/ECCP | SelfWrite |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PIC16F688 | 14P | 4k | 256 | 256 | 12 | - | 8 | 2 | 1 | 1 | EUSART | - | 20 | 8M/32k | 0/1 | - |
PIC16F627A | 18P | 1k | 128 | 224 | 16 | - | - | 2 | 2 | 1 | AUSART | - | 20 | 4M | 1/0 | - |
PIC16F628A | 18P | 2k | 128 | 224 | 16 | - | - | 2 | 2 | 1 | AUSART | - | 20 | 4M | 1/0 | - |
PIC16F648A | 18P | 4k | 256 | 256 | 16 | - | - | 2 | 2 | 1 | AUSART | - | 20 | 4M | 1/0 | - |
PIC16F716 | 18P | 2k | - | 128 | 13 | 4 | - | - | 2 | 1 | - | - | 20 | - | 0/1 | - |
PIC16F819 | 18P | 2k | 256 | 256 | 16 | - | 5 | - | 2 | 1 | - | I2C/SPI | 20 | 8 | 1/0 | Yes |
PIC16F84A | 18P | 1k | 64 | 68 | 13 | - | - | - | 1 | - | - | - | 20 | - | - | - |
PIC16F88 | 18P | 4k | 256 | 368 | 16 | - | 7 | 2 | 2 | 1 | AUSART | I2C/SPI | 20 | 8 | 1/0 | Yes |
PIC16F677 | 20P | 2k | 256 | 128 | 18 | - | 12 | 2 | 1 | 1 | - | I2C/SPI | 20 | 8M/32k | - | - |
PIC16F690 | 20P | 4k | 256 | 256 | 18 | - | 12 | 2 | 2 | 1 | EUSART | I2C/SPI | 20 | 8M/32k | 0/1 | Yes |
PIC16F785 | 20P | 2k | 256 | 128 | 18 | - | 12 | 2 | 2 | 1 | - | - | 20 | 8M/32k | 1/0 | -(2OpAmp) |
PIC16F57 | 28P | 2k | - | 72 | 20 | - | - | - | 1 | - | - | - | 20 | - | - | - |
PIC16F73 | 28SP | 4k | - | 192 | 22 | 5 | - | - | 2 | 1 | USART | I2C/SPI | 20 | - | 2/0 | - |
PIC16F76 | 28SP | 6k | - | 368 | 22 | 5 | - | - | 2 | 1 | USART | I2C/SPI | 20 | - | 2/0 | - |
PIC16F873A | 28SP | 4k | 128 | 192 | 22 | - | 5 | 2 | 2 | 1 | AUSART | MI2C/SPI | 20 | - | 2/0 | Yes |
PIC16F876A | 28SP | 8k | 256 | 368 | 22 | - | 5 | 2 | 2 | 1 | AUSART | MI2C/SPI | 20 | - | 2/0 | Yes |
PIC16F883 | 28SP | 4k | 256 | 256 | 25 | - | 11 | 2 | 2 | 1 | EUSART | MI2C/SPI | 20 | 8M/32k | 1/1 | Yes |
PIC16F886 | 28SP | 6k | 256 | 368 | 25 | 11 | 2 | 2 | 1 | EUSART | MI2C/SPI | 20 | 8M/32k | 1/1 | Yes | |
PIC16F74 | 40P | 4k | - | 192 | 33 | 8 | - | - | 2 | 1 | USART | I2C/SPI | 20 | - | 2/0 | - |
PIC16F747 | 40P | 4k | - | 368 | 36 | - | 14 | 2 | 2 | 1 | AUSART | MI2C/SPI | 20 | 8M | 3/0 | - |
PIC16F77 | 40P | 6k | - | 368 | 33 | 8 | - | - | 2 | 1 | USART | I2C/SPI | 20 | - | 2/0 | - |
PIC16F874A | 40P | 4k | 128 | 192 | 33 | - | 8 | 2 | 2 | 1 | AUSART | MI2C/SPI | 20 | - | 2/0 | Yes |
PIC16F877A | 40P | 8k | 256 | 368 | 33 | - | 8 | 2 | 2 | 1 | AUSART | MI2C/SPI | 20 | - | 2/0 | Yes |
PIC16F887 | 40P | 8k | 256 | 368 | 36 | - | 14 | 2 | 2 | 1 | EUSART | MI2C/SPI | 20 | 8M/32k | 1/1 | Yes |
PIC16F914 | 40P | 4k | 256 | 256 | 36 | - | 8 | 2 | 2 | 1 | AUSART | I2C/SPI | 20 | 8M/32k | 2/0 | - |
ピン数のバリエーションが増えたので、選択肢が増えました。
18ピンと20ピンは、一つのグループと考えてよいでしょう。新しいデバイスは20ピンで出てきそうです。18ピンは、値段がこなれてきているので、使いやすくなっています。
まず、18ピンから選ぶとすると、PIC16F88が機能的には最も充実しています。値段も秋月では230円で他と大差なく、お買い得感があります。
お値段がこなれて使いやすくなったのは、PIC16F716/PIC16F627Aでそれぞれ、秋月で110円と160円。PIC16F716はUSARTなし、PIC16F627Aありといったところ。プログラムが小さければ、このどちらかで間に合うことも多いと思います。
20ピンはPIC16F690。PIC16F88相当で、お値段もこちらの方が安いくらい。変り種が、PIC16F785で、オペアンプを二つ内蔵しています。これも、使いやすそうです。
28ピンでは機能的には、PIC16F785。お値段と機能のバランスから言うと、PIC16F886。こちらは、プログラム容量がちょっと少ないだけで、お値段としては、18ピンと変わりません。
40ピンでも、新しいデバイスのPIC16F887。機能的には40ピンの標準だったPIC16F877Aと変わらないのに安いです。あとは、CCPが三つ付いているPIC16F747がちょっと面白そうです。
いつもPICの書き込みに使っているのは、秋月のライター(Ver.4)。つい最近もバージョンが上がりました。対応デバイスの種類も多くなっているは頼もしい限りです。PIC10F、PIC12、PIC16、PIC18のPICに対応しています。歴史が古いハードなので、フラッシュでないPICにも書けるのが強み。PIC24シリーズやdsPICには書けません。
また、秋月では、後述のマイクロチップのPICKIT2互換のライターも出ています。レバーソケットが載っているので、簡単に書き込みが出来る点で、PICKIT2より使いやすいかもしれません。
マルツからも新しいライターが出ました。MPIC06-KIT。キットで組み立てが必要。比較的新しいチップの対応が主。dsPICなどにも書けます。
フリーのライターで、比較的新しいチップでもかけるものということで、捜していたのですが、オレンジ電子さんのライターが具合がよさそうです。インタフェースもパラレルポートでなく、シリアル。しかも、tx,rxのみの仕様なので、通信さえできれば、USB経由のRSでも問題なく動きそうです。チップのレパートリーも続々と増えています。
本家のマイクロチップ社からも、ローコスト(3000-9000ぐらい?)のライターが出ています。Pickit2がそれです。このPickit2とデモボードを組み合わせでも販売されています。対応チップは、そのデモボードで書き込みをすると範囲が狭いのですが、インタフェースを自作すれば(自作といってもソケットとコネクタぐらい)、かなり広い範囲のものに書けるようです。新しいチップに対する対応が速いのも本家の強みです。本来はISP書き込み用でこの端子が、通常のピン端子なので接続が簡単な点も便利。
マイクロチップの標準的なツールはICD2。お値段は少々張りますが、殆どのチップに書けます。総合的なデバッグツールとしての機能も魅力です。こちらも、ISP書き込みなのですが、端子がモジュラー端子。これがちょっと使いにくいところです。手元では、変換基板を用意して使っています。
また、ハードウェアが古いせいか、MCLRをI/Oとした場合、一度書き込むと書き換えが出来なくなることがある仕様で、この点はPickit2の方が使いやすいと思います。