🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

2回答

4798閲覧

マイコンのドライバーをインストールできない

Ceon000

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2020/11/26 12:20

編集2020/11/27 11:57

前提・実現したいこと

dfu-programmerをマイコンのドライバーとしてインストールすること

発生している問題・エラーメッセージ

ELEGOO Arduino用UNO R3コントロールボードをWindows10にUSB接続し
画像赤丸部分をショートさせても「不明なデバイス」にならず
「USB シリアル デバイス(COM3)」として認識されてしまう
イメージ説明

試したこと

「USB シリアル デバイス(COM3)」として認識されたまま
ドライバーの更新>コンピューター上のドライバを参照をして
dfu-programmerを使用

結果としては
「このデバイスに最適なドライバーが既にインストールされています」
と表示されドライバーのインストールが行えない

補足情報(FW/ツールのバージョンなど)

「USB シリアル デバイス(COM3)」にインストールされているドライバー
→C:\Windows\system32\drivers\usbser.sys

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2020/11/26 12:54

どこを「ショートさせて」いますか?
guest

回答2

0

ポケモンをやりたいだけの人には難しい話になりますが、ここは「ITエンジニア特化型Q&Aサイト」だそうなので(teratailをぐぐると広告でそう出る)、以下ITエンジニア(+エレクトロニクスエンジニア)特化型の話になります。
(ポケモンな人は、諦めてArduinoを買い直すのが早いと思います。懲りずに互換機を買うか、安全のため正規品を買うかはお好きに。Arduinoはオープンハードなので「正規」というのは微妙かもしれませんが)

ATMega16U2等は、リセット端子の立ち上がり時にHWB端子がLレベルになっているとBootloaderとして書かれているプログラムが起動するようになっています。で、出荷時にはDFUのプログラムがBootloaderに書かれていて、HWB端子はプルダウンされているので、ATMega16U2にリセットをかけてやればDFUデバイスとして立ち上がるはず...というのが仕組みです。
(なお、パワーオンリセット時にはリセット端子は叩かないのでユーザープログラム:ArduinoにおいてはUSB-UART変換が起動するということのようです)

この仕組がうまく働かないのですから、上記のいずれかに問題がある、ということになります。
また、マイコン側がDFUモードになっていないのなら、いくらWindows側のドライバをいじくり回しても無駄です。強制的にDFUドライバを入れる、というのは解決にならないと考えられます。

で、DFUモードに入れないケースを想定してみると

  • 中華な互換機なのでHWBがプルダウンされていない(手抜き) -> 同メーカーで出来ている例が多数なのでこの線はなさそう
  • 製造不良(部品欠品やショート、ハンダ不良)でプルダウンが出来てない/リセットが出来ない -> あり得る
  • 故障 -> あり得る
  • Fuseレジスタ HWBEがアクティブになっていない -> あり得る
  • DFUのBootloaderが書かれていない/破損している -> あり得る

前者二つについては、テスターなどの計測器を用意して回路図を読み、基板パターンを推測しながらチェックすることになると思われます。
後者二つについては、プログラマを入手または作成して、BootloaderやFuseレジスタを上書きすることになると思われます。
故障の場合は、マイコンが不良となっている場合は事実上お手上げ。それ以外はケースバイケース。

これ以上の話をしますか?


これ以上の話をしますか?

ぜひお願いしたいです。

とのことなので。

テスターは安いので構いません。デンキをいじるなら入手してください。電気は目に見えないので必須になります。こんなのでも...日本メーカー老舗にこだわらなければもっと安いのもあるでしょう。
Arduino UNO(純正)の回路図はここ、基板パターンファイルはここ
基板パターンはいわゆるプリント基板CADと呼ばれる類のソフトなら大抵開けると思います。で、そこそこ以上の中華なArduinoなら、パターンもそのまま真似してるからこれが参考になるでしょう。
その辺を調べると(詳細を省く...というか知らない人にイチから教えると日が暮れる)、図の矢印の電極(回路図で言えばC5の16U2側)が

  • 通常のArduino動作時およそ5V、
  • ICSPコネクタのピンショートでリセットをかけている(ショートし続けた)時に、ほぼ0V

になってなきゃいけないことがわかります。ではそうなっているか...
テスタを電圧計モードにしてGNDとの間の電圧を測ってみてください。周辺とショートさせたりしないように...
Arduino基板図(純正)

通常時5V付近になっていないようなら...マイコンの足との間で断線か? となるとちょっと修理は難しい。でもそういう状態だと普通のArduinoの書き込みも出来ないはず。そういう症状はないんですね?
リセット時に0v付近になっていないなら、この電極とGND間に1KΩぐらいの抵抗をはんだ付けする。初めての人にはかなり辛いと思う...

電圧が正常っぽいなら、ソフトというか、マイコンのファームウェアやFuseレジスタを疑って、書き換えを試みることになるでしょう。

使うツールは例えばAtmel ICE。他にもっと安いISPとか言われる類、あるいはArduinoをISPに仕立てたものでも使えるのかも知れませんが私はAtmel ICEを持っているのでとりあえずそれ。PC側にMicroChip Studio (最近Atmel studioから名前が変わった。Microchipサイト内でも表記が変わってないところも)。で、Firmwareがこれか。このパッケージの中のATMega16U4-usbdevice_dfu-1_0_1.hex?かな?を書き込んで(←書いてみたけどDFUモードにならなかった)at90usb162-bl-usb-1_0_5.hexを書き込むと、AT90USB162としてDFUで検出し、DFUでの書き込みも出来るようになった。あるいは、Arduino IDEに含まれるファーム(下記参照)を書き込んで(こちらだとDFU時ATMega16U2として検出)、FuseレジスタのHWBEをオフにすればよさそう...という実験は週末気が向けば。


というわけで週末。
Arduino IDEのメニュー[ファイル]-[スケッチ例]-[ArduinoISP]-[ArduinoISP]をnanoに書き込んで、16u2側のICSPに接続。
Atmel Studio/Microchip StudioではArduino ISPは使えませんでしたのでavrdudeで。

arduino IDEのインストールディレクトリをarduino-1.8.13として
cd arduino-1.8.13\hardware\tools\avr\bin
./avrdude -p m16u2 -c avrisp -P com5 -C ..\etc\avrdude.conf -b 19200
とすると(いうまでもなく、ポートは環境に合わせてください)

Text

1avrdude.exe: AVR device initialized and ready to accept instructions 2 3Reading | ################################################## | 100% 0.05s 4 5avrdude.exe: Device signature = 0x1e9489 (probably m16u2) 6 7avrdude.exe: safemode: Fuses OK (E:F4, H:D9, L:FF) 8 9avrdude.exe done. Thank you.

とのことで接続出来ているみたい。Fuseの値がこれと違ったらFuseの書き換えを試行しましょう。Fuseを書き間違えるといわゆる「文鎮化(なにも出来なくなる)することもあるので注意。あまりいじりたくないので実験もしません。

続いて
./avrdude -p m16u2 -c avrisp -P com5 -C ..\etc\avrdude.conf -b 19200 -U flash:w:\directExecute\arduino-1.8.13\hardware\arduino\avr\firmwares\atmegaxxu2\Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex
で書き込み実行。(.hexファイルを C:\~でドライブ名から書いたり、..\~で相対パスで指定したら何故かエラーになる? もちろんパスは環境にあわせて変更してください)
以上で、通常時USB-UART変換、リセット(ピンショート)でDFUに入る状態です。

確実に復帰できるとはいいません。そこで中華なnanoあたりを買うのか(Amazonで三百円台~)、だったらいっそもう一台ちゃんと16U2を使ったUNO互換機(千円以上)を買ってしまったほうがいいんじゃないのか、ちょっと悩ましいところもありますね。

投稿2020/11/27 23:04

編集2020/12/06 03:36
thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ceon000

2020/11/30 12:28

ご回答ありがとうございます。 >ポケモンな人 正直なところポケモンな人です。 マイコンに関してはまるきり初心者ですがこれをきっかけとして勉強させていただければと考えております。 >これ以上の話をしますか? ぜひお願いしたいです。 具体的に必要であるテスター等の計測器や回路図・基板パターンのチェックの仕方、またはプログラマの入手・作成方法とBootloaderやFuseレジスタを上書きする方法をご教授願えますでしょうか?
guest

0

ELEGOO Unoボードは、ファームウェアが古いバージョンであるため、DFUモードに入ることができません。
この問題は、新しいファームウェアをUnoボードに再書き込みすることで解決できます。 問題を解決するには、ISPバーナーまたは別のUnoボードを使用できます。
詳細な操作については、次のリンクのチュートリアルを参照してください。
http://dwz.date/dTh8

ISPバーナーまたは別のUnoボードがない場合は、UnoボードをAmazonに戻すことをお勧めします。

投稿2021/05/24 06:53

bradchen

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2021/05/24 12:43

> ファームウェアが古いバージョンであるため、DFUモードに入ることができません これって何かソースありますか? AmazonのELEGOOのUNOのページに"ご注意:UNO R3コントロールボードはDFUモードを入ることができない場合..."なんてのが書き足されているのには最近気がついたのですが、新しい/古いとかいう話にはなっていないようなので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問