-
Notifications
You must be signed in to change notification settings - Fork 0
ICSP_Connector
ここでは AVR関連を中心に見かけるコネクタの端子配列について概説する。 図の端子配置は基板上から見下ろした向きである。 必要な場合は、書込器側はホスト、実装側はターゲットまたはクライアントと呼ぶ。
最近の潮流に従い
Master/Slave
とは書かない。 日本語では特段侮蔑的ニュアンスを持たないので普通に主装置/従装置
と書くが。
後半では AVR-ICSP 用途以外の多様な配列も比較のために掲載する。
- Arduino UNO とその互換機
- ISP方式の AVR全般
一番良く見かけるISP
方式用の(標準)MIL/6Pヘッダ。
大抵は 100mil 2x3 ピンヘッダだが、
ボックスヘッダの場合は3番横が切り欠きになり IDC/6Pリボンケーブルが刺さる。
偶数端子列のほうが縦型ヘッダでは基板端、
横型ヘッダでは基板面側だ。
ISP
の電気的実体はSS/CS
信号がないだけの
SPI
3線式シリアルなので実装側はその従装置である。
VCC
には実装側のIOREF
が出力される。
なので実装側が「給電側」書込器側が「受電側」(端子名はVTG
)になるのが普通。
IOREF
は1.8V〜5.5VまたはOFFが許されるが、プログラミング時は 4.5V以上の動作電圧が推奨される。
一般に
ISP
は In-System Programming の意味で、その下位にICSP
In-circuit serial programming の概念を内包するものだが、ATMELの場合は両者が逆転したような用語の用法となる。つまりISP
はプログラム方式の一種の名称かつコネクタ配線の名称で、ICSP
がそれら複数を束ねた上位概念の名称になる。
注意が必要なのは/RST
端子が高電圧書込時(HV
)に12V受電となることだ。
なのでこれがAVRに直結とならない場合、回路設計に特別な配慮が求められる。
- TPI方式の AVRrc系列(reduceAVR)
- ATtiny4/5/9/10/20/40/102/104
TPI
方式の場合、ISP
よりも制御信号がひとつ少なく4番端子がNC
(未接続)となる。
それ以外のコネクタ形態は同じで、/RST
のHV制御も同じ12V受電だ。
プログラミング時は 4.5V以上の動作電圧が推奨される。
TPI
の電気的実体は「単線同期式RS485
」から差動回路を省いたもので、
TDAT
はTxD/RxD
共用で使われる1線式シリアル通信だ。
つまり書込器側はこの線の送受信方向をTDIR
信号で制御することが期待されている。
TCLK
は同期式RS485
のXCK
信号そのものだ。
そのためRS485
対応USART
を持つ
MCUを書込器に使用すると簡単にインタフェースが実装できる。
TPI
制御が必要な AVRは、カタログを見る限りわずか8種類の型番しかない。
うち4種類は6ピンしか外部端子がないにも関わらず
5本を書込制御に使うのでICSP
回路設計とする利点が見出しづらい。
一応やればできるという扱いでもあり、
TPI
対応書込器は(ましてHV
対応ともなると)非常に少ない。
しかし6端子外囲器の AVRは他にないので
PDI
方式より死に体でないのが厄介。
- PDI方式の一部の AVR系列
PDI
方式は1線式同期シリアル通信で、現在はまず見ることがない。
対応する書込器も(PICkit4
を除けば)終売した古いものしかなく、
事実上既に消滅しているようだ。
この方式は主に ARM参入以前に開発された AVR32や、その同世代の JTAG対応高機能 8-bit AVRに採用されている。
動作電圧は 3.8V以下でなければならないのが難しいところで、普通のAVRでは一般的な 5Vを印加することができない。
また最小44ピン以上の大型シリコンばかりなので制御端子も専用であり、HV
制御は行われない。
1線同期式なのでハードウェア部分は
TPI
と配線が違う以外は同じ。しかしソフトウェアとしての制御プロトコル(ACC)はUPDI
と実質同等である。
対応書込器が非常に少ないうえ15年以上もオープンハードウェア実装も存在しなかったが、 UPDI4AVR-USB によってようやく改善しつつある。
- UPDI方式の AVR系列第一世代
- megaAVR-0 tinyAVR-0/1/2
UPDI
方式は"Atmel"が"Microchip"に買収されて以後登場した新しい通信規約で、
以後の新製品はすべてUPDI
になっている。
ただしMIL/6P
が公式に採用されていたのはUPDI
第1世代のみだ。
その信号端子は3本しか使われていない。
HV
受電端子もUPDI
端子が兼ねており旧来との互換性が失われた。
UPDI
の電気的実体は「単線非同期式RS485
」から差動回路を省いたもので、
UPDI
はTxD/RxD
共用で使われる単線式シリアル通信だ。
つまり書込器側はこの線の送受信方向をTDIR
信号で制御することが期待されている。
この点ではTPI
やPDI
と非常に似ており、単にXCK
信号が欠けているだけだ。
そのためRS485
対応USART
を持つ
MCUを書込器に使用すると簡単にインタフェースが実装できる。
megaAVR 系統はピン数に余裕のある大型シリコンのため、HV
制御は使用しない。
一方で tinyAVR 系統は小型シリコンのため、有効ピン数を稼ぐためのHV
制御に対応する。
このHV
書込制御(tinyAVR系統のみ)の方法もISP
世代から変化しており、
従前は書込中ずっと12Vを印加していれば済んでいたものが、
UPDI
活性化直前に 1msの 12Vパルスを入力する形態に改定された。
この回路設計が特に
UPDI
はオープンドレイン単線双方向通信なので、 異電圧対応しながら実装するのが非常に厄介。 ホストMCUがXDIR
端子制御できるなら、 外部に能動的な高耐圧トライステート素子を置いて"Push-Pull"変換するのが本式だろう。
- UPDI方式の AVR系列第二世代以降
- AVR-Dx/Ex
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
と地絡しない。
- ATMEL-ICE / JTAG-ICE3
公式コネクタ規格は一箇所にまとめておきたいので便宜上ここに置くが、
これはATMEL
公式デバッガで使われる MIL/10P JTAG
コネクタの端子配置図だ。
ISP/SPI
、PDI
、TPI
、UPDI
、SWD
、DGI
、JTAG
に切り替えて使用できる。
ただし一般的な用途でのVCP
は定義されておらず、使用できない。
コネクタには 100milフルピッチボックスヘッダと、
50milハーフピッチボックスヘッダの2種があるが
端子配置に変わりはない。書込器側からの電源供給はない。HV
書込には対応しない。
これは
ISP
、TPI
、UPDI
は最大5V動作だが、それ以外の動作電圧は最大3.3Vである。自己給電では両者を安全に混在させることができないのが理由だろう。
フルピッチボックスヘッダの大きさは論外だが、
ハーフピッチボックスヘッダの実サイズは
100mil 2x3 ピンヘッダと実装面積に大差はなく、かつ背が低い。
JTAG
用途で普及しているハーフピッチIDC/6Pリボンケーブルが利用できるので、
このコネクタをICSP
用に実装する選択は十分ありえる。
もっとも PCBA製造ではない自作スクラッチで使うには、
やはりハーフピッチは選びづらいのが実情だろう。
同人ハードなどの小ロット量産目的で選択するのも、実のところ良くない。 公式デバッガの類には量産書込機能がないので面倒が先に立つ。 量産書込器も自作する算段となると、フルピッチのほうが実用性も汎用性も勝るのだ。
- Microchip公式デバッガ/プログラマー
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/Ex でHV
印加先が/RST
に戻されたのも、旧来との互換性を保つためだろう。
- UPDI方式の AVR系列第一世代
- megaAVR-0 tinyAVR-0/1/2
この配列はUPDI(ver.1)
から派生した
microUPDI
形式の配列で、
megaAVR-0、tinyAVR-0/1/2 対応書込器の多くが採用している。
"Atmel"のmEDBG
オンボードデバッガが持つ「UARTパススルー」(VCP
)能力を活かすべく
TxD
とRxD
を追加したのが特徴だ。
デバッガとシリアル通信とUPDI
書込が共存できて便利という優れものである。
ただし「当時は」。
当然ホスト側は
TxD
とRxD
端子位置がクロスになる。
逆接予防の観点からはVCC
の点対称端子はNC
か/RST
か プルアップ抵抗付の端子とするのが鉄則だが、なぜそうしなかったかの理由は解らない。
SerialUPDI
が主流になった今日でもこのコネクタ配列はまだ健在だが、
AVR-DD の登場で事情が変わってしまった。
UPDI(ver.2)
にある/RST
端子(HV
書換に必要)がないうえに
NC
端子位置にそれを配置してしまうと
(PICkitではない)旧来の書込器とは変換ケーブルを共有もできない。
複数の書込器を用途別に使い分ける場合、 同じ端子のケーブルを使い回せないのは取り間違いや紛失に対して弱い。 個人用途ならともかくグループ人員で使い回すような現場運用では問題になる。
- UPDI方式の AVR系列すべて
- megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex
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
)に対応する。
それを使用しないぶんにはmicroUPDI
、mEDBG
に対して上位互換だ。
逆接しても回路を壊す可能性は低い。
旧来のIDC/6Pリボンケーブルを共用するコネクタとしてはおそらく最も多機能だろう。
HTCR
が3番なのは旧来の書込機だとそれがSCK
なので、動作設定を間違えても ターゲット側はRxD
で受けることになって影響がないからだ。HRCT
は消去法で4番に納まっている。 そしてHTCR
出力はXCK
信号出力も兼ねられるので、配線はそのままでTPI
方式に切り替えることもできる。 更にVCCを 3.3Vに制限し、/RST
にXCK
信号をコピー出力できるとPDI
方式に対応することもできる。 UPDI4AVR-USB はその実装応用の実例だ。
- UPDI方式の AVR系列第二世代/第三世代
- AVR-Dx/Ex
AVR-Dx/Ex のデータシートに掲載されている公式の推奨UPDI(ver.2)
コネクタは、
100mil/単列4Pの単純なものだ。
だが一応公式ではあるものの、採用を躊躇わせる弱点が3つもある。
- 公式デバッガ/書込器にこの端子配列のものは存在しない。
- 殆どの AVR製品の端子配列と1対1で対応しておらず、SILである利点が薄い。(
UPDI
線が他の3本を跨ぐことが多い) - 誤って逆接した場合、MOSFET素子のクランプダイオードを通して直ちに短絡する。
物理的に短絡させやすいという欠点は、結構致命的だ。 単列コネクタには逆刺阻止策が物理的に課し難いので、余計に事故防止が難しい。 なので明確な理由がなければ、この配列を積極的に採用することには懸念がある。
- ISP方式の AVR全般
この単列6端子配列は、ISP
方式用の(標準)MIL/6Pヘッダの信号を
100mil SIL/6Pヘッダ用に並べ替えたものだ。
固有名称は特にないが、
元の書込器6端子の信号が"523146"の順番で現れるため、
ここでは523146
配列と呼ぶ。
この端子配列の明快な長所は、中央の4端子がISP
方式を採用した
AVRほぼ全製品の端子配列と、同じになっていることである。
両端の/RST
とGND
も他の信号と交錯することがほとんどない。
まして8P外囲器の ATtiny13 や ATtiny85 とは
最短配線長で直結できる。
この利点は回路をブレッドボードや、ユニバーサル蛇ノ目基板で
バラックを組んだ時に、はっきりと実感できる。
配線を考えるのがとても楽なのだ。
なので MIL/6P との変換アダプタをひとつ用意すれば
ほぼ全ての場面で使いまわしが効く。
実装基板に対しても廉価な 100milピンヘッダを用意すれば良いだけなので
コストパフォーマンスにも優れる。
ISP
方式AVRでの自作用途では、これが鉄板である。
AVRの向きに対して端子配列の向きも一意に定まるため 単列のわりには方向が分かりやすく、逆接予防になっているのも長所だ。 逆接しても
/RST
が地絡しているので焼損事故をおこしにくい。
- UPDI方式の AVR系列すべて
- megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex
この単列6端子配列は、UPDI
方式用の(標準)MIL/6Pヘッダの信号を
100mil SIL/6Pヘッダ用に並べ替えたものだ。
固有名称は特にないが、
元の書込器6端子の信号が"512643"の順番で現れるため、
ここでは512643
配列と呼ぶ。
UPDI4AVR
の第二コネクタに使われている。
その発想はSIL/6P Type-ISP layout "523146"
と全く同様で、
megaAVR-0 と AVR-Dx/Ex 系統の
28ピン以上の外囲器全種の端子配列と共通になっていることだ。
従って基板上の配線コストも最小である。
しかし523146
配列に比べると、逆接に極端に弱いという短所がある。
また1-6
の並び順が逆向きになることもあり、
実装は楽だが運用には迷いが生じるという立ち位置にある。
それでもブレッドボード直刺しできる魅力が大きいのが悩ましい。 なのでこの端子配列はバラ線ケーブル用だろう。 その用途だと逆接に弱い問題は緩和される。
- UPDI方式の AVR系列すべて
- megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex
現在の
Zinnia Duino
に使われているサブ端子配列で、
UPDI
方式用の(標準)MIL/6Pヘッダの信号を
SIL/6P用に並べ替えたものだ。
配列の順番はSIL/6P Type-ISP layout "523146"
と同じで、
単列-複列変換ケーブルは旧世代と共通利用ができる。
当然のことながらSIL/6P Type-UPDI layout "512643"
とは互換性がない。
実装基板上も全部の配線が交錯するので、回路パターンを引きにくい短所がある。
しかし逆接事故には比較的強く、運用はしやすい。
逆では
/RST
とGND
が繋がるのでプルアップ抵抗を介し、VCC
はHRCT:TxD
に入るが既定は Hi-Z なので浮きになる。
実運用では(MIL/6Pが別にあるので)100milピンヘッダではなく
50milスルーホールとして、MAC-8のハーフピッチコンスルー
を使ってワンタッチコンタクトすることがほとんどになっている。
なので変換ケーブルは実質専用となるので、
523146
配列である理由が薄れてしまっている。
作った本人からして「過渡的なもの」という印象がある。 新規設計非推奨。
- UPDI方式の AVR系列すべて
- megaAVR-0、tinyAVR-0/1/2、AVR-Dx/Ex
この単列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製造前提と仮定できるので、これは欠点にはならないだろう。
逆接した場合、
VCC
はUPDI
に入ってプルアップ抵抗を介し、GND
はHTCR:Rxd
に入るが既定は Hi-Z なので浮きになる。
- 昔は全部これだった
JTAG
といえば昔からこれである。
フルピッチMIL/20PコネクタとIDC/20Pリボンケーブルを組み合わせて使う。
当然ながらボックスヘッダは大きい。
大きいが丈夫なので、実装面積に余裕のある大型基板では今でもこれをよく実装している。
そもそもこれを使うデバッガや本格的な測定機器はとても高価なのだから、
安易に他の規格に置き換えることもできないだろう。
なので何年経ってもこれが使いまわされるわけだ。
Arduinoシールド
サイズのミニ基板にこれが生えてるのを見ると、流石に笑う他ない。
(Cypressェ…)
配列の特徴としては、偶数端子列が全部GND
になっていることだろう。
これは特に低品質なリボンケーブルのクロストークを抑えるためで、
コネクタ横に終端抵抗がずらりと並んでいるのもよく見る。
だが低品質ケーブルをそんな何フィートも引き回すほうが異常なので、
JTAG
互換性は維持しつつ拡張信号に振り替えているメーカーも結構多い。
そのため*
を付した線は互換性を期待してはいけない。
NC*
はここに3V3
を引いている場合があるし、
それどころかいまどき5V専用
というターゲットも滅多になくなったので
ARM
用ともなると5Vsup*
自体が3V3
になってるケースもあったり、
当然そういう機材と一昔前の測定機器を、
コネクタが同じだからといって繋いでしまったら酷い目に合う。
結局、標準コネクタであるが故に、コイツが一番信用してはならない。
- ARM系列汎用SWDインタフェース
ARM系列が普及するようになってから見られるようになった、
MIL/10Pコネクタ+IDC/10Pリボンケーブルの SWD方式インタフェース。
フルピッチ100mil と ハーフピッチ50mil の2種類があるが、
実装基板上に載っているのは昨今だとほぼハーフピッチの方だ。
書込器側のVTref
は受電用で、給電はしないのが一般的。
- AVR-SAM系列 と Corted-M 系列用の汎用 JTAG/SWDインタフェース
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
は元々の経緯からJTAG
、SWD
、SPI
、DGI
モードを
切り替えられる多機能性を持っている。
DGI
は汎用USARTインタフェースで、全二重非同期/同期方式に対応できる。
- STMicro SWDインタフェース(旧式)
"STMicro"のST-Link/V2
といったらこれである。
フルピッチ100mil MIL/10Pボックスコネクタの SWD方式インタフェースだが、
IDC/10Pリボンケーブルよりもっぱらバラ線で使われることが多い。
SWD MIL/10P
とはSWO
端子位置が異なり、
2電源供給になっているのが大きな違いだ。
このため自作用途では廉価な互換機が大いに普及したが、
電源系に6端子も取っているので拡張性が全く無い。
なので"STMicro"公式ではもうこのタイプは使用しておらず、
STDC14
に取って代わられた。
- VCPモニター付の ST-Link/V2変種
フルピッチ100mil の MIL/10Pコネクタ SWD方式インタフェースで
ST-LINK V2
の変種。コネクタはピンヘッダでドングル型本体から生えている。
SWO
端子はデバッグ用単線シリアルなので、
トレース&ブレークする必要がないのなら用がない。
nTRST
もプログラム書込用途では必須でもないので、
これをVCPモニター通信用途に変えてしまったものがこれだ。
ちょうど AVR-ICSP のmicroUPDI
と同じような立ち位置である。
自作環境ではトレース機能よりシリアルコンソールの有無のほうが
遥かに重要性が高いから、この判断は至極真っ当であろう。
WCH
の名を冠するように、WCH CH549G
を使っているものが
リファレンス実装である。
- STMicro SWDインタフェース(現行)
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モニター用シリアル通信端子になっている。
SWD
とJTAG
の切替は、11番端子のGND
が接地か抵抗入りかで判断しているようだ。
- STMicro "Nusleo"用 SWDインタフェース
"STMicro"のNucleo
といったらこれである。
フルピッチ100mil SIL/6Pコネクタの SWD方式インタフェースだが、もっぱらバラ線で使われる。
これは単体では販売されているわけではなくSTM32 Nucleo
シリーズの
オンボード搭載ST-Link/V2
として存在するが、
64端子以上の STM32を搭載している製品なら基板のスリットを切り離すことで
単体のデバッグボード部分が独立分割できるよう配慮されている。
そのボード上に生えている6端子の直列ピンヘッダがこれだ。 安いものだと実売2000円を切るのにデバッグ&トレースできるし、 仮想COMポート(VCP)も使えるので自作派には重宝する。
- ESP32用 UARTインタフェース
ESP32
もプログラミングはUARTインタフェースなのだが、
EN
端子とG0
(GPIO0)端子を USB-UARTのDTR
とRTS
で制御して
PCからブートローダー動作を切り替えたりする形態が一般的だ。
ほとんどはオンボードで USB-UART変換を持たせているため、
外付けの"ダウンローダー"製品は他に比べて非常に少ない。
需要がないこともありフルピッチ"Dupont"コネクタ以外の採用も皆無である。
このESP32 "Downloader" SIL/6P
は
"M5STACK"のESP32 "Downloader"
に使われている配列で、
書込側は 100mil/6P直列ピンヘッダになっており、
ターゲットに直刺しするか、バラ線ケーブルで繋ぐ形態になっている。
ただし配列上、逆接は全く配慮されていない。
- ESP32用 UARTインタフェース
これはESP32 "Downloader" SIL/6P
を MIL/6Pボックスヘッダに変換したもので、
AVR用フルピッチの IDC/6Pリボンケーブルを流用できるようにしたものだ。
流用するのはケーブルだけなので、端子配列は全く違う。
ESP32 "Prog"
プログラマーなどで使われている。
- ESP32用 JTAGインタフェース
ESP32
にもJTAG
機能があるので既存のJTAG
インタフェースが使えるのだが、
ESP32 "Prog"
プログラマーなどでは独自の端子配列が使われている。
信号配列は"Cortex-M"標準やSTDC14
の中央部と概ね互換だがSWD
機能は持たない。
これは MIL/10Pボックスヘッダになっており、
ターゲットとはフルピッチのIDC/10Pリボンケーブルで接続する。
UART
についてはESP32 "Downloader" MIL/6P
と併用して使用する。
Twitter(X): @askn37
BlueSky Social: @multix.jp
GitHub: https://github.com/askn37/
Product: https://askn37.github.io/
Copyright (c) 2022,2023 askn (K.Sato) multix.jp
Released under the MIT license
https://opensource.org/licenses/mit-license.php
https://www.oshwa.org/
multix.jp/てくにかるむ(休眠中)
Multix Zinnia Product SDK [*AVR]
AVR.JP(日本語訳)
AVR-LIBC(日本語訳)