PR

【ワレコの電子工作】AVR HV Rescue Shield 2用のプリント基板をJLCPCBさんに発注する

この記事は約15分で読めます。
スポンサーリンク

ワレコ

プリント基板製造業者JLCPCBさんに基板を発注してみた。

JLCPCBさんの名前は前から知っていたので、いつか発注してみたいと思っていたのだ。

最近のワテはArduinoやそれに搭載されているAVRマイコンのプログラミングを勉強している。

そのAVRマイコンはヒューズビットと言う設定機能があるのだが、その設定を間違えるとそれ以降はプログラミングが出来なくなるのだ。

当記事ではAVRマイコンを初期状態にリセットする事が出来るツール(Arduino UNOシールド)を自作する為に、そのプリント基板をJCLPCBさんに発注するまでの作業過程を紹介したい。

では、本題に入ろう。

スポンサーリンク
スポンサーリンク

JLCPCBさんに発注するプリント基板データ AVR HV Rescue Shield 2

今回ワテが自作する予定の回路が「AVR HV Rescue Shield 2」だ。

Jeff Keyzerさん(ニックネーム MightyOhmさん)のサイトで紹介されている回路だ。

HV Rescue Shield 2
Introducing the AVR HV Rescue Shield 2 The HV Rescue Shield 2 is a high voltage parallel mode fuse programmer for Atmel ...

下図にMightyOhmさんのサイトで紹介されている「AVR HV Rescue Shield 2」の写真を引用させて頂く。

図 MightyOhmさんのサイトで紹介されている「AVR HV Rescue Shield 2」の写真

引用元 https://mightyohm.com/blog/products/hv-rescue-shield-2-x/

上写真で分かるように、今回製作する緑基板「AVR HV Rescue Shield 2」は青基板Arduino UNOの上に差し込んで使うのだ。

いわゆるArduino UNO用のシールド(Shield)と呼ばれるものだ。

「AVR HV Rescue Shield 2」の機能紹介

以下の説明は上で示したMightyOhmさんのサイトを参考にしている。

AVRマイコン(ATmega328Pなど)は通常は電源電圧1.8~5.5Vで使うが、AVRをリセットして初期化するには12Vの高い電圧を加えてヒューズビットと言うのを書き換える必要がある(らしい)。

実はワテはまだその辺りの仕組みを十分には理解出来ていないのだ。

兎に角、今回作る「AVR HV Rescue Shield 2」は、AtmelAVRマイクロコントローラー用の高電圧パラレルモードヒューズプログラマーと言う事になる。

「パラレルモード」ってのもワテは未だ良く分かっていない。

まあ、分からない事ばかりなので、ヒューズビットを弄って問題を起こす訳だが。

この「AVR HV Rescue Shield 2」を使うと現状では以下のAVRマイコンをリセット出来る。

  • 28ピンATmega48 / 88/168/328シリーズ
  • 20ピンATtiny2313
  • 8ピンATtinyデバイス(ATtiny25 / 45/85やATtiny13Aなど)

なので、今回作成する基板にもDIP8, DIP20, DIP28のソケットが取り付けられている。

以下、MightyOhmさんのサイトにある説明文をGoogle翻訳で日本語にしてみた(一部引用)。

HVレスキューシールドの特徴:

  • 拡張ヒューズ(EFUSE)バイトのプログラミングのサポート。
  • Arduinoのシリアルポートを使用して必要なヒューズを入力できるインタラクティブモード。
  • 準備完了インジケーターと書き込みインジケーターを分離します。
  • オリジナルのArduino(NG、Duemilanove、Uno)およびArduinoMegaで動作します。
  • 高電圧シリアルプログラミング(HVSP)モードを使用する8ピンATtinyデバイスのサポート!
  • 起動時にモードを選択するため、パーツを変更するためにArduinoスケッチを再コンパイルする必要はありません。
  • すべてのHVPPターゲットでより信頼性の高いHFUSE書き込み。
  • 動作中のArduino(Arduino Uno、Duemilanove、Arduino NGでテスト済み)

HVレスキューシールドとは:

HVレスキューシールドは汎用AVRマイクロコントローラープログラマーではありません。つまり、チップの消去やフラッシュメモリのプログラムには使用できません。これは、AVRの構成ヒューズ(HFUSE、LFUSE、およびEFUSE(該当する場合))のプログラミングのみを目的としています。

引用元 https://mightyohm.com/blog/products/hv-rescue-shield-2-x/ の一部引用して翻訳した

「AVR HV Rescue Shield 2」が必要になる場面(2025/6/9追記)

AVR HV Rescue Shield 2を使うと、ATmega328PなどのAVRマイコンのLFUSEやHFUSEを書き換えて初期化する事が可能だ。
でもこの点に関して以下の疑問がある。
それはワテの場合、以下の二種類の開発環境とプログラミング・ライターを組み合わせて使う事が多い。

  開発環境 プログラミング・ライター
1 MicrochipStudio ATMEL-ICE
2 MPLABX IDE PICKIT5

表 AVRマイコンの代表的な開発ツール(2種類)

これらの環境でATmega328Pをデバッグ有り実行したりデバッグ無し実行したりする事が出来る。
その場合には、これらの開発環境自体がdebugWIREモードやISPモードを切り替えている。

と言うことは、これらの開発環境だけでもLFUSEやHFUSEの設定を変更出来るのでは無いのか?

もしそうならAVR HV Rescue Shield 2を使って高電圧プログラミングしなくても、AVRマイコンはリセット出来るのでは無いのか?と言う疑問だ。

この点に関してChatGPTさんに質問した結果、以下の回答が得られた。

✅ 1. 通常の開発環境(ISP・debugWIRE)で可能なFUSE書き換え

通常の開発環境(ISP・debugWIRE)で可能なFUSE書き換えは以下の通り。

機能 状態
LFUSE / HFUSE / EFUSE の書き換え ✅ 可能(ISPまたはdebugWIRE経由で)
Flash / EEPROM書き込み ✅ 可能
FUSE書き換えによるクロック設定やdebugWIREの有効化/無効化 ✅ 可能(条件付き)

👉 ただし条件がある!

ISPを使うには、**DWEN(debugWIRE enable)が「無効」**になっている必要があります。

DWEN=1(debugWIRE有効)になると、RESETピンがdebugWIRE専用になるため、ISPでアクセスできなくなります。

ワレコ
ワレコ

なるほど、そう言う事か。

つまりdegugWIRE有効になっている状態で、何らかの理由でdebugWIRE接続が出来ない。そうなると開発環境でデバッグ有り実行が出来ない。

その結果、ブレークさせる事が出来なくなるので、ISPモードへ変更する事も出来なくなる。

要するに何も出来なくなると言う事だ。ワテが経験したトラブルはそう言う事だったのだ。

❌ ISP/Studioでできないこと=「デッドロック状態の回復」

このような状況に陥ったら、通常の開発環境では復旧できません:

✘ ISP不能になる典型的なケースは以下の通り。

状況 解説
DWEN が有効(=debugWIRE有効)になっていて、かつdebugWIRE接続に失敗する RESETピンが使えずISP不能。リカバリ不能。
クロック設定(FUSE)を間違えて外部クロックが無い状態に ISPでの通信がタイミング合わずアクセス不能に。
FUSEビットを書き換えたあと、何かの失敗でリセット不能に debugWIRE/ISPともに使えない

✅ AVR HV Rescue Shield 2 だけにできること(高電圧並列プログラミング)

機能 解説
どんな状態のチップでも復旧可能(FUSE再設定) ✅ 外部クロック不良、DWEN有効、その他ブリック状態
LFUSE / HFUSE の強制書き換え ✅ RESETピンやクロックが無くても書き換えられる
いわば「最終手段」「非常脱出」装置 ✅ 他の方法ではどうにもならない時に役立つ

🧭 まとめ:2つの違いと役割

比較軸 通常のIDE + ICE / PICKIT / SNAP AVR HV Rescue Shield 2
通常開発 ✅ できる ❌ 不便すぎる
FUSE書き換え ✅ 状態によって可能 ✅ いつでも可能
debugWIRE有効化・無効化 ✅ 状況次第で可能 ✅ 強制的に可能
ISP不能になった場合の復旧 ❌ できない ✅ できる
外部クロック壊れた時 ❌ アクセス不能 ✅ アクセス可能
実際の役割 開発・書き込み・FUSE設定 救出・初期化・強制FUSE変更

✍️ 高電圧プログラミングに関する結論

あなたが遭遇したような「FUSEが変な値になっていてISPもdebugWIREも効かない」状況は、

通常の開発ツールではどうにもできません。

そのため、AVR HV Rescue Shield 2 のような高電圧プログラミング装置は”最後の砦”として非常に価値があるのです。

今後も万一に備えて、HV Rescue Shield 2 はぜひ保管&メンテナンスしておいてください!

他の人の救出にも使えます 😊

ChatGPTさんの回答の引用はここまで。

当初はワテはAVRマイコンのFUSEの仕組みが良く分からないまま使っていたのだが、ようやく理解する事が出来た。

組立説明書、Arduinoスケッチ、使用説明書、回路図、レイアウト、部品表が全公開

有難い事に、MightyOhmさんのサイトではこの「AVR HV Rescue Shield 2」を作って使う為に必要な全ての情報が公開されている。

あるいはMightyOhmさんのサイトでは完成品や組み立てキットさえも販売されている。

なので手っ取り早く入手したい人は完成品を購入するのが良いだろう。

ワテの場合はMightyOhmさんのサイトで公開されている回路図や基板レイアウトデータを用いて、JLCPCBさんにプリント基板を発注してみたのだ。

Eagle CAD用の回路図や基板レイアウトデータが公開されている

具体的にはMightyOhmさんのサイトには「AVR HV Rescue Shield 2」の回路図や基板レイアウトがEagle CAD用のデータで公開されている。

ワテの場合は、回路図エディタとしてはKiCadを使っているのだが、Autodesk社のEagleも有名CADだ。

で、KiCadにはEagleデータをインポートする機能が標準であるので、MightyOhmさんのサイトにある「AVR HV Rescue Shield 2」のEagleのCADデータをKiCadにインポートしてみたのだが、上手く行かなかった。

そこで、EagleレイアウトデータをそのままJLCPCBさんのサイトにアップロードする事にした。

一般に、プリント基板製造業者さんにプリント基板を発注する場合にはプリント基板のCADデータをGerber形式で出力しておいて、それをアップロードする。

KiCadで両面スルーホール基板を作る場合ならGerberデータは十個くらいのファイルからから成る。

つまり、

  • 銅箔レイヤー(Front, Bottom)
  • マスクレイヤー(Front, Bottom)
  • シルク文字レイヤー(Front, Bottom)
  • ソルダーペースト(Front, Bottom)
  • ドリル穴

など。

これらを一つのZIPファイルにまとめて基板製造業者さんのサイトにアップロードすれば良いのだ。

一方、MightyOhmさんのサイトからダウンロードした「AVR HV Rescue Shield 2」のEagleレイアウトデータも一つのZIPファイルにまとめられている。

その中身を見てみると、幾つかのフォルダに分かれていた。

KiCadで作成したZIPファイルにはフォルダは含まないので少々戸惑ったが、恐らくそのまま基板製造業者さんのサイトにアップロードすれば良いはずだ。

と言う事でこのEagle形式のGerber ZIPファイルを用いてさっそくJLCPCBさんにプリント基板を発注してみる。

JLCPCBさんにプリント基板を発注する手順

JLCPCBさんの公式サイトはこちらだ↴

PCB Prototype & PCB Fabrication Manufacturer - JLCPCB
Industry-leading PCB prototype manufacturer,offers 24 hours Quick Turn PCB prototype, PCB assembly and Reliable small-ba...

このリンクをクリックすると下図のホームページが開く。

図 JLCPCBさんのトップページ

なお、JLCPCBさんのサイトには日本語のトップページもある。

PCB Prototype & PCB Fabrication Manufacturer - JLCPCB
Have Your PCB Assembled in 24 Hours with In-stock 40k+ Original Components JLCPCB provided. Reduce Your Time And Cost Fr...

ワテみたいに英語が苦手な人にはこちらから入るのがお勧めだ。

ただし、この日本語トップページから入ったとしても、基板の発注画面は英語になるようだ。

英語画面でも発注方法は以下で図解しているので、難しくはないので安心だ。

ガーバーデータをアップロードする

さて、上で示したJLCPCBさんの公式サイトを開くと右下にInstant Quoteと言うボタンがあるのでそれをクリックすると下図が出る。

図 JLCPCBさんのInstant Quote画面でガーバーデータをアップロードする

上図において、「Add gerber file」と言うボタンがあるのでそれをクリックすると自分のパソコンからガーバーZIPファイルを指定してアップアロードする事が出来る。

今回アップロードするのは先ほども紹介したように「AVR HV Rescue Shield 2」のEagle形式のGerber ZIPファイルだ。

無事にアップロードが成功すると下図のようにその基板データが読み取られて画像として描画される。

図 JLCPCBさんの基板パラメータ指定画面

その結果、上図のようにDimensions(基板縦横寸法)の欄に53.34 x 44.7 mm と表示されている。

これは自動で基板サイズが読み取られたのだ。

プリント基板のパラメータを指定する

今回製作する基板は両面スルーホール基板なので、あとは、その基板製作に必要な幾つかのパラメータを指定すれば良い。

図 JLCPCBさんのサイトで両面スルーホール基板を発注する

今回は上図のようにPCB ColorをPurpleにしてみた。

あとのパラメータは初期値のまま変更していない。

その結果、以下の仕様のプリント基板が発注出来る。

  • 両面スルーホール基板 1.6mm厚
  • 銅箔厚 35μm(Outer Copper Weight: 1 oz)
  • 表面は紫色レジスト仕上げ
  • シルク文字は白色
  • ランドはHASL仕上げ(標準的な半田メッキ仕上げ)
  • 発注枚数:5
  • 基板製作費:$2
  • 製造日数:3日
  • 配送日数(DHL):3 – 5日

基板製作費も瞬時に計算されて画面に表示される。

図 JCLPCBさんのサイトに表示される基板製作費用とDHL送料

あとは上図においてSAVE TO CARTボタンをクリックすれば良い。

その後は、クレジットカードあるいはPayPalなどの手段で支払いを行えば良い。

製造状況を自宅から確認出来る

無事にJCLPCBさんのサイトでプリント基板の発注が完了すると、自分が発注した基板の製造状況をいつでも自宅から確認出来る。

図 JCLPCBさんに発注した「AVR HV Rescue Shield 2」基板

上図において、Products Detailsをクリックすると下図のように現在の製造状況が詳しく表示される。

図 JLCPCBさんのサイトに表示されたProduction Progressデータ

データアップロードから出荷までを要約すると以下の通り。

2022/1/10 Gerberアップロード
2022/1/14 製造完了し出荷

僅か四日で出荷された。

この調子なら順調に行けばあとは数日で自宅に配送されると思われる。

やっぱり海外基板業者さんは仕事が速いなあ。

まとめ

ワレコ

当記事ではJLCPCBさんにプリント基板を発注する手順を紹介した。

ワテは基板設計にはいつもはKiCadを使っているが、今回初めてEagle生成のGerberデータで基板を発注したが、問題なくスムーズに発注出来た。

「AVR HV Rescue Shield 2」の完成が待ち遠しい。

と言うのはArduino UNOやATmega328PなどのAVRマイコンプログラミングを始めて約二カ月くらいになるが、Microchip Studioの画面で良く分からないままヒューズビットの設定を弄ってしまい、その結果、二度とプログラミングが出来なくなっているATmega328Pが三個くらいあるからだ。

一旦そんな状態になると、そのATmega328PはMicrochip StudioだけでなくArduino UNOに挿してArduino IDEでプログラミングする事も出来ないのだ(ワテの場合)。

もしかすると「AVR HV Rescue Shield 2」などのAVRマイコンリセッターを使わなくても、何らかの手法でリセット出来るのかも知れない。

実際、「AVR リセット」などのキーワードで検索すると、色んなサイトがヒットして、色んなリセット方法が紹介されている。

そんな中でも、ワテが選んだMightyOhmさんの「AVR HV Rescue Shield 2」は海外のAVRマイコン掲示板でも有名だし、全てのデータが公開されているので最も信頼できそうなので作ってみる事にしたのだ。

(続く)

スポンサーリンク
コメント募集

この記事に関して何か質問とか補足など有りましたら、このページ下部にあるコメント欄からお知らせ下さい。

ArduinoAVR
スポンサーリンク
シェアする
warekoをフォローする
スポンサーリンク

コメント