2019年07月23日 | 更新。 |
ICSPはISP(In-System Programming)とも呼ばれ、マイクロコントローラ(マイコン)やPLDなどのプログラム可能な電子デバイスに、システムに組み込んだ状態で(基板に実装した状態で)プログラムを書き込む事を指します。
ICSPには、あらかじめプログラムを書き込んだデバイスをシステムに組み込む場合と比較して、再プログラムする際に、デバイスをシステムから取り外す必要がないという利点があります。
また、あらかじめプログラムを書き込んでからシステムに組み込む方式(図1参照)では、デバイスを再プログラムするためにはDIPやPLCCなどの、ソケットを使用できるパッケージを選択する必要がありましたが、ICSPの場合では、QFP、DFN、BGAなどの、基板から取り外しのできないパッケージを採用しても、デバイスの再プログラムが可能となります(図2参照)。
さらに、DIPやPLCCなどの、ソケットを使えば取り外しの利くパッケージのデバイスでも、ICSPを採用することにより、再プログラムの際にデバイスの取り外しと再取り付けの手間がなくなるため、頻繁に再プログラムを行う開発段階においては、時間や手間の削減になります。
ICSPはAVRマイコンやPICマイコンでも採用されています。それぞれのマイコンでのICSPについて説明します。
AVRマイコンでは、ICSPによるプログラムの書き込みをするために、図3および写真1に示す様な2列×3ピンのヘッダを基板に設けます。
VCC端子は、AVRマイコンの電源端子に接続します。ICSP用ヘッダに接続する書き込み器は、AVRマイコンと信号レベルを合わせるために、VCC端子から電源を取ります。
/RESET端子は、AVRマイコンをICSPのモードに移行するために使用されます。ICSPが働くのは/RESET端子がアクティブ(LOW)の場合だけです。
MISO、MOSI、SCKの3つの端子は、SPIインターフェースを形成し、このSPIインターフェースによりプログラムの書き込みを行います。
写真2に、代表的なICSP書き込み器であるAVRISP mkIIを示します。また写真3に、AVRISP mkIIとAVRマイコンの載った基板の接続例を示します。
PICマイコンでは、ICSPによるプログラムの書き込みをするために、図4および写真4に示す様な6ピンのヘッダを基板に設けます。また、図5に示すような、RJ11コネクタ(電話線に使われるモジュラージャックコネクタ)をヘッダの代わりに用いることもあります。
VPP/MCLR端子は、PICマイコンをプログラミングモードに移行させるための電圧を供給するピンです。このピンは、PICマイコンのMCLRピンまたはVPPピンに接続します。プログラミングモードに移行するのに必要な電圧はPICマイコンの種類ごとに異なりますが、5V動作のPICマイコンでは、フラッシュメモリ書き換えのための、VDDより高い電圧を使います。3.3VのみのPICマイコンでは、この端子から、プログラミングモードに移行するためのロジック信号を送ります。
VDD端子は、PICマイコンのVDDピンに接続します。書き込み器側のロジック信号のレベルをPICマイコンに合わせるためにこの端子が使われますが、設定によっては、VDD端子からPICマイコンに電源を供給することもできます。
VSS端子はPICマイコンのVSS端子に接続します。すべての信号の基準電位になります。
ICSPCLK端子は、シリアルインターフェースのクロック信号を供給します。このクロック信号は、必ず書き込み器側から供給されます。
ICSPDAT端子は、シリアルインターフェースのデータ信号を入出力します。この信号線は双方向で、通信フォーマットに従い、書き込み器とPICマイコンの双方が交互に信号線をドライブします。
AUX/PGM端子は、比較的新しいPICマイコンにおいて、定電圧プログラミングのモードに移行するために使用されます。この端子を使わないPICマイコンではNC(非接続)にします。
写真5に、代表的なICSP書き込み器であるPICkit3を示します。また写真6に、PICkit3とPICマイコンの載った基板の接続例を示します。
商品名 | Arduino用ブートローダ/スケッチライタキット | |
税抜き小売価格 | 3000円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino用ブートローダ/スケッチライタキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタ(完成品) | |
税抜き小売価格 | 3600円 | |
販売店 | スイッチサイエンス マルツ | |
サポートページ | Arduino用ブートローダ/スケッチライタ(完成品)サポートページ |
商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino Uno用ブートローダライタシールドキットサポートページ |