新しいタイプのAVRマイコンでは、その書き込み方法が以前のICSPからUPDIによる書き込み方式になっています。
UPDIでの書き込みは単線式となっているので、信号線(UPDI)1本のみ(VCC/GNDを入れると3本)で書き込むことが出来るのでICSPと比べ配線が楽で便利なのがいいですね!
以前自作のUPDIプログラマを製作したことがあります。
このような書き込み装置(プログラマ)は、自分の環境で使いやすい形状や構成のものを作っておくとテスト等で便利に使うことが出来ます。
UPDIプログラマとしてはコンパクトでブレッドボードを使ったテストなどで便利に使えるのですが、自作基板のプログラム書き込みなどの際に直接基板に押し当てて書き込みが出来るように先端にポゴピンを取り付けたタイプのものも製作してみることにしました。
動作確認👍
ポゴピンっていいよねー! pic.twitter.com/sA9kgAhgOO— ガジェット大好き!! (@smartphone_jp1) June 24, 2024
目次
ポゴピンUPDIプログラマの製作
Arduinoから電子工作を始めたこともありATmegaやATtinyといったAVRマイコンを使う機会が何かと多いのですが、その書き込みの際に使うプログラマ、いわゆるAVRプログラマはこれまでいくつか作ったことがあります。
自分の環境で使いやすい形状や構成のものを自作しておくとテスト等で便利に使うことが出来ます。
また用途によって使い分けたりと、市販されているものや自作したものをいくつか持っておくと便利です。
現在このような自作のUSBaspの製作も考えています。
AVRマイコンの書き込みには大きく分けるとICSPでの書き込みとUPDIでの書き込みの2通りあります。
Arduino UnoやNanoなどで使われているATmega328PやATtinyシリーズのチップではATtiny85といった以前のAVRマイコンではICSPでの書き込み方式が使われています。
Arduinoを使われている方でICSP端子からブートローダーの書き込みを行ったことがある方も多いともいます。
上記製作を考えている自作USBaspもICSPでのプログラマとなります。
そして最近の新しいAVRマイコン、例えばArduino Nano Everyでも使われているATmega4809やATtinyシリーズのATtiny202やATtiny1614などでは、その書き込み方式がUPDIとなっています。
UPDI(Unified Program and Debug Interface)での書き込みは単線式となっているので、信号線1本(UPDI)のみで書き込みが出来るようになっています。(VCC/GNDを入れると3本)
そのためICSPと比べると配線が楽で便利です。
UPDIプログラマは以前CH340Eを使ったものを自作したことがあります。
ブレッドボードに直接差し込んで書き込み等のテストが出来るようにコンパクトなボードとして仕上げました。
そして自作基板の製作で直接PCBに押し当てて書き込みが出来れば便利なのに!
といった場面も多くなってきたことから、上記ボードをベースにして先端にポゴピンを取り付けたタイプの書き込み機も製作してみることにしました。
ポゴピンを使ったUPDIプログラマのイメージ
一言でポゴピンといってもサイズや形状など様々なものがあるようです。
ポゴピンを使ったプローブなども多数市販されています。
市販されているもので便利なのが、このような洗濯バサミみたいな形状(クランプタイプ)で挟み込むものはいくつか持っていると非常に便利です。
AVRマイコンの書き込みで言うと、ICSPでの書き込みでは2行3列以上のもの、UPDIでの書き込みでは1行3列以上のタイプのものを持っていると対応することが出来ます。(写真のものは2.54mmピッチのものです)
挟み込むこのタイプのものは基板の隅に書き込み端子がある場合は使えるのですが・・・
そうでない場合はプローブタイプのもので対応する事も出来ます。
大抵の用途ではこのような市販されているものを使えばいいのですが、自作基板での書き込みでプログラマボードにポゴピンが付いて直接書き込めるタイプのものもあると便利そうです!
そしてポゴピンの基板実装はやったことがなかったので、そのテストも兼ねてポゴピンUPDIプログラマを作ってみることにしました。
ポゴピンにはスプリングが入っていて基板に押し付けて使うわけですが、その際に持ちやすい基板形状&サイズ感で手元で電圧切替(5V or 3.3V)が出来るもの・・・
3D CADでのラフなイメージはこんな感じになりました。
極力指2本で持てるコンパクトなサイズで作りたいところです。
最近このような小さな基板を設計することも増えてきたことから、使用するポゴピンは直径が0.5mmの「P50-B1」という小さなものを使うことにしました。
このサイズなら2.54mmピッチよりも狭い1.27mmピッチとして使うことも出来るので、PCBは両ピッチで使える構成にしました。
上記市販されているタイプのもので対応しにくい自作PCBを製作する際にも使えそうです。
基板設計
ボードサイズを小さくしたかったので、USB-シリアル変換チップにCH340Eを使いました。
前回製作したUPDIプログラマから回路構成は流用しています。
非常にシンプルな構成です。
USB-シリアル変換モジュールに少し手を加えると簡単にUPDIプログラマとして機能させることが出来るということですね!
ポゴピンの基板実装は今回初めてとなり狙ったピッチに合わせて綺麗に実装するのが難しくなりそうです。(実際難しかったです!)
ポゴピン実装部分はこのようなフットプリントを作りました。
2本作ったパッドの中央に真っ直ぐポゴピン本体が乗ってくれれば狙ったピッチ(1.27mm or 2.54mm)になるのですが・・・
これまでのリフローでの実装経験から、はんだの量が多すぎるとおそらく溶けたはんだペーストの表面張力でポゴピン本体が浮き上がり真っ直ぐ取り付けるのが難しいかな?
ということでステンシルではんだペーストの量をある程度少なく塗布するようにしてみました。
全体の基板アートワークはこのようになりました。
ポゴピンを取り付ける位置により2.54mmピッチ(上写真)と1.27mmピッチ(下写真)で使えるようにしています。
実装は少し慣れていないと難しくなりますが、いいサイズ感のボードになったと思います。
JLCPCBに基板発注
基板の製造はJLCPCBに発注しました。
このサイズの基板であれば送料(OCS NEPを選択)と合わせてトータル500円ほどで製作する事が出来ます。(本記事の基板はENIG(金メッキ加工)オプションを付け発注しました)
今回製作したポゴピンUPDIプログラマの基板データ(ガーバーファイル)をダウンロード出来るようにしておきます。
何かの参考になればと思います。
POGO UPDI Programmer(Gerber)
JLCPCBで基板を発注する際の特記事項は特にありませんが、発注項目の選択は以下を参考にして下さい。
JLCPCBでは基板に入ってしまう製造番号を削除するオプションが現在無料となったので、[PCB上のマーク]は[マーク除去]を選択するのがいいと思います。
JLCPCBの基本的な基板発注方法はこちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。
また今回ステンシルも一緒に発注しました。(オプション料金がかかります)
小さな基板にパーツが密集しているのでかなり慣れていないと手はんだでの実装は難しくなります。
リフローでのパーツ実装ではステンシルがあると便利です。
ステンシルを発注される場合は、基板サイズが40mm×19mmと小さいので、ステンシルサイズを100mm角(50mmくらいでもいいかもしれません)くらいに指定しておくと作業しやすいと思います。
サイズを指定しないと結構大きなサイズのステンシルで届いてしまいます。
JLCPCBのステンシル発注方法はこちらの記事でまとめています。
あわせて見て頂ければと思います。
パーツの実装
基板サイズが40mm×19mmと小さく0603サイズのパーツをベースにCH340EやME621133PG(3.3Vレギュレータ)といった小さなパーツが多いので実装はリフローで行いました。
また使用したポゴピンも直径0.5mmとかなり小さく手はんだでの実装だと、これはかなり難しいと思います。
このサイズのものは、ステンシルを使いサクッとリフローで実装しちゃうのが確実です。
パーツの実装はMHP50というミニリフロー装置を使いました。
PD電源が使え作業スペースの邪魔になりにくい、非常に便利なリフロー装置でMHP30とともに毎回愛用しているリフロー装置です。
1.27mmピッチと2.54mmピッチのもの2個を同時にリフローして実装しました。
ほんと小さいけど便利なリフロー装置です!
実装は一発完動、綺麗に出来ました!
MHP50に関して詳しくは後日MHP30の記事に追記しておきます。
ある程度リフローでの実装も慣れてきたので比較的簡単にパーツの実装は出来たのですが、やはりポゴピンの実装はパッド部分に真っ直ぐ取り付けるのに何度か修正しました。
自作したフットプリントのパッド中央にセルフアライメントによりちゃんと乗ってはくれるのですが、基板から露出した先端部分の長さを合わすのにピンセットで動かすと溶けたはんだペーストで盛り上がっているので斜めになったりと・・・ポゴピンの実装は初めてだと結構難しかったです。
昨日実装してたやつ。
動作チェックする前に寝落ちしたけど・・・帰ったらチェックと2.54mmピッチバージョンも作っとく📝 https://t.co/8d8V0TDIT0 pic.twitter.com/rmSKvTlMyD
— ガジェット大好き!! (@smartphone_jp1) June 23, 2024
このサイズのボードに書き込み用ハードが入っていて持ちやすく、使用感としては使いやすいものが出来たと思います。
動作確認👍
ポゴピンっていいよねー! pic.twitter.com/sA9kgAhgOO— ガジェット大好き!! (@smartphone_jp1) June 24, 2024
書き込み・使用方法
tinyAVR 0/1/2シリーズやmegaAVR 0シリーズといったAVRマイコンでは、UPDI書き込み方式となっています。
UPDI(Unified Program and Debug Interface)での書き込みは単線式となっており、信号線1本(UPDI)のみで書き込むことが出来るようになっているので配線が少なく便利です。(VCC/GNDを入れると3本)
こちらではUPDIでの書き込み方法など割愛しますが、詳しくまとめた過去記事のリンクを入れておきます。
Arduino IDEを使いUPDI書き込みを行う場合、使用するマイコンに対応したボードパッケージのインストールが必要となってきます。
Arduino IDEでの環境構築や接続方法など前回の記事でまとめています。
本ボードの回路構成は同じなので使用方法はこちらの記事を参考にして下さい。
またtinyAVR 0/1/2シリーズやmegaAVR 0シリーズに関してはこちらの記事で詳しくまとめています。
接続方法や書き込み方法などは、こちらの記事もあわせて見て頂ければと思います。
今回使用したパーツ一覧
今回使用したパーツの一覧です。
サイズ等の確認でリンク先ページを参考にして下さい!
パーツ | 定数 | 入手先 |
コンデンサ (0603) | C1/C2 100nF C3/C4 1μF | AliExpress |
ダイオード (SOD-323) | D1 1N4148 | AliExpress |
抵抗 (0603) | R1/R2 5.1kΩ R3 470Ω R4/R5 1kΩ | AliExpress |
LED (0603) | LED1(TX) LED2(PWR) | AliExpress |
シリアル変換チップ | U1 CH340E | AliExpress / 秋月電子 |
3.3Vレギュレータ | U2 ME6211A33PG-N | AliExpress |
端子 | J1 Type-Cコネクタ(16P) | AliExpress / 秋月電子 |
J2 ポゴピン(P50-B1) | Amazon / AliExpress | |
スライドスイッチ | MSK-12C02(SMD) | AliExpress |
受け側パッドのホールサイズ
今回使用したポゴピンは直径が0.5mmの「P50-B1」を使っています。
UPDIは3ピンと少ないので、表面実装のこのようなパッドでも狙った部分に固定することは出来ると思いますが・・・。
通常スルーホールのパッドでよく使われる1mm径のホールではなく、0.4mm(または0.3mm)くらいのホールが空いたパッドを用意すると使いやすいと思います。
基板の実装スペースが限られる場合、パッドサイズはもう少し小さくしてもいいかもしれません!
また1.27mmピッチで使う場合にポゴピンを5本実装して左右にガイドホールを開けて使うのもいいかもしれません。
ポゴピンを使った例
UPDIプログラマを作るというよりポゴピンの実装を試してみたかったという部分も大きい今回の製作なのですが、フットプリントの工夫やステンシルではんだペーストの量を調整するなどして綺麗に取り付けることが出来るのが分かりました。
しかしながら先述の通り初めてだと何度も修正したりと結構難しかった印象も受け、特に今回製作したような1.27mmといったピッチの狭いものでは特に難しくなります。
一度やっておくと次からは難なく出来ちゃうんですけどね!
ポゴピンは様々な形状・サイズのものが販売されていますが、ハウジングに収められたタイプのものも便利そうです。
2.54mmピッチではDIP or SMD両タイプのものがあるようで、ポゴピン本体はハウジングに収められているので実装は簡単そうです。
基板をスタックして連結する場合などでも便利に使えそうですね。
現在自作のAVRプログラマ(USBasp)の製作を考えているのですが、ICSP書き込み用にこのようなプローブもセットで作ってみようかと考えています。
またInstagramで海外のPCB関係の方に教えてもらったのですが、[P75-E2]と[R75-3W]の2つのポゴピンを組み合わせる方法もあるようですね。(こういう使い方が一般的なのかな?)
IDCといったコネクタに直接差し込んで使えるので便利だよ、とのことでした。
パーツを発注しているので、これも試してみたいと考えています。
ポゴピンっていろんな使い方ができ便利ですが、調べてもあまり情報が出てこないので自作基板で便利に使えるようにいろいろと試しています。
最後に!
ポゴピンの実装テストも兼ねて普段よく使うUPDIプログラマをポゴピン仕様で作ってみました。
ポゴピンの実装は今回試したようなPCBに平で実装する方法やPCBを2枚使って固定する方法などいくつかありますが、ピッチを合わせて実装するのは結構難しい印象を受けました。
クランプタイプのように挟み込むものやプローブ形状のものは比較的安価で売られているので大抵の用途ではこれらを使えば対応できますが、限られた基板サイズに書き込みパッドを用意したい場合などは自作出来るようにしておけば今後便利に使えそうです。
ポゴピンのフットプリントや実装方法など分かってきたので、PCBの厚みを変え両面に実装して2×3ピンのICSPタイプのものなど自作も出来そうです。
何かの参考になればと思います。
コメントを残す