11月26日発売 書籍『わかる!電子工作』にArduinoで動かす4足歩行ロボットを掲載して頂きました!

【Arduino Uno】壊れたArduinoを修理する!マイコンチップATmega328Pの交換方法【壊れたArduinoの修復 その②】

Arduinoは電子工作で便利に使えるマイコンボードです。
しかし突然PCに認識されなくなったり動作しなくなることが稀に発生します。
そんな原因不明で動かなくなったArduinoボードですが、ブードローダーの修復やマイコンチップの交換で修理できる場合があります。

何らかの原因で動作しなくなったArduino UnoとNanoの計3台を以前ブートローダーの書き換え(修復)により問題なく動作する状態に戻すことが出来ました。
Arduinoボードのチップに書き込まれているブートローダーが破損(消去された?)していたのが原因のようです。

【Arduino】ブートローダーの修復(書き換え)でArduinoボードが復活する場合があります!【壊れたArduinoの修復 その①】

そして、上記ブートローダーの書き換え作業でも修理することが出来なかったArduino Unoを搭載されているマイコンチップ(ATmega328P)を交換する事により修理することが出来たのでご紹介したいと思います。

ATmega328Pを交換し壊れたArduino Unoを修理する!

何らかの原因でArduinoに書き込まれているブートローダー(ソフトウェア)が破損等してボードが動作しない場合、ブートローダーを新たに書き込んであげれば元通り動作する状態に戻すことが出来る場合があります。

しかし配線ミスなどによりパーツが物理的に破損してしまった場合はボード上のパーツを交換する必要がありますが、レギュレーターやPCとUSB接続するためのATmega16U2などのパーツはArduino Unoの場合ほぼ交換が不可能な構造となっています。

しかしArduinoボードの心臓部であるプロセッサの破損なら交換は比較的簡単に行うことができ修理することが出来ます。

配線ミスにより動作しなくなったArduino Uno

こちらは電子工作という趣味を始めた時に購入したArduino Uno互換ボードとなります。
初めて使ったArduinoボードなのでちょっとした思い入れがあります。

700円ほどで海外サイトから購入した格安互換ボードですが、テスト動作をさせている時にブレッドボードに組んだ外部電源を誤ってデジタルピンに繋いでしまい、その後全く動作しなくなったボードです。

USBケーブルを挿すとボード上のON LEDは点灯することから通電に関しては問題なさそうで、どうやらマイコンチップの破損が原因となるようでした。
もちろん上記記事でご紹介したブートローダーの書き換え作業を行っても正常に動作することはありませんでした。

Arduinoボードのチェック!

今回、Arduino Unoに搭載されているマイコンチップ『ATmega328P』を交換する事によりArduinoの修理をしようと考えています。

しかし破損箇所がマイコンチップ以外の場合は当然修復することが出来ません。
問題切り分けのためArduinoボードのチェックから行ってみます。

①電源投入時、ボード上のON LEDが点灯しない!

電源投入時にArduinoボード上のON LEDが点灯しない場合は電源ラインの破損が考えられます。

Arduinoのボードにはレギュレーターが内蔵されていて5Vの電圧をArduinoに供給して駆動しています。

通電時にON LEDが点灯しない場合は、このレギュレーターの故障や過電圧を加えたことなどによるヒューズの切断、その他電源ラインのパーツ破損が考えられるため今回ご紹介するマイコンチップの交換だけでは修理することが出来ないと思います。

②PCにデバイスとして認識されない

次にArduinoボードに通電はされているけど(ON LEDの点灯)、PCと接続してもデバイスとして認識されない場合はボード上のUSBシリアル変換器のチップの破損が考えられます。
Arduinoには、PCとUSB接続で繋ぐための『ATmega16U2』チップが搭載されています。
このチップの物理的な破損であれば交換はほぼ無理だと思います。

また、ATmega16U2のソフトウェア(ファームウェア)の破損であればUSBシリアルのファームウェアの書き込みにより復活する場合があるようですが・・・今回はマイコンチップ(ATmega328P)の交換の話に限定して進めていきます。(別の機会にご紹介したいと思います)

【Arduino】デバイスが認識されない!ATmega16U2のファームウェアの修復で対処出来る場合があります!【壊れたArduinoの修復 その③】

上記項目が問題なく、Arduinoボードに通電も正常に行なえPCからもデバイスとして認識できている場合は今回ご紹介するマイコンチップの交換で修理できる可能性があります。

マイコンチップ(ATmega328P)の交換でArduinoを修理する

Arduino Unoには、ATmega328Pという8ビットAVRマイコンチップが搭載されています。
このAVRと呼ばれるマイコンチップの中にはArduinoを構成するためのプログラムが書き込まれています。
このArduinoを構成しているプログラムをブートローダと呼びますが、これによりスケッチを書き込みプログラム可能となっています。

ArduinoボードにはUnoやNano、Megaなど多数ボードが存在します。
Arduino Unoは、Arduino Uno Rev3が現在の最新モデルとなっています。(画像引用:Arduino公式サイトより)

そしてArduino Uno R3には、上記のようなDIP-IC型チップの通常版とSMD版(Arduino Uno Rev3 SMD)があります。
機能的には同じですが、使われているATmega328Pマイコンチップの形状が異なっています。

SMD版の方ではチップの交換は基本的に出来ませんが、通常版となるArduino Uno R3ではチップがDIP式でICソケットに付けられているので簡単に交換することが出来ます。

Arduino Unoで使われているATmega328Pチップは1個200~300円程と比較的安価な価格で入手する事ができます。
こちらは今回Arduino Uno修理用に海外サイトから購入したATmega328Pチップです。
1個400円ほどでした。

国内サイトでも秋月電子通商さんなんかでも安く購入する事ができます。

Arduinoの故障原因がこのATmega328Pチップの破損が原因なら通常版Arduino Unoではソケットからチップを外して交換するだけで修理することが出来ます。(ブートローダーの書き込みも必要です!)

ATmega328PチップはArduinoとして機能させるにはブートローダーの書き込みを行う必要があります。
今回私が購入したものはブートローダーが書き込み済みで販売されていたものなのでチップの交換のみで問題なく動作するようになりました。

ATmega328PチップはArduino以外の用途で使われることもあるためブートローダーが書き込まれていない素の状態のものも販売されています。
その場合はブートローダーの書き込み作業も必要となってきます。
チップの交換作業とブートローダー書き込み作業を見ていきましょう。

ATmega328Pチップの交換作業

Arduino Uno R3通常版では、マイコンチップATmega328PがICソケットに挿された状態でボードと接続されています。
そのため簡単にチップを取り外して交換する事ができます。

ソケットからチップを外すのはDIP-ICを引き抜く工具があれば便利ですが、マイナスドライバーでも簡単に外すことが出来ました。
先端が細い精密ドライバーを使いICとソケットの隙間に挟み少し持ち上げ、反対側も同様に持ち上げる・・・これを繰り返していくと外すことが出来ます。
その際、片側だけ上げすぎるとICの脚が曲がりやすいので注意してください。(故障パーツなので問題ないのですが)

あとは新しいマイコンチップを取り付ければ完了です。
新品チップは脚が真っ直ぐではなく少し外側に向いているので修正した方がソケットに入れやすいと思います。

チップの脚を揃える治具もあると便利ですね。

MEMO
チップには向きがあるので注意してくださいね!

Arduinoのチップ交換は頻繁に行うものではありませんが、電子工作用途でブレッドボードにICを挿し込んで使うことは比較的多いのでこれを機にこちらのアイテムを購入しました。

【電子工作】DIP-ICを扱う際に便利な工具のご紹介!『DIP-IC引き抜き工具』『ピンそろった』

そしてArduinoボードに通電。
無事正常に動作するようになりました。
今回ブートローダーが書き込み済みのATmega328Pチップを使い交換作業を行いました。
通電後、オンボードLEDが点灯するLチカのスケッチも書き込まれていました。

ブートローダーを書き込む手順

今回交換用として入手したATmega328Pチップは、ブートローダーが書き込み済みのものだったのでチップの交換のみでArduino Unoを復活させることが出来ました。

Arduino用のブートローダーが書き込まれていない素の状態のATmega328Pチップも販売されています。
その場合、チップ交換後にブートローダーの書き込み作業が必要となってきます。

Arduinoにブートローダーを書き込む方法はいろいろとあるようです。
基本的にArduino単体ではブートローダーを書き込む事ができないため、ライタ(書き換え装置)を使う必要があります。

Arduinoの拡張シールドとしてこのようなブートローダーを書き込むためのAVR ISPシールドなども販売されています。

一番簡単な方法は、正常に動作するArduinoをもう1台用意してこのArduinoをブートローダーを書き換えるためのライタとして使用する方法だと思います。

少しその手順もご紹介しておきます。
ATmega328Pチップを交換後、もう1台ライタとして機能するArduinoと接続しブートローダーを書き込むというものとなります。
ブートローダーの書き込み作業に関しては、詳しくはこちらの記事をご覧下さい!

【Arduino】ブートローダーの修復(書き換え)でArduinoボードが復活する場合があります!【壊れたArduinoの修復 その①】
STEP.1
新しいマイコンチップと交換する
Arduinoから故障したマイコンチップを取り外し新しいチップと交換する。(上記作業となります)

STEP.2
もう1台のArduinoにライタとして機能させるためのスケッチを書き込む
正常に動作するArduinoを用意しライタとして機能させるためのスケッチ(ArduinoISPスケッチ)を書き込む。(上記記事を参考にして下さい)

STEP.3
2台のArduinoを接続する
ライタとしてのArduinoとチップを交換したArduinoを接続(配線)する。(上記記事を参考にして下さい)

STEP.4
ブートローダーの書き込み
ライタとしてのArduinoを経由してブートローダーを書き込めば完了です。


これでArduinoボードの交換した新しいATmega328Pチップにブートローダーの書き込みを行い正常に動作する状態にする事ができます。

ATmega328Pチップの入手先

Arduinoボードの故障原因がマイコンチップの問題であれば、今回作業したATmega328Pチップの交換やブートローダーの書き換え作業で復活できる場合があります。
私のArduino Unoは無事復活し問題なく動作するようになりました!

今回700円程で入手したArduino Uno互換ボードの修理のためにATmega328Pチップの入手(1個400円くらいでした)や交換作業の手間などを考えると、新たに互換ボードを買った方が効率がいいように感じますが・・・個人的にはArduinoボードに関しての知識が増えたので良かったかななんて思っています。

初めて買ったArduinoボードで電子工作という趣味にハマるきっかけとなった思い入れがあるボードなので修理して動くようになったのは良かったです!
通常版のArduino Uno R3ボードでは、マイコンチップの故障が原因ならチップ交換は簡単にでき修理することが出来ます。

ATmega328Pチップは、国内サイトでは秋月電子通商さんやスイッチサイエンスさんなんかでも安価な価格で販売されています。
秋月電子さんで販売されているチップは安いですがブートローダーが書き込まれていないので、チップ交換後のブートローダー書き込み作業の手間が面倒であればスイッチサイエンスさんからの購入がいいかと思います。

また、Aliexpressなどの海外サイトやAmazonでも取り扱われているようなので送料なども含め検討されてみてはいかがでしょうか!

Arduinoボードは、多数の互換ボードを含め正規Arduinoボードも使っています。
正規ボードは1台3000円以上の価格となっていて互換ボードより格段に値段が高くなっています。

今回のような格安互換ボードではあまりメリットは感じられませんが、正規ボードの場合は数百円のチップ交換で修理できる場合もあるのでArduinoを使った電子工作などをされている方は手元に持っておくと便利かと思います。

最後に!

Arduinoボードを使っていると急に使えなくなる(動かなくなる)場合が稀にあります。

Arduino Unoなどで使われているATmega328Pマイコンチップは安価な価格で入手する事ができ、交換作業によりArduinoボードを復活させる事が出来る場合があるということは知っておくと便利ですね。

コメントを残す