PIC10F20xシリーズ

マイクロチップ社は、わずか3mmのSOT23パッケージにおさめた6ピンのマイコン、PIC10Fシリーズの販売を開始しました。注意しないと、吐息でどこかへ飛んでいったり、吸い込んでしまいそうな極小サイズです。そのサイズを活かして、さいきん話題になっている、カプセル式の胃カメラ・腸カメラなどのように、検査用の医療用機器への用途もあるようです。
インターネットで家電を制御したり、飼い犬に個体識別用のマイクロチップを埋め込んだり、携帯電話で買い物ができたりする昨今ですから、そのうちマイクロチップ化した住民基本台帳カードを体内に埋め込んで、インターネット経由で双方向に制御できる時代が……きてほしくないですね(人間がほんとうにコンピュータウイルスに感染したりして…)。というわけで、この小さなマイコン・PIC10Fを観察してみることにしました。

[HOME]


PIC10F20xシリーズの外観

PIC10F20x シリーズは、12ビットコアのマイコンです。現時点で販売されているPIC10F200とPIC10F204は256ワードのプログラムメモリと16バイトのデータメモリ、PIC10F202とPIC10F206は512ワードのプログラムメモリと24バイトのデータメモリを内部に持っています。33の命令で、スタックレベルは2つです。8ビットのタイマとウォッチドッグタイマを内蔵しています。4MHzのRC発振回路を内蔵しており、命令の実行サイクルは1usです。I/Oピンは最大で4つで、そのうち1つは入力専用です(GP3)。また、PIC10F204とPIC10F206はコンパレータを内蔵しています。各I/Oピンに流せる電流は25mAです。動作電圧は、2V-5.5Vとなっています。
PIC10F20xシリーズにプログラムを書き込むには、マイクロチップ社
PICSTART-PlusPRO-MATE IIMPLAB-PM3MPLAB-ICD2PICkit1BFMPなどを使用し、ICSP以外ではSOT23用ソケットが実装されているアダプタボードが別途必要になります(AC163020 - PIC10F2XX PROGRAMMER ADAPTER)。
マイクロチップ社以外の製品では、日本国内では、ソリトンウェーブ社のJDMプログラマ対応の書き込みソフト
SP Writerマイクロテクニカ社のPICライター EPIC-200RSEPIC-200USBがPIC10F20xシリーズに対応しています(2005年6月22日現在、FENG3調べ)。
現在のところ、市販製品以外のフリーの書き込みソフトやハードでPIC10F20xシリーズに対応しているのは、Einstein氏開発した AN589改良型ライタとその書き込みソフトの
PICer
Wolfgang Büscher氏の開発したシリアルまたはパラレル接続ライタに対応した書き込みソフト WinPic があります(2005年6月22日現在、FENG3調べ)。

「穀つぶしみたいに食べ過ぎたらだめよ」「でも、どうしておかあさんは8本足なの?」「それはね、大きくなって重たくなったから、足が余分にいるんだよ」

まるで米粒やごま粒にたかっている虫のようですね。ご飯の「ふりかけ」の1つぶサイズです。

[HOME]


PICkit1 FLASH Starter Kit

PIC10F20xシリーズにプログラム書き込みをおこなうには、少ピンPIC用のマイクロチップ社の評価ボードである「PICkit1 FLASH Starter Kit」を使用するのが、手軽で安価です。この評価ボードの本体は、じつは、USB接続のPICライタなのです。ライタ部分には低速USB用のPIC16C745をUSBインターフェースとライタ・評価ボードの制御用に採用しており、HIDデバイスとして動作しますので、特別なドライバは必要ありません。

発売当初に購入した初期ロットのものなので、ボードの色だけでなく、付属品やファームウェアが最新のものとことなっているかもしれません。基板に実装されている部品も、微妙にことなっているようです。

開発用のユニバーサル基板は、切り離して使ったほうが何かと便利です。ユニバーサル基板のコンデンサのリードピッチは、アキシャル・リードのセラミック・コンデンサ用みたいなので、日本でよく使う2.54mmピッチのセラミック・コンデンサは挿入しにくいでしょうね。なお、基板周囲のその他の部品はPICkit1には付属していません。ご自分でおそろえください。

写真の右がBFMP(Baseline Flash Microcontroller Programmer)、左がPICSTART-Plus、MPLAB-PM3、MPLAB-ICD2、PICkit1、BFMP用のアダプタです。

[HOME]


ファームウェアとPC側ソフトウェアのバージョンを確認

このPICkit1でPIC10F20xシリーズにプログラム書き込みをするためには、Windows98SE以上のOSが搭載されたパソコンが必要になります。また、MPLAB-IDEと組み合わせて使用する場合、OSのバージョンによっては、デバイスを先に選択しないと PICkit1 が認識されないなどの問題があるようですが、まだ確認していません。重要な点は、PICkit1でPIC10F20xシリーズに書き込むためには、PICkit1のファームウェアのバージョン 2.0.1 以上のものが必要だということです。また、PC側ソフトウェアは、PICkit1 Baseline Flash Programmer(バージョン 1.20.0 以降の最新版が必要です)、 または MPLAB IDE(6.11以前は不具合があるのでバージョン7.10以降の使用をおすすめします)を使用します。
PICkit1 Flash Baseline Programmer は最新のキットやBFMPには同梱されていますが、私が買った
「PICkit1 FLASH Starter Kit」をパッケージには同梱されていませんでした。また、ファームウェアのバージョンも1.0.0 で、同梱されていたPC側ソフト PICkit1 FLASH Starter Kit のバージョンも 1.1 という、かなり初期段階の製品でした。つまり、わたしの場合はPIC16C745を取り替える必要があったわけです(注意! ここで説明しているのは、あくまでも初期に出荷されたPICkit1についてです。PICkit1 に搭載されている PIC16C745 は再書き込み不可能なOTPのデバイスですので、それを消去できませんし、内部に書き込まれたファームウェアを最新のもので上書きすることもできません。ファームウェアを新しいものに取り替えたい場合は、PICkit1を購入された販売店に相談されるか、アップグレードキットを購入されるか、あるいはPIC16C715にプログラム書き込みできる環境があれば、ご自分で新しいファームウェアを書き込んだ新しいPIC16C745に取り替える、という3つの方法があります)。

注:PIC10F20x シリーズに対応したPICkit1用のファームウェアのアップグレードキットは、マイクロチップ社の通販サイト「buy.Microchip」から5米ドルで購入することができます(UK164101 - PICKIT 1 FIRMWARE UPGRADE KIT) --2004/12/05補足。

PICkit1のファームウェアのバージョンが 1.0.0 と表示されています。ためしにPC側ソフトウェアの PICkit1 Flash Baseline Programmer で PIC10F200 を読み込んでみましたが、ごらんのとおりです。

[HOME]


ファームウェアをPIC16C745(JW)に書き込む

マイクロチップ社のサイトからダウンロードして解凍してできる最新のファームウェア、PICkit1 PIC16C745 V202 ChkSum E96D.hex(最新の PICkit1 Baseline Flash Programmer をダウンロードしてインストールした先のフォルダにあるファームウェア、PICkit1 16C745 Firmware V202.hexもおなじもの)を、PICライタ5号機V2を使って新しいPIC16C745に書き込みました。じつは、私には、マイクロチップ社の PICtail SIGNAL ANALYSIS BOARD に同梱されていた最新のファームウェアが書き込まれたPIC16C745があるので、こうした作業は不要なのですが、PICライタ5号機V2の動作テストをかねて、他の方の参考になればと考えて、ファームウェア・チップをつくってみたわけです。ファームウェアの書き込みには、紫外線消去の窓付き(JW)タイプの PIC16C745 を使用しましたが、OTPタイプの PIC16C745 でももちろんかまいません。PIC16C745 は、メモリへの書き込みを確実にするために何度も上書きするプログラミング・アルゴリズムを採用していますので、プログラムコードのサイズにもよりますが、プログラムの書き込みにはおなじメモリサイズのフラッシュメモリタイプのPICの何倍も時間がかかります。

注:秋月のPICライターをつかってPIC16C745にPICkit1のファームウェアを書き込む場合は、PIC16C745のIDロケーションに0x0040が書き込まれてしまいます。書き込みとベリファイは正常に終了し、プログラムの実行自体も問題ありませんが、秋月のPICライター以外のライターを使ってファームウェアを書き込んだPIC16C745を秋月のPICライターを使ってベリファイすると、チェックサムエラーになります。これは、秋月のPICライターでIDロケーションの扱いがことなるために、チェックサムが一致しないためだと推測されます。IDロケーションを使用する場合は問題になりますので、この問題を避けるには、秋月のPICライターの書き込みソフト「PIC ProgrammerV4」の「IDワード」に直接、ただしい値を入力します。たとえば、IDロケーションがブランクなら0x00FFと入力します(2005年7月27日現在)。

写真は、PICライタ5号機V2を使った書き込みのイメージです。このライタでPIC16C745にプログラム書き込みをするには、プログラミング電圧の上昇がすこし不足しますので、P-channel MOS-FET のゲートとソースをテストリードなどで短絡させてVDDを常時オンにする必要があります(PICライタ5号機V2改では短絡は不要でそのまま書き込めます。SW2で Vdd First を選択します)。JDMプログラマではそういうことをしなくても、VDDは常時オンです。お手持ちのJDMプログラマでは、28ピンのアダプタを製作すれば、PIC16C745に書き込むことができます。

PIC16C745を新しいファームウェアを書き込んだものと換装してからソフトを起動すると、みごとにファームウェアのバージョンが新しくなっていることがわかります。下記アダプタを使用してPIC10F200 を読み込んでみると、プログラムメモリの最終番地に書き込まれた内部発振器の補正値が見えました。

[HOME]


アダプタの製作

つぎに問題となるのが、3mmしかない SOT23 パッケージの PIC10F20x シリーズに PICkit1 を使ってどのようにプログラムを書き込むか、という問題です。マイクロチップ社純正のアダプタボードは、ベースライン系列のPICを他のプログラマ上でも使えるようにつくられているので便利なのですが、けっこう高そうですし、なかなか入手できません。SOT23 用のソケットそのものが、かんたんには入手できないのではないでしょうか。そのためかどうかはわかりませんが、マイクロチップ社のサイトでは、このアダプタボードの詳細が、まるで「必要な方は自作してください」とでもいわんばかりに公開されているのです(「FREE Adapter downloads to help you build your own system」と書かれています)。DIPタイプの 10F20x シリーズや、10F206 を使ったホビーキットも発売しているのですから、数個程度の極小PICを使う趣味の工作程度では、高価なアダプタボードは、作って売る側もそれを買う側も「割に合わない」のかもしれませんね。というわけで、PICkit1 のボード上のDIPのほうの14ピンソケットに挿入するタイプのアダプタを製作しました。

マイクロチップ社のホビーキットです。変換基板と基板対基板の連結ピン、PIC10F206がそれぞれ5組で1セットです。PICkit1のボード上のソケットにそのまま挿入できるので、アダプタボードは不要です。基板のフットプリントにはハンダが盛ってありますので、書き込み用のアダプタとして使用するのは、PIC10Fが動かないように厚紙などで位置決めの治具をつくるとよいでしょう。

片面ガラスコンポジット感光基板を使用してつくりました。ホビーキットとはピン配置が異なります。PICkit1や標準のJDMプログラマでプログラム書き込みができます。ご要望がおおければ、そのうちチップもふくめて配布コーナーに登場するかもしれません(わたしの時間があれば、ですが)。

ダウンロード アダプタを自作したい方のために、PCB製作用のPDFファイルをアップロードしておきました(2004年12月17日)。パターンを反転して鏡像にするのをわすれていましたので、修正しました(2005年7月15日)。

ピン配置 PDIPとホビーキット、FENG3のアダプタのそれぞれのピン配置です。

ピン配置対照表
 ピン番号 PDIP(8ピン) ホビーキット FENG3の
1 N/C VDD VDD
2 VDD N/C N/C
3 GP2 N/C GP2
4 CLK VPP VPP
5 DATA GP2 N/C
6 N/C CLK CLK
7 VSS DATA DATA
8 VPP VSS VSS

ICSP用アダプタ PDIPとIPICkit1 や JDMプログラマの8ピンPIC用のソケット位置に挿入して ICSP をおこなうためのアダプタ(ケーブル)です。

8ピンの丸ピンDIPソケットを使用しました。配線は、VDD(1番、赤)、VPP(4番、紫)、クロック(6番、黄)、データ(7番、緑)、VSS(8番、黒)、です。

[HOME]


プログラムの書き込み

PICkit1 とこのアダプタを使って、PIC10F20x へプログラムを書き込みました。PIC10F200 を使用しましたが、この小さな「虫」をアダプタに押さえ込むのに苦労しました。輪ゴムで「虫」を動かないようにしたり、「虫」の足を押さえつける枠をこしらえたりと試行錯誤したのですが、最終的に落ち着いたのが下の写真の方法です。アルミ製のヒートクリップの嘴(くちばし)をやすりで加工してソケットとアダプタの隙間に入るようにしました。また、嘴のぎざぎざをならして平らにしました。このヒートクリップで押さえ込むと、「虫」は観念してプログラムを書き込まれるあいだ、じっとしていました。やれやれ…。

クリックすると、画像を拡大できます。

[HOME]


PIC10F20xをつかった電子工作

この小さな虫のようなPICをつかってつくるものといえば、やはり、小さなものでしょう。

PIC10F206をつかったナイトライダー

PIC10F206でフルカラーLEDの点灯

[HOME]

2007年1月31日更新

2004年12月4日作成