Skip to content

ICSP_Connector

askn37 edited this page Sep 6, 2024 · 23 revisions

ICSPコネクタ端子配列

ここでは AVR関連を中心に見かけるコネクタの端子配列について概説する。 図の端子配置は基板上から見下ろした向きである。 必要な場合は、書込器側はホスト、実装側はターゲットまたはクライアントと呼ぶ。

最近の潮流に従いMaster/Slaveとは書かない。 日本語では特段侮蔑的ニュアンスを持たないので普通に主装置/従装置と書くが。

後半では AVR-ICSP 用途以外の多様な配列も比較のために掲載する。

AVR-ICSP MIL/6P 公式

AVR-ICSP MIL/6P Type-ISP

  • Arduino UNO とその互換機
  • ISP方式の AVR全般

MIL/6P-ISP

一番良く見かけるISP方式用の(標準)MIL/6Pヘッダ。 大抵は 100mil 2x3 ピンヘッダだが、 ボックスヘッダの場合は3番横が切り欠きになり IDC/6Pリボンケーブルが刺さる。 偶数端子列のほうが縦型ヘッダでは基板端、 横型ヘッダでは基板面側だ。

ISPの電気的実体はSS/CS信号がないだけの SPI3線式シリアルなので実装側はその従装置である。 VCCには実装側のIOREFが出力される。 なので実装側が「給電側」書込器側が「受電側」(端子名はVTG)になるのが普通。 IOREFは1.8V〜5.5VまたはOFFが許されるが、プログラミング時は 4.5V以上の動作電圧が推奨される。

一般にISPIn-System Programming の意味で、その下位にICSP In-circuit serial programming の概念を内包するものだが、ATMELの場合は両者が逆転したような用語の用法となる。つまりISPはプログラム方式の一種の名称かつコネクタ配線の名称で、ICSPがそれら複数を束ねた上位概念の名称になる。

注意が必要なのは/RST端子が高電圧書込時(HV)に12V受電となることだ。 なのでこれがAVRに直結とならない場合、回路設計に特別な配慮が求められる。

AVR-ICSP MIL/6P Type-TPI

  • TPI方式の AVRrc系列(reduceAVR)
  • ATtiny4/5/9/10/20/40/102/104

MIL/6P-TPI

TPI方式の場合、ISPよりも制御信号がひとつ少なく4番端子がNC(未接続)となる。 それ以外のコネクタ形態は同じで、/RSTのHV制御も同じ12V受電だ。 プログラミング時は 4.5V以上の動作電圧が推奨される。

TPIの電気的実体は「単線同期式RS485」から差動回路を省いたもので、 TDATTxD/RxD共用で使われる1線式シリアル通信だ。 つまり書込器側はこの線の送受信方向をTDIR信号で制御することが期待されている。 TCLKは同期式RS485XCK信号そのものだ。 そのためRS485対応USARTを持つ MCUを書込器に使用すると簡単にインタフェースが実装できる。

TPI制御が必要な AVRは、カタログを見る限りわずか8種類の型番しかない。 うち4種類は6ピンしか外部端子がないにも関わらず 5本を書込制御に使うのでICSP回路設計とする利点が見出しづらい。 一応やればできるという扱いでもあり、 TPI対応書込器は(ましてHV対応ともなると)非常に少ない。

しかし6端子外囲器の AVRは他にないのでPDI方式より死に体でないのが厄介。

AVR-ICSP MIL/6P Type-PDI

  • PDI方式の一部の AVR系列

MIL/6P-PDI

PDI方式は1線式同期シリアル通信で、現在はまず見ることがない。 対応する書込器も(PICkit4を除けば)終売した古いものしかなく、 事実上既に消滅しているようだ。 この方式は主に ARM参入以前に開発された AVR32や、その同世代の JTAG対応高機能 8-bit AVRに採用されている。 動作電圧は 3.8V以下でなければならないのが難しいところで、普通のAVRでは一般的な 5Vを印加することができない。 また最小44ピン以上の大型シリコンばかりなので制御端子も専用であり、HV制御は行われない。

1線同期式なのでハードウェア部分はTPIと配線が違う以外は同じ。しかしソフトウェアとしての制御プロトコル(ACC)はUPDIと実質同等である。
対応書込器が非常に少ないうえ15年以上もオープンハードウェア実装も存在しなかったが、 UPDI4AVR-USB によってようやく改善しつつある。

AVR-ICSP MIL/6P Type-UPDI(ver.1)

  • UPDI方式の AVR系列第一世代
  • megaAVR-0 tinyAVR-0/1/2

MIL/6P-UPDIv1

UPDI方式は"Atmel"が"Microchip"に買収されて以後登場した新しい通信規約で、 以後の新製品はすべてUPDIになっている。 ただしMIL/6Pが公式に採用されていたのはUPDI第1世代のみだ。 その信号端子は3本しか使われていない。 HV受電端子もUPDI端子が兼ねており旧来との互換性が失われた。

UPDIの電気的実体は「単線非同期式RS485」から差動回路を省いたもので、 UPDITxD/RxD共用で使われる単線式シリアル通信だ。 つまり書込器側はこの線の送受信方向をTDIR信号で制御することが期待されている。 この点ではTPIPDIと非常に似ており、単にXCK信号が欠けているだけだ。 そのためRS485対応USARTを持つ MCUを書込器に使用すると簡単にインタフェースが実装できる。

megaAVR 系統はピン数に余裕のある大型シリコンのため、HV制御は使用しない。 一方で tinyAVR 系統は小型シリコンのため、有効ピン数を稼ぐためのHV制御に対応する。 このHV書込制御(tinyAVR系統のみ)の方法もISP世代から変化しており、 従前は書込中ずっと12Vを印加していれば済んでいたものが、 UPDI活性化直前に 1msの 12Vパルスを入力する形態に改定された。

この回路設計が特にUPDIはオープンドレイン単線双方向通信なので、 異電圧対応しながら実装するのが非常に厄介。 ホストMCUがXDIR端子制御できるなら、 外部に能動的な高耐圧トライステート素子を置いて"Push-Pull"変換するのが本式だろう。

AVR-ICSP MIL/6P Type-UPDI(ver.2)

  • UPDI方式の AVR系列第二世代以降
  • AVR-Dx/Ex

MIL/6P-UPDIv2

AVRの刻印から"Atmel"ロゴが省かれ、 名実ともに"Microchip"ブランドになると共に UPDI方式にも第二世代が登場した。 公式のデバッガ/書込器も「PICkit」シリーズに統合されたため、 長らく使われてきた MIL/6Pコネクタも公式推奨から外れた。 なのでこの端子配列も派生配列なのだが、 比較する上でも重要なのでこちらに掲載する。

UPDI(ver.2)は、 UPDI(ver.1)と電気的にも論理的にもプロトコル互換ではあるが NVMコントローラ制御方式に互換性がないため、 ファームウェアが対応していない書込器は全く使えない。 特に AVR-Dxでは512バイトブロック(従来の4倍サイズ)書込対応が必要なので、 メモリが少ない MCUでは実装負担が大きくなり、 対応できる品種もあまり多くはないようだ。

端子面でのUPDI(ver.1)との違いは、削除されていた/RST端子が復活したことだ。 (HV非対応のAVR-DA/DB系統以外) そしてHV書込(これは AVR-Dx/Ex 系統のみが要求する)の印加電圧が 標準値7.5V、絶対定格8.5Vに低下したうえ、これも/RST端子印加に戻された。 しかし AVR-Dx/Ex の絶対定格では/RSTへの 12V印加は定格外なので 旧来からの回路流用はやはりできない。

もっともISP以前の回路を7.5Vに変更するだけとも言えるので実装は相当楽である。 この点でUPDI(ver.1)にあった実装困難性は大幅に改善された。

なおこの配列は、コネクタを逆接しても次の経路で電流が逃されるため 事故になりにくいという特徴がある。

  • VCCが接続されるのは/RST端子で、HV対応なら元々高耐圧である。
  • 印加された電圧は内蔵プルアップ抵抗を介してVCCに接続される。
  • GNDが接続されるのはUPDI端子で、これは内蔵プルアップ抵抗を介してVCCに接続されている。
  • 結果的に電流は、2個の直列プルアップ抵抗を通るだけでGNDと地絡しない。

AVR-JTAG

AVR-JTAG MIL/10P

  • ATMEL-ICE / JTAG-ICE3

MIL/10P-JTAG

公式コネクタ規格は一箇所にまとめておきたいので便宜上ここに置くが、 これはATMEL公式デバッガで使われる MIL/10P JTAGコネクタの端子配置図だ。 ISP/SPIPDITPIUPDISWDDGIJTAGに切り替えて使用できる。 ただし一般的な用途でのVCPは定義されておらず、使用できない。

コネクタには 100milフルピッチボックスヘッダと、 50milハーフピッチボックスヘッダの2種があるが 端子配置に変わりはない。書込器側からの電源供給はない。HV書込には対応しない。

これはISPTPIUPDIは最大5V動作だが、それ以外の動作電圧は最大3.3Vである。自己給電では両者を安全に混在させることができないのが理由だろう。

フルピッチボックスヘッダの大きさは論外だが、 ハーフピッチボックスヘッダの実サイズは 100mil 2x3 ピンヘッダと実装面積に大差はなく、かつ背が低い。 JTAG用途で普及しているハーフピッチIDC/6Pリボンケーブルが利用できるので、 このコネクタをICSP用に実装する選択は十分ありえる。 もっとも PCBA製造ではない自作スクラッチで使うには、 やはりハーフピッチは選びづらいのが実情だろう。

同人ハードなどの小ロット量産目的で選択するのも、実のところ良くない。 公式デバッガの類には量産書込機能がないので面倒が先に立つ。 量産書込器も自作する算段となると、フルピッチのほうが実用性も汎用性も勝るのだ。

Microchip PICkit4 ICD SIL/8P

  • Microchip公式デバッガ/プログラマー

PICkit4

PICkit4は"Microchip"公式の書込器で"Atmel"買収後に発売された現行最新機種だ。 それ以前のPICkit3から2ピン増えて、100mil SIL/8Pになっている。 書込器側がメスソケットなので部品や筐体に干渉しなければ実装基板直刺しができる。 単列だが逆接での短絡は起こしにくい配列ではあるものの、 配線用には専用ケーブルがなく、 もっぱらバラ線ケーブルで行うタイプなのであまり事故防止の役には立っていない。 VCPも使用できない。

ちなみに使われている MCUはATSAME70Q21B改めPIC32CZ2038CAである。

対象実装側に合わせて毎回ファームウェアを入れ替えて使うような感覚なので 複数種類の MCUを取り替えながら使う運用には向いていない。 ちょっと本気出してブレーク&トレースしようという場面でもなければそう使いやすくもない。 なにより筐体が大きくデザインもダサいものだから、使っていても眺めていても面白くない。

実装側の視点では、この配列に合わせておけばPICkit4一台で全部できるぶん配線に悩まずとも済む。 しかし単列8端子は横幅20ミリ以上になるので基板上では邪魔。 ハーフピッチにすると変換ケーブルも必要という問題が出てくる。

UPDI用途に限れば3端子ないし4端子だけ生やせば良いのでまだ悩まないが。

6番端子がHV対応ではあるが公称12V出力なので、 8.2V仕様である AVR-Dx/Ex への対応はよくわからない。 おそらくミリ秒未満の瞬発パルスであるなら可能なのだろうが、 その場合/RST端子は当然6番端子への接続だろう。

tinyAVR-0/1/2 へのHV書込は端子配列を見れば判るが、できない。 実は公式書込器でこれらの系統にHV書込できる製品は遂に発売された形跡がない。 AVR-Dx/ExHV印加先が/RSTに戻されたのも、旧来との互換性を保つためだろう。

AVR-ICSP MIL/6P コンパチブル

AVR-ICSP MIL/6P Type-microUPDI

  • UPDI方式の AVR系列第一世代
  • megaAVR-0 tinyAVR-0/1/2

MIL/6P-microUPDI

この配列はUPDI(ver.1)から派生した microUPDI 形式の配列で、 megaAVR-0tinyAVR-0/1/2 対応書込器の多くが採用している。 "Atmel"のmEDBGオンボードデバッガが持つ「UARTパススルー」(VCP)能力を活かすべく TxDRxDを追加したのが特徴だ。 デバッガとシリアル通信とUPDI書込が共存できて便利という優れものである。 ただし「当時は」。

当然ホスト側はTxDRxD端子位置がクロスになる。
逆接予防の観点からはVCCの点対称端子はNC/RSTか プルアップ抵抗付の端子とするのが鉄則だが、なぜそうしなかったかの理由は解らない。

SerialUPDIが主流になった今日でもこのコネクタ配列はまだ健在だが、 AVR-DD の登場で事情が変わってしまった。 UPDI(ver.2)にある/RST端子(HV書換に必要)がないうえに NC端子位置にそれを配置してしまうと (PICkitではない)旧来の書込器とは変換ケーブルを共有もできない。

複数の書込器を用途別に使い分ける場合、 同じ端子のケーブルを使い回せないのは取り間違いや紛失に対して弱い。 個人用途ならともかくグループ人員で使い回すような現場運用では問題になる。

AVR-ICSP MIL/6P Type-UPDI4AVR

  • UPDI方式の AVR系列すべて
  • megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex

MIL/6P-UPDI4AVR

UPDI4AVR が採用している端子配列で、 UPDI(ver.1)UPDI(ver.2)の両方の機能を兼ね備えている。 ローカル規格に過ぎないが現行既発売済UPDI方式 AVR全種に対応しており、 HV書換も2電源2方式(TPIも含めれば3方式)に対応する。

端子名のHTCR"Host TxD to Client RxD"
HRCT"Host RxD from Client TxD"の意味で「UARTパススルー」(VCP)に対応する。 それを使用しないぶんにはmicroUPDImEDBGに対して上位互換だ。 逆接しても回路を壊す可能性は低い。 旧来のIDC/6Pリボンケーブルを共用するコネクタとしてはおそらく最も多機能だろう。

HTCRが3番なのは旧来の書込機だとそれがSCKなので、動作設定を間違えても ターゲット側はRxDで受けることになって影響がないからだ。 HRCTは消去法で4番に納まっている。 そしてHTCR出力はXCK信号出力も兼ねられるので、配線はそのままでTPI方式に切り替えることもできる。 更にVCCを 3.3Vに制限し、/RSTXCK信号をコピー出力できるとPDI方式に対応することもできる。 UPDI4AVR-USB はその実装応用の実例だ。

AVR-ICSP SIL (Single In-Line)

AVR-ICSP SIL/4P Type-UPDI(ver.2)

  • UPDI方式の AVR系列第二世代/第三世代
  • AVR-Dx/Ex

SIL/4P-UPDIv2

AVR-Dx/Ex のデータシートに掲載されている公式の推奨UPDI(ver.2)コネクタは、 100mil/単列4Pの単純なものだ。 だが一応公式ではあるものの、採用を躊躇わせる弱点が3つもある。

  • 公式デバッガ/書込器にこの端子配列のものは存在しない。
  • 殆どの AVR製品の端子配列と1対1で対応しておらず、SILである利点が薄い。(UPDI線が他の3本を跨ぐことが多い)
  • 誤って逆接した場合、MOSFET素子のクランプダイオードを通して直ちに短絡する。

物理的に短絡させやすいという欠点は、結構致命的だ。 単列コネクタには逆刺阻止策が物理的に課し難いので、余計に事故防止が難しい。 なので明確な理由がなければ、この配列を積極的に採用することには懸念がある。

AVR-ICSP SIL/6P Type-ISP layout "523146"

  • ISP方式の AVR全般

SIL/6P-ISP-523146

この単列6端子配列は、ISP方式用の(標準)MIL/6Pヘッダの信号を 100mil SIL/6Pヘッダ用に並べ替えたものだ。 固有名称は特にないが、 元の書込器6端子の信号が"523146"の順番で現れるため、 ここでは523146配列と呼ぶ。

この端子配列の明快な長所は、中央の4端子がISP方式を採用した AVRほぼ全製品の端子配列と、同じになっていることである。 両端の/RSTGNDも他の信号と交錯することがほとんどない。 まして8P外囲器の ATtiny13ATtiny85 とは 最短配線長で直結できる。

この利点は回路をブレッドボードや、ユニバーサル蛇ノ目基板で バラックを組んだ時に、はっきりと実感できる。 配線を考えるのがとても楽なのだ。 なので MIL/6P との変換アダプタをひとつ用意すれば ほぼ全ての場面で使いまわしが効く。 実装基板に対しても廉価な 100milピンヘッダを用意すれば良いだけなので コストパフォーマンスにも優れる。 ISP方式AVRでの自作用途では、これが鉄板である。

AVRの向きに対して端子配列の向きも一意に定まるため 単列のわりには方向が分かりやすく、逆接予防になっているのも長所だ。 逆接しても/RSTが地絡しているので焼損事故をおこしにくい。

AVR-ICSP SIL/6P Type-UPDI layout "512643"

  • UPDI方式の AVR系列すべて
  • megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex

SIL/6P-UPDI-512643

この単列6端子配列は、UPDI方式用の(標準)MIL/6Pヘッダの信号を 100mil SIL/6Pヘッダ用に並べ替えたものだ。 固有名称は特にないが、 元の書込器6端子の信号が"512643"の順番で現れるため、 ここでは512643配列と呼ぶ。 UPDI4AVR の第二コネクタに使われている。

その発想はSIL/6P Type-ISP layout "523146"と全く同様で、 megaAVR-0AVR-Dx/Ex 系統の 28ピン以上の外囲器全種の端子配列と共通になっていることだ。 従って基板上の配線コストも最小である。

しかし523146配列に比べると、逆接に極端に弱いという短所がある。 また1-6の並び順が逆向きになることもあり、 実装は楽だが運用には迷いが生じるという立ち位置にある。

それでもブレッドボード直刺しできる魅力が大きいのが悩ましい。 なのでこの端子配列はバラ線ケーブル用だろう。 その用途だと逆接に弱い問題は緩和される。

AVR-ICSP SIL/6P Type-UPDI layout "523146"

  • UPDI方式の AVR系列すべて
  • megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex

SIL/6P-UPDI-523146

現在の Zinnia Duino に使われているサブ端子配列で、 UPDI方式用の(標準)MIL/6Pヘッダの信号を SIL/6P用に並べ替えたものだ。 配列の順番はSIL/6P Type-ISP layout "523146"と同じで、 単列-複列変換ケーブルは旧世代と共通利用ができる。

当然のことながらSIL/6P Type-UPDI layout "512643"とは互換性がない。 実装基板上も全部の配線が交錯するので、回路パターンを引きにくい短所がある。 しかし逆接事故には比較的強く、運用はしやすい。

逆では/RSTGNDが繋がるのでプルアップ抵抗を介し、 VCCHRCT:TxDに入るが既定は Hi-Z なので浮きになる。

実運用では(MIL/6Pが別にあるので)100milピンヘッダではなく 50milスルーホールとして、MAC-8のハーフピッチコンスルー を使ってワンタッチコンタクトすることがほとんどになっている。 なので変換ケーブルは実質専用となるので、 523146配列である理由が薄れてしまっている。

作った本人からして「過渡的なもの」という印象がある。 新規設計非推奨。

AVR-ICSP SIL/6P Type-UPDI layout "342156"

  • UPDI方式の AVR系列すべて
  • megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex

SIL/6P-UPDI-342156

この単列6端子配列は、UPDI方式用の(標準)MIL/6Pヘッダの信号を SIL/6Pヘッダ用に並べ替えたものだ。 固有名称は特にないが、 元の書込器6端子の信号が"342156"の順番で現れるため、 ここでは342156配列と呼ぶ。

事実上ファームウェアアップデートが主用途で、1.27ピッチのスルーホールとして PCB上に直接実装され、コンタクトには MAC8コンスルーまたはポゴピンの使用が前提になっている。

SIL/6P Type-UPDI layout "523146"の 逆接への弱さを回避するようGND端子位置を妥協しつつ配線コストを維持して SIL/6P Type-UPDI layout "512643"の使い勝手に近づけたもの。 標準MIL/6Pヘッダとの配線交錯は2ないし3本だ。

リボンケーブルやバラ線ケーブルを想定した場合、 交錯があるためブレッドボードとは1対1で対応しない。 だがそれ以外のコネクタ接続用途だと 実装側はPCBA製造前提と仮定できるので、これは欠点にはならないだろう。

逆接した場合、VCCUPDIに入ってプルアップ抵抗を介し、 GNDHTCR:Rxdに入るが既定は Hi-Z なので浮きになる。

JTAG/SWD

JTAG-ICE/J-LINK MIL/20P

  • 昔は全部これだった

JTAG-ICE/J-LINK

JTAGといえば昔からこれである。 フルピッチMIL/20PコネクタとIDC/20Pリボンケーブルを組み合わせて使う。 当然ながらボックスヘッダは大きい。 大きいが丈夫なので、実装面積に余裕のある大型基板では今でもこれをよく実装している。 そもそもこれを使うデバッガや本格的な測定機器はとても高価なのだから、 安易に他の規格に置き換えることもできないだろう。 なので何年経ってもこれが使いまわされるわけだ。 Arduinoシールドサイズのミニ基板にこれが生えてるのを見ると、流石に笑う他ない。 (Cypressェ…)

配列の特徴としては、偶数端子列が全部GNDになっていることだろう。 これは特に低品質なリボンケーブルのクロストークを抑えるためで、 コネクタ横に終端抵抗がずらりと並んでいるのもよく見る。 だが低品質ケーブルをそんな何フィートも引き回すほうが異常なので、 JTAG互換性は維持しつつ拡張信号に振り替えているメーカーも結構多い。 そのため*を付した線は互換性を期待してはいけない。 NC*はここに3V3を引いている場合があるし、 それどころかいまどき5V専用というターゲットも滅多になくなったので ARM用ともなると5Vsup*自体が3V3になってるケースもあったり、 当然そういう機材と一昔前の測定機器を、 コネクタが同じだからといって繋いでしまったら酷い目に合う。

結局、標準コネクタであるが故に、コイツが一番信用してはならない。

SWD MIL/10P

  • ARM系列汎用SWDインタフェース

SWD MIL/10P

ARM系列が普及するようになってから見られるようになった、 MIL/10Pコネクタ+IDC/10Pリボンケーブルの SWD方式インタフェース。 フルピッチ100mil と ハーフピッチ50mil の2種類があるが、 実装基板上に載っているのは昨今だとほぼハーフピッチの方だ。 書込器側のVTrefは受電用で、給電はしないのが一般的。

AVR-SAM MIL/10P

  • AVR-SAM系列 と Corted-M 系列用の汎用 JTAG/SWDインタフェース

AVR-SAM MIL/10P

ATMEL-ICEやその系列デバッガに搭載されている ハーフピッチMIL/10Pコネクタ+ハーフピッチIDC/10Pリボンケーブルの JTAG/SWD方式インタフェース。 このコネクタとケーブルの組み合わせは "Cortex-M"系列用の業界標準で、他社のものでも基本的には変わらない。

AVR-JTAG MIL/10Pとは端子配列が異なる。 ATMEL-ICEは両方のハーフピッチボックスヘッダを持っているため、 AVR-ISP使用時とはケーブルを差し替えて使い分ける。

"Microchip"は"Atmel"買収によって "Cortex-M"系列のATSAMシリーズを新たに PIC32CZシリーズとして展開するようになったため、 ATMEL-ICEも商標を変えて引き続き販売継続されている。

PICkitがこのコネクタをサポートしないので、棲み分けることにしたようだ。

AVR-SAM MIL/10Pは元々の経緯からJTAGSWDSPIDGIモードを 切り替えられる多機能性を持っている。 DGIは汎用USARTインタフェースで、全二重非同期/同期方式に対応できる。

ST-Link/V2 MIL/10P

  • STMicro SWDインタフェース(旧式)

ST-Link/V2 MIL/10P

"STMicro"のST-Link/V2といったらこれである。 フルピッチ100mil MIL/10Pボックスコネクタの SWD方式インタフェースだが、 IDC/10Pリボンケーブルよりもっぱらバラ線で使われることが多い。 SWD MIL/10PとはSWO端子位置が異なり、 2電源供給になっているのが大きな違いだ。 このため自作用途では廉価な互換機が大いに普及したが、 電源系に6端子も取っているので拡張性が全く無い。 なので"STMicro"公式ではもうこのタイプは使用しておらず、 STDC14に取って代わられた。

WCH-LINK MIL/10P

  • VCPモニター付の ST-Link/V2変種

WCH-LINK MIL/10P

フルピッチ100mil の MIL/10Pコネクタ SWD方式インタフェースで ST-LINK V2の変種。コネクタはピンヘッダでドングル型本体から生えている。 SWO端子はデバッグ用単線シリアルなので、 トレース&ブレークする必要がないのなら用がない。 nTRSTもプログラム書込用途では必須でもないので、 これをVCPモニター通信用途に変えてしまったものがこれだ。 ちょうど AVR-ICSP のmicroUPDIと同じような立ち位置である。 自作環境ではトレース機能よりシリアルコンソールの有無のほうが 遥かに重要性が高いから、この判断は至極真っ当であろう。 WCHの名を冠するように、WCH CH549Gを使っているものが リファレンス実装である。

CH32/STM32[WCH-LINK]

ST-Link/V3 "STDC14" MIL/14P

  • STMicro SWDインタフェース(現行)

ST-Link/V3 STDC14 MIL/10P

ST-Link/V3 "STDC14" MIL/14Pは MIL/14Pコネクタ+IDC/14Pリボンケーブルの SWD/JTAG方式デュアルインタフェースだ。 STDC14と通称されているこのコネクタには フルピッチ100mil と ハーフピッチ50mil の2種類があるが、 ハーフピッチSTDC14 Miniの方がもっぱらの主流である。

このコネクタの端子配列は ST-Link/V2 MIL/10Pではなく、 SWD MIL/10Pに対する上位互換である。 コネクタ左右に2端子ずつ増やし、2本は将来用の予備、 2本は常時VCPモニター用シリアル通信端子になっている。 SWDJTAGの切替は、11番端子のGNDが接地か抵抗入りかで判断しているようだ。

ST-Link/V2 "Nucleo" SIL/6P

  • STMicro "Nusleo"用 SWDインタフェース

ST-Link/V2 SIL/6P

"STMicro"のNucleoといったらこれである。 フルピッチ100mil SIL/6Pコネクタの SWD方式インタフェースだが、もっぱらバラ線で使われる。 これは単体では販売されているわけではなくSTM32 Nucleoシリーズの オンボード搭載ST-Link/V2として存在するが、 64端子以上の STM32を搭載している製品なら基板のスリットを切り離すことで 単体のデバッグボード部分が独立分割できるよう配慮されている。

そのボード上に生えている6端子の直列ピンヘッダがこれだ。 安いものだと実売2000円を切るのにデバッグ&トレースできるし、 仮想COMポート(VCP)も使えるので自作派には重宝する。

ESP32

ESP32 "Downloader" SIL/6P

  • ESP32用 UARTインタフェース

ESP32-DL SIL/6P

ESP32もプログラミングはUARTインタフェースなのだが、 EN端子とG0(GPIO0)端子を USB-UARTのDTRRTSで制御して PCからブートローダー動作を切り替えたりする形態が一般的だ。 ほとんどはオンボードで USB-UART変換を持たせているため、 外付けの"ダウンローダー"製品は他に比べて非常に少ない。 需要がないこともありフルピッチ"Dupont"コネクタ以外の採用も皆無である。

このESP32 "Downloader" SIL/6Pは "M5STACK"のESP32 "Downloader"に使われている配列で、 書込側は 100mil/6P直列ピンヘッダになっており、 ターゲットに直刺しするか、バラ線ケーブルで繋ぐ形態になっている。 ただし配列上、逆接は全く配慮されていない。

ESP32 "Downloader" MIL/6P

  • ESP32用 UARTインタフェース

ESP32-DL MIL/6P

これはESP32 "Downloader" SIL/6Pを MIL/6Pボックスヘッダに変換したもので、 AVR用フルピッチの IDC/6Pリボンケーブルを流用できるようにしたものだ。 流用するのはケーブルだけなので、端子配列は全く違う。 ESP32 "Prog"プログラマーなどで使われている。

ESP32 "JTAG" MIL/10P

  • ESP32用 JTAGインタフェース

ESP32-PRO MIL/10P

ESP32にもJTAG機能があるので既存のJTAGインタフェースが使えるのだが、 ESP32 "Prog"プログラマーなどでは独自の端子配列が使われている。 信号配列は"Cortex-M"標準やSTDC14の中央部と概ね互換だがSWD機能は持たない。 これは MIL/10Pボックスヘッダになっており、 ターゲットとはフルピッチのIDC/10Pリボンケーブルで接続する。 UARTについてはESP32 "Downloader" MIL/6Pと併用して使用する。

LINKS

multix.jp/てくにかるむ(休眠中)
Multix Zinnia Product SDK [*AVR]
AVR.JP(日本語訳)
AVR-LIBC(日本語訳)

Clone this wiki locally