ワレコ
未だ寒いけれど晴れの日は春の兆しを感じる。
四季がある日本の気候がワテは好きだ。
さて昨年末から本格的に勉強中のArduino UNOやAVRマイコンのプログラミングであるが、今までに以下の実験に成功した。
- Microchip StudioとATMEL-ICEでATmega328PをLEDチカチカしてDebugする【成功】
- 素のAVRマイコンでLCD表示成功【ATmega328PとATMEL-ICE】
- Arduino UNOを使って赤外線リモコンでステッピングモーター制御【正転・逆転】
- Arduino UNOを使って赤外線リモコンでサーボモーター制御成功
その実験の過程でプログラミングに失敗して、使えなくなったATmega328Pマイコンが三個あるのだ(下写真)。
写真 FUSEビット設定をミスって使えなくなったATmega328Pが三個
使えなくなっているATmega328Pは実売価格で一個300円くらい。これら三個の328Pをこのまま放置していても何の役に立たない。
AVRマイコンはMicrochip StudioなどでFUSEビットの設定を変更すると設定内容によっては簡単には元に戻せない場合もあるのだ(詳しくは知らない)。
つまりFUSEビットの仕組みを十分に理解しないままAVRマイコンを弄っているとワテみたいな状況に陥るのだ。あかんがな。
AVRマイコンは通常は1.8~5.5Vdc辺りの低電圧で使うが、もしFUSE設定を初期化したい場合には12Vdcの高電圧を与えて書き込む必要がある。
それを可能にするのがAVRリセッターと呼ばれる装置で、今回作成する「AVR HV Rescue Shield 2」もその一つなのだ。HVの文字通り、高電圧パラレルモードヒューズリセッターとして動作して、Arduino UNO用シールドとして使う。
当記事ではAVRマイコンのFUSEビット設定を自由に変更出来る「AVR HV Rescue Shield 2」の作成過程と、それを実際に使ってFUSEリセットに成功したので、その作業過程も紹介する。
「AVR HV Rescue Shield 2」の製作にはJLCPCBさんに発注したプリント基板を使った。
先日JLCPCBさんに発注して僅か六日で自宅に届いたのだ。速いぞ!
その発注記事はこちら↴
では、本題に入ろう。
JLCPCBさんから届いたAVR HV Rescue Shield 2用基板の紹介
今回は発送業者さんにはDHLを選択した。
写真 DHLで届いたJLCPCB製のプリント基板の小包
海外基板製造メーカーさんに基板を発注すると、DHL、Fedex、ChinaPostその他、幾つかの配送業者さんから好きな会社を選べる。
今回のDHL送料は$14.8だったので日本円なら二千円弱と言う計算になる。
写真 JLCPCBさんの水色小箱
早速この水色小箱を開封してみた(下写真)。
写真 JLCPCBさんの基板5枚
今回製作した基板サイズは53.34 x 44.7 mm なので、小さめの基板だ。
両面スルーホール基板
以下ではJLCPCBさんの両面スルーホール基板の出来具合を紹介しよう。
写真 紫(Purple)レジストで製作した両面スルーホール基板(1.6mm厚)5枚
上写真のように紫レジストに白色シルク文字で発注した。
基板の製作費用は10x10cm2以内のサイズなら格安で、5枚同じ物を発注しても5ドル程度だ。
今回はSpecial Offerと言う割引があり、2ドルだった。
下写真のように小さなシルク文字もかすれたりする事無く綺麗に印字されている。
写真 JLCPCB製のプリント基板5枚(左:部品面、右:半田面)
上写真のようにJLCPCBさんの紫レジストは明るい紫では無くて落ち着いた感じのワインレッドと言う感じだ。
今回製作した基板は両面スルーホール基板で、かつ、表面実装部品とリード型部品の両方を半田付けする。
下写真で示す部品面拡大写真の左下の辺りに表面実装部品の領域がある。
写真 JLCPCB製「AVR HV Rescue Shield 2」用基板の部品面拡大
上写真では、使っているデジカメが十年以上前に買ったやつなので少しピンボケ気味だが、表面実装部品取り付け部分の細かい半田パッドも綺麗に形成されているのが分かる。
この基板にはDIP28、DIP20、DIP8の三つのICソケットも半田付けする。
下写真に示すようにそれらの半田付けパッドも綺麗なスルーホールが形成されている。
写真 JLCPCB製「AVR HV Rescue Shield 2」用基板の半田面拡大
下写真では、表面実装部品の取り付け部分を拡大してみた。
写真 JLCPCB製「AVR HV Rescue Shield 2」用基板の部品面拡大
上写真の中央に8pinのIC取り付け場所があるのが分かるだろう。
ここにはアナログデバイセズ(リニアテクノロジー)のLT3464-TSOTと言う DC/DC CONV BOOST MICROPWR IC(マイクロパワー昇圧DC/DCコンバータIC)を取り付ける。
下図にパッケージ寸法を引用するがTSOT23-8と言うサイズなので超小型のICだ。
図 LT3464-TSOT DC/DC CONV BOOST MICROPWR IC(マイクロパワー昇圧DC/DCコンバータ)
引用元 https://www.analog.com/media/jp/technical-documentation/data-sheets/j3464i.pdf
下写真にはその拡大を示す。
写真 JLCPCB製「AVR HV Rescue Shield 2」用基板の部品面(SMD部品取り付け部拡大)
なお、ワテの場合、最近では表面実装部品を良く使っている。
その場合には表面実装抵抗やチップコンデンサには、3216M(1206)サイズを良く使う。
つまり3.2mm x 1.6mm と言う大きさだ。
今回作成する「AVR HV Rescue Shield 2」では、抵抗やコンデンサは2012M(0805)サイズが使われている。例えば上写真のC1のコンデンサなど。
2.0mm x 1.2mm と言うサイズなのでかなり小さい。
でもまあワテの場合は実体顕微鏡を使っているので半田付け作業はたぶん問題無く出来るだろう。
逆に言うと、実体顕微鏡が無ければ半田付け出来ないだろう。
上写真のようなカメラ付きの実体顕微鏡なら基板表面の撮影に便利なのだが、ワテが使っているやつはその機能が無い。
なので、基板撮影には普通のデジカメで接写しているのだが、レンズもカメラも十年以上前に買った古いやつなので正確なピントが合わないのだ。
キヤノンに修理点検に出すか新品を買うか迷っている。
AVR HV Rescue Shield 2 に部品を半田付け
AVR HV Rescue Shield 2 に使う部品一覧
さて、JLCPCBさんの基板は非常にいい感じに出来上がっている。
あとは下表で示すパーツを半田付けすれば完成だ。
Item | Qty | Refdes | Value | Description |
1 | 1 | PCB1 | NA | 2L FR4 1.8×2.1” |
2 | 1 | IC3 | LT3464-TSOT | IC CONV BOOST MICROPWR TSOT23-8 |
3 | 1 | U1 | MUN5311DW1T1G | Complementary 50V NPN & PNP |
4 | 1 | LED1 | RED | LED SS 3MM 625NM RED DIFF |
5 | 1 | LED2 | GREEN | LED 3MM SHORT LENS GREEN TRANSP |
6 | 1 | R23 | 100 | RES 100 OHM 1/6W 5% CARBON FILM |
7 | 2 | R19,R20 | 330 | RES 330 OHM 1/6W 5% CARBON FILM |
8 | 1 | R20 | 1K | RES 1.0K OHM 1/6W 5% CARBON FILM |
9 | 1 | R24 | 1K | RES 1.00K OHM 1/8W 1% 0805 SMD |
10 | 1 | R21 | 137K | RES 137K OHM 1/8W 1% 0805 SMD |
11 | 1 | R22 | 1.21M | RES 1.21M OHM 1/8W 1% 0805 SMD |
12 | 1 | C2 | 0.22uF | CAP CER .22UF 50V X7R 0805 |
13 | 1 | C3 | 0.47uF | CAP CER .47UF 25V X5R 0805 |
14 | 1 | C1 | 1uF | CAP CER 1.0UF 10V X7R 0805 |
15 | 1 | L1 | 22uH | INDUCTOR 22UH 100MA 10% SMD |
16 | 1 | IC1 | N/A | SOCKET IC OPEN FRAME 28POS .3″ |
17 | 1 | IC2 | N/A | SOCKET IC OPEN FRAME 20POS .3″ |
18 | 1 | IC4 | N/A | SOCKET IC OPEN FRAME 8POS .3″ |
19 | 1 | J1, J3, J2 | NA | SINGLE ROW HEADER, 1 X 40 |
20 | 1 | S1 | GO | SWITCH TACT 6MM SPST H=5MM |
21 | 1 | C4 | DNP | not installed |
22 | 1 | C5 | DNP | not installed |
23 | 1 | TP1 | 12V_SW | test point |
表 AVR HV Rescue Shield 2 の部品表(HVRescue_Shield_r21_BOM.xlsx)
引用元 https://mightyohm.com/blog/products/hv-rescue-shield-2-x/
有難いことに「AVR HV Rescue Shield 2」を作るのに必要な全情報が作者のMightyOhmさんによって公開されている。
下写真に今回使う電子部品を示す。
写真 「AVR HV Rescue Shield 2」に使う部品(主にマルツで購入)
下写真に大小二種類の表面実装抵抗があるが、
下: 3216M(1206)サイズ (ワテが良く使っているサイズ)
写真 上の2012M(0805)サイズのSMD抵抗を使う。下は比較用3216M(1206)サイズ
しかしまあ上写真にあるようにマルツさんで部品を少量買うと、手書きで型番が書かれているのだ。
物凄いローテクな作業だぞ。
プリンタで印字などすれば真っ先に電子化&効率化出来る作業だと思うんだが…
どないなってんねんマルツさん?
温調式半田ごては使い易い
ワテの場合、長年に渡り温調機能が付いていないごく普通の半田ごてを使っていた。
18Wと25Wを二刀流で主に25Wを使っていたのだが、25Wコテのヒーターが壊れたのを機会に、HAKKOの三本タイプの温調半田ごてステーションを購入した。
白光FM-206は定価は高いが実売価格は半額くらいなので臨時特別給付金(10万円)を使って思い切って買ってしまった。ワテ自身、いつどうなるか分からないしw。
まあ釣り好きな人が高い釣り竿買うとか、ゴルフ好きな人がハイテク高級クラブを買うみたいなもんだ。
このFM-206はワテにとってはかなり高額な買い物であったが、使い勝手は物凄く良い。半田付け作業が格段にやり易くなったのだ。今後も趣味の電子工作を続けたいので、長い目で見て自分に対する投資と考えれば良い買い物だったと思う。
実体顕微鏡を使って半田付けする
さて、いよいよ半田付けだ。
下写真のように半田付けパッドの半田メッキは表面光沢があり、半田の乗りが良さそうだ。
写真 表面実装部品から半田付け開始(LT3464 DC/DC CONV BOOST MICROPWR)TSOT23-8
上写真のLT3464DC/DCコンバーター用ICは長さ3mmほどしかないのだ。米粒くらいの大きさだ。
まずは基板にフラックスを塗布する。
このフラックスはアマゾンで一個300円くらいなのに、二個セットだと1000円になる。アマゾン七不思議の一つだ。
さて、フラックスを塗布した場所にICを載せて、端っこのピンを一つだけ軽く半田付けする。
必要なら予めその端っこのパッドに軽く半田を盛っておくと良い(予備半田)。予備半田を大盛りにするとICが傾斜するので、薄く盛るのがコツだ。
写真 TSOT23-8サイズのDCDCコンバーターICを手半田した(横から撮影)
その後で、残りの全部のピンを半田付けした(上写真)。
下写真は6pinのMUN5311DW1T1G(NPN+PNP Dualトランジスタ)SOT-363 (SC-88)を半田付けした。
写真 MUN5311DW1T1G NPN+PNP DualトランジスタSOT-363 (SC-88) 6pinを手半田した
これらのICの半田付けには下写真の極細の半田ごてを使った。
ワテ自作のお助け孫の手ツールが活躍
さて、こんな米粒みたいな表面実装部品(SMD)を手半田する時のテクニックと便利ツールを紹介したい。
下写真がワテ自作の「半田付けお助け孫の手」だ。
写真 ダイソーバーベキュー串を使ったワテ自作の「半田付け作業お助け孫の手」
「半田付け作業お助け孫の手」の作り方は下の記事で作り方を紹介している。
下写真は「半田付け作業お助け孫の手」でチップ抵抗 2012M(0805)サイズを押さえている様子を示す。
写真 「半田付け作業お助け孫の手」でチップコンデンサを押さえている様子(写真が暗いが)
ダイソー100円のバーベキュー串とマグネットフックを組み合わせているのだ。
チップ部品の手半田のコツ(ワレコ流)
ワレコ流のチップ抵抗の半田付けの手順としては、以下の通り。
- フラックスを塗布する
- 一方の半田パッドに薄く半田を盛る(予備半田)
- チップ抵抗 2012M(0805)サイズを載せる
- 「半田付け作業お助け孫の手」でチップ抵抗を押さえる
- 先ほど半田を盛ったパッドをコテで熱して半田を溶かす(これでチップ抵抗は動かない)
- チップ抵抗は「半田付け作業お助け孫の手」で押さえたままもう一方の半田パッドも半田付け
- 最初に半田付けしたパッドに半田を追加する
- 「半田付け作業お助け孫の手」を外して完了
こんな感じでやればうまく行った。
注意事項としては、左手で持ったピンセットでチップ部品を挟んでおいて、右手で半田付けするなどの方法はチップ部品が動いて斜めに付いてしまうので必ず失敗する(ワテの場合)。
極小のチップ部品を目的の場所に短時間に手半田する秘訣は、「半田付け作業お助け孫の手」などのツールを使ってチップ部品をしっかり固定した状態で半田付けする事。
下写真のような製品を買っても良いだろう。あるいは接着剤で貼り付ける方式もある。
ちょっと高いけれど、このSMDクランプが有れば恐らくSMD部品の半田付け作業が捗ると思う。
でも、ワテ自作の「半田付け作業お助け孫の手」なら200円で自作出来るのだ。
と言う訳で、下写真のようにJLCPCB基板に表面実装部品(IC、Dual TR、2012Mサイズの抵抗とチップコンデンサ)の半田付けが無事に完了した。
写真 JLCPCB基板に表面実装部品(IC、Dual TR、2012M抵抗とコンデンサ)の半田付け完了
当初は2012Mサイズのチップ抵抗やチップコンデンサの半田付けには手こずるかなと心配していたのだが、非常にスムーズに作業を終える事が出来た。
JLCPCBさんの基板の半田パッドは半田の乗りも良かった。
半田ごてのチップを大型に交換する
残りはリード部品の半田付けなので、自称半田付けの達人(あくまで自称)のワテには簡単だ。
写真 DIP28、20、8ピンのICソケットを半田付けする
でも、油断は禁物だ。簡単な作業ほど注意深くやる必要がある。
まず、下写真のように半田ごてのコテ先を大型のタイプに交換した。
写真 白光(HAKKO) コテ先 T12BCF2を取り付ける(写真は交換前の0.8C型 T12-C08 コテ先)
下写真のように無事に三つのICソケットの半田付けが完了した。
DIP28、20、8ピンのICソケットを半田付け完了
次は、基板の左右にピンヘッダー(オス)を半田付けする。このピンヘッダーは下写真のように青いArduino UNO基板のピンソケットに差し込んで使うので、半田付け作業時にもその状態にしておくと良い。
写真 Arduino UNOの上に「AVR HV Rescue Shield 2」を載せて、両者をピンヘッダで接続(半田付け前)
上写真のようにセットした後は、ピンヘッダの約ニ十カ所の半田パッドを一気に半田付けした。
次は下写真のように赤、緑の二個のLEDと、白色のプッシュボタンスイッチ(モーメンタリ型)を半田付けした。
写真 赤、緑の二個のLEDと白色のプッシュボタンスイッチ(モーメンタリ型)を半田付けした
ちなみにこの白色プッシュボタンを押す事でヒューズビットの書き換えを行うのだ。
リード抵抗を半田付けして完成
残る作業は小型のリード線タイプの抵抗を三か所に半田付けする。
三つの抵抗のうち、二個はLED(緑、赤)の電流制限抵抗だ。オリジナル回路では300Ωが指定されていたのだが、手持ちには300Ωが無かったので少し大き目の360Ωで代用した。
写真 手持ちのリード線型 金属皮膜抵抗 大小三種類(大型:1/2W、中型:1/4W、小型:1/8W)の小型を使う
下写真のようにサンハヤトのリードベンダーを使ってリード線を直角に折り曲げる。
写真 サンハヤトのリードベンダーは電子工作に必須のツールだ
ちなみに下写真が今回の作業で使った工具類一式だ。
写真 今回の作業で使った工具類一式
この溝なしラジオペンチはお勧めだ。
下写真がワテの作業机。
写真 ワテの電子工作作業机
で、下写真のように全ての部品の半田付けが完了した。
写真 全ての部品の半田付けが完了した(部品面)
写真 全ての部品の半田付けが完了した(半田面)
上写真のように半田付けの表面は光沢があり、ワテとしては中々いい感じに半田付けが出来たと思っている。
今回使ったのはΦ0.3mm、Φ0.6mmの鉛入りハンダだ。
ワテの場合、鉛フリー半田は使わない。その理由は、以前試しに鉛フリー半田を使ってみたのだが、半田付けした後の表面光沢が出なかったので。
一方、昔から使っている鉛入りハンダ(有鉛ハンダ)なら、テカテカの表面光沢が出るので好きなのだ。
AVR HV Rescue Shield 2 を使ってATmega328Pのヒューズをリセットする
さて、半田付けはスムーズに終わったので「AVR HV Rescue Shield 2」は恐らく正常動作すると期待している。
早速使ってみる。
写真 左:ブートローダー書き込みシールド(赤)、中央:Arduino UNO、右上:書き込み出来ない328P(ブレッドボード上のパーツは当実験とは無関係)
上写真の赤色基板はこれだ↴
この赤基板は、書込み出来ない三個のATmega328Pを今回作成したリセッターで無事にリセット出来たら、その後でこの赤基板とArduino UNOを使ってブートローダーを書き込んでArduino UNOとして使えるか動作確認する為に使う。
ワテはArduino UNOは二台持っている。一つは上写真の純正品。約三千円くらい。
もう一つはArduino UNO互換品だ。本体だけでなく実験用の多数のモジュール(温度センサー、モーター、LCD表示その他)がセットになって三千円程度で売られているのでお勧めだ。
AVR HV Rescue Shield 2用のArduinoスケッチをダウンロードして書き込む
Arduino UNOとパソコンをUSBケーブルで接続しておく。
まずはMightyOhmさんのサイトからAVR HV Rescue Shield 2用のArduinoスケッチをダウンロードする。
この
HVRescue_Shield212.pde
と言うファイルをArduino IDEで開くと下図が出る。
図 HVRescue_Shield212.pdeをArduino IDEで開いた
この時点では先ほど完成した「AVR HV Rescue Shield 2」はArduino UNOには挿さない。
下図のように、
ボード:Arduino UNO
にセットしておく。
図 ボードはArduino UNOを選ぶ
この辺りの作業は、普通にLEDチカチカなどのArduinoスケッチを書き込む操作と同じだ。
AVR HV Rescue Shield 2 用スケッチをArduino UNOに書き込む
下図のようにスケッチ書き込みアイコンをクリックしてHVRescue_Shield212.pdeをArduino UNOに書き込む。
その結果、下図のように無事に書き込み成功。
図 HVRescue_Shield212.pde をArduino UNOに書き込み完了した
まあここまでの作業は、LEDチカチカなどのスケッチ書き込みと全く同じ手順だ。
AVR HV Rescue Shield 2 スケッチが起動
さて、HVRescue_Shield212.pde をArduino UNOに書き込み成功すると、シリアルモニタ画面を開くと下図のように四行のメッセージが出ていれば成功だ。
図 シリアルモニタ画面が正常に出ない場合(文字化けなど)にはボーレートを合わせると良い
上図では正常にCOM4シリアルモニタ画面にメッセージが表示されているが、ワテも最初は文字化けしていた。
その時には、スケッチ中に指定されているボーレート 9600とシリアルモニタ画面のボーレートが異なる値だったので、それを同じ9600にして再度スケッチ書き込み作業からやり直したら無事に上図のように文字化けせずにメッセージが表示された。
三種類のAVRマイコンの種類を選択する
この時点でもリセッターシールドはまだ装着しては行けない。
図 三種類のAVRマイコンの種類を選択する
今回は28ピンの328Pをリセットしたいので、上図のように「1」とENTERキーを押す。
そうすると、下図のように
Selected mode: ATMEGA
Insert target AVR and press button.
と表示される。
写真 リセット対象のAVRマイコン種類の選択完了
リセッターシールドと328Pを挿す
ここでようやく自作リセッターシールドをArduino UNOに挿した(下写真)。
写真 まずリセッターシールドをArduino UNOに挿す
そして328Pも挿す(下図)。
写真 328Pも挿す(三つのうちの1号機を挿した)
リセッターシールドの「GO!」スイッチ押すと赤LED光る
これで準備完了なので、下写真の白色ボタン(GO!)を押して離すと赤色LEDが点灯する(下写真)。
写真 GO!ボタン押下で赤色LEDが光る
LFUSE/HFUSEヒューズ設定値を入力するとリセット出来る
そうすると下図のようにシリアルモニタ画面には現在のLFUSE/HFUSEの値が表示されて、新規LFUSE値の入力状態になる。
図 Enter desired LFUSE hex value (ie. 0x62): のメッセージが表示された
ここで上図のようにLFUSEに 0x62 を入力してENTERすると、次は下図のようにHFUSE値の入力待ちになる。
そこで上図のようにHFUSEに 0xDF と入れてENTERを押すと下図が出る。
図 指定したLFUSE/HFUSE値が無事に書き込まれた
これで上図のように指定したLFUSE/HFUSE値が無事に書き込まれた。
AVRマイコンのリセット成功だ。
なお、ここで指定した以下の値がATmega328Pのヒューズビットの初期値かと思ったのだが、
HFUSE:DF
新品のATmega328Pで調べてみたら、初期値は以下の値だった。
HFUSE:D9
と言う事で、兎に角、今回作成したリセッターを使うとLFUSE/HFUSEに任意の二桁の16進数を設定出来ることが分った。
HFUSE/LFUSEの詳しい意味を調べた(追記)
その後、HFUSE/LFUSEの詳しい意味を調べた。
megaAVR® データシート(https://avr.jp/user/DS/PDF/megaXX8PA.pdf)の185, 186ページから以下に引用する。
下図に示すようにHFUSE/LFUSEの既定値は D9/62 となっている。
LFUSE:1001 = 0x62
図 ヒューズ上位と下位の意味
ここでCKSEL1のみ1ビットが立っている状態は以下に引用するように「校正付き内蔵RC発振器」を使う設定を意味する。
図 校正付内蔵RC発振器でAVRマイコンを動作させる設定(既定値)
つまりATmega328Pは初期状態では内蔵8MHzクロックを使う設定になっていて8分周はしない(HFUSE/LFUSE=D9/62)。
外部クリスタルで作ったクロックを使うLFUSE設定
では外部クリスタルを使ってクロックを作る場合のヒューズ設定は以下の通り。
図 クリスタル用低電力発振器を使う場合のCLSEL, SUTヒューズ設定
引用元(megaAVR® データシート https://avr.jp/user/DS/PDF/megaXX8PA.pdf)の21ページ)
従って CKSEL3~0=1111(0xF)に設定すれば8.0~16.MHzの外部クリスタル発振子を使う事が出来る。
その設定をMicrochip Studioを使って実際にやってみた(下図)。
LOW Fuse設定で内蔵RC8MHzクロックを選択 | LOW Fuse設定で外部クリスタルクロックを選択 |
という事でAVRマイコンのFUSE設定の意味ややり方がかなり分かって来たぞ。
(追記終わり)
では、本題に戻ろう。
残り二個のATmega328Pもリセットする
残り二つのATmega328Pも下写真のように差し替えて、同様にヒューズビットを初期化した。
写真 ATmega328Pを差し替えてヒューズビットをリセットした
これで無事に三個のATmega328Pマイコンのヒューズ設定を初期化出来た。
リセットしたATmega328PにArduino UNO用ブートローダーを書き込んでみる
では最後の作業だ。
リセットしたATmega328PにArduino UNO用ブートローダーを書き込んでみる。これで正常にブートローダーを書き込む事が出来ればこれらの328PはArduino UNOに載せて使う事が出来るよになる(はずだ)。
Arduino ISPスケッチを書き込む
まずは下写真のArduino UNOをUSBでパソコンに接続する。
そしてArduino ISPスケッチを書き込むのだ。
写真 赤色(ブートローダー書き込みシールド)とヒューズリセットした3個の328P
具体的には下図のように
ファイル -> スケッチ例 -> 11. ArduinoISP -> Arduino ISP
を選択してファイルを開く。
図 Arduino ISPスケッチをArduino IDEに読み込む
そして下図のようにArduino ISPスケッチをマイコンボードに書き込めば成功だ。
図 Arduino ISPスケッチをマイコンボードに書き込む
下図のように「ボードへの書き込みが完了しました」メッセージが出れば成功だ。
図 Arduino ISPスケッチを書き込み成功
ブートローダー書き込みシールドを挿す
そして下写真のようにブートローダー書き込みシールドを挿して、その上に328P(1号機)を挿す。
写真 ブートローダー書き込みシールドを挿して、その上に328Pを挿す
下写真のように
ツール -> 書込み装置:”Arduino as ISP”
を選択する。
図 書込み装置:”Arduino as ISP”を選択
ブートローダーを書き込む
最後に
ツール -> ブートローダーを書き込む
を実行する(下図)。
図 ツール -> ブートローダーを書き込むを実行する
その結果、上図のメッセージのように無事にブートローダー書き込みに成功した。
この328P(1号機)はその後Arduino UNOに挿して無事にArduino UNOとして動いたのだ。
エエ感じや!
328Pの2号機、3号機はなぜかブートローダー書き込み失敗
ところが残り二個の328P(2号機、3号機)も同様にやったのだが、なぜかブートローダー書き込みエラー(下図)。
図 328Pの二号機、三号機はブートローダー書き込みエラー
あかんw
まとめ
ワレコ
う~ん、AVRマイコンは難しいわ。
当記事ではATmega328PなどのAVRマイコンのヒューズビットを任意に設定出来る「AVR HV Rescue Shield 2」の製作過程とそれを使ったリセット作業の過程を紹介した。
AVR HV Rescue Shield 2の公式サイトには製作に必要な全てのデータが公開されている。そのデータの中にはEAGLEで出力したプリント基板の設計データ(Gerberデータ)もあるので、今回はそのデータを拝借してJLCPCBさんに基板を発注した。
JLCPCBさんのサイトにガーバーデータをアップロードして、僅か六日で基板が自宅に届いた。
その基板を使って、無事にAVR HV Rescue Shield 2を完成させる事が出来た。これは所謂AVR用ヒューズリセッターシールドと言う事になる。
そのリセッターシールドを使って328PマイコンのLFUSEとHFUSEの値を任意の二桁の16進数に書き換える事に成功した(328Pチップを三個)。
ヒューズビットを初期化した三個の328Pチップにブートローダー書き込みシールドを使ってブートローダーを書き込む実験をした結果、一個の328Pは無事にブートローダー書き込み成功。
でも残り二個の328Pはブートローダー書き込みエラー。
原因は不明だ。
と言う訳で、AVRマイコンは難しい。
引き続き調査だ。
(続く)
コメント