ホーム > カテゴリ > ロボット・電子工作・マイコン >

Arduinoのデバイスが認識されない場合の修理/対処方法 [ATmega16U2]

Arduino UNOにUSBケーブルを差してもパソコンのデバイスマネージャーで認識されずに、IDEで開発が出来なくなった場合の修理、対処方法です。

前提条件

1. Arduinoのデバイスがパソコンで認識されなくなった。
2. USBケーブルを差すと電源が供給されている。
3. リセットボタンを押すとデジタル13ピンの横にある小さいオレンジのLEDが点滅する。

3番目がダメな場合は「ブートローダ」が原因の可能性が高いです。ブートローダはATmega328Pにブートローダを書き込むをご覧ください。

原因

Arduinoに搭載されているAtmel(アトメル)の「ATmega16U2」のデータが消えた、またはデータが壊れた可能性があります。

このATmega16U2はUSBコントロール機能(USBシリアル変換)を有していますので、これが動作しないとArduinoはパソコンで認識されません。

やること

ATmega16U2を「DFUモード」(ファームウェア書き込みモード)にします。

次にAtmelの純正アプリである「FLIPツール」を使用して、ATmega16U2にUSBシリアルのファームウェアを書き込みます。

※このファームウェアはArduinoが提供している純正品です。

使用部品・材料

総額で約100円です。(Arduino本体の値段を除く)

部品/材料値段備考
ジャンパーピン緑(2.54mmピッチ)(25個入)¥100色はなんでもOKです。

私は2.54mmコネクタお試しセット(K-00173)に同梱されているものを使用しました。

秋月電子の通販コード(P-03692)

ジャンパーピンがない場合は「カーボン抵抗器」で代用が可能です。(後述)

1. ATmega16U2をDFUモードにする

ArduinoのUSBコネクタ付近にある6本足のICSP(for USB interface)の左2本にジャンパーピンを差します。カーボン抵抗器を使用する場合は同じように足と足を併せて下さい。(ICSPの2本を導通[ショート]させる)

次にArduinoにUSBケーブルを差します。電源が入ったまま、3~5秒ぐらいしてから、ジャンパーピン(抵抗器)を外します。

すると、デバイスマネージャで次のように表示されるはずです。

この時点で「ATmega16U2 DFU」が表示されていない場合は、恐らくArduinoの何処かがハードウェア的に壊れています。

2. FLIPのダウンロード

Atmel社(2016年にMicrochip社が買収)の公式サイトから「FLIP」をダウンロードします。

http://www.atmel.com/tools/FLIP.aspx

私はJAVAランタイム同梱の「FLIP 3.4.7 for Windows (Java Runtime Environement included)」をダウンロードしました。環境に合わせて任意のファイルをダウンロードして下さい。

3. FLIPのインストール

インストールする際はファイルを右クリックして「管理者として実行」(管理者権限)で実行します。

インストール風景

4. FLIPの実行 その1

FLIPを実行していじくると...

「コンピューターにlibusb0.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」や「atlibusbdfu.dll not found」のエラーが発生します。

どうやら、ドライバは自動でインストールされないようです。

5. ドライバのインストール

デバイスマネージャーを開いて「ATmega16U2 DFU」を右クリックして「ドライバーソフトウェアの更新」を選択します。

「ドライバーを手動でインストール」を選択します。

FLIPのインストールフォルダにある「usb」フォルダを選択します。

次へボタンを押すとドライバがインストールされます。

最終的にデバイスマネージャーで「不明なデバイスの黄色いマーク」が取れていればOKです。

6. FLIPの実行 その2

FLIPを実行して左上の「IC」アイコンを押します。そして、「ATmega16U2」を選択します。

次に「IC」アイコンの右にある「USBケーブル」アイコンで「USB」を選択します。

「USB Port Connection」の「OPEN」を選択します。

すると、Arduinoの各LEDが次のように点灯します。

次にメニューの[File][Load HEX File]を選択します。

Arduino IDEのインストールフォルダの奥深くにある「Arduino-usbserial-atmega16u2-Uno-Rev3.hex」を選択します。

C:\Program Files (x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\arduino-usbserial\

左下にある「Run」ボタンを押します。

そして、左下にあるステータスバーに「Verify PASS」が表示されればファームウェアの書き込みが成功です。

FLIPを終了させて、USBケーブルを引っこ抜きます。

7. Arduinoの復活!

いよいよ、Arduinoが復活したかわかります。

USBケーブルをArduinoに差します。すると、自動でドライバがインストールされます。その時に「ピコン♪」の音と共にデバイスマネージャーのポートに「Arduino UNO」と表示されればArduinoの復活です。

念のために、LEDのテストでもすると良いです。

参考サイト

atmel Flip を使用時のatlibusbdfu.dll not foundの対処法
壊れたArduinoが直る?(場合もあるかもしれない)

最後に

「Arduino Uno R3」はスイッチサイエンスでは永久保証なので、ハードウェア的には簡単には壊れない設計のようです。

私がATmega16U2のデータを破損したのは、ICSPに9V電池のリード線が触れてしまって「ドロン♪」って音が鳴ったときだと思います。

お疲れ様でした。





掲示板

ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。

関連記事



公開日:2017年08月17日 最終更新日:2017年08月20日
記事NO:02527