前提・実現したいこと
dfu-programmerをマイコンのドライバーとしてインストールすること
発生している問題・エラーメッセージ
ELEGOO Arduino用UNO R3コントロールボードをWindows10にUSB接続し
画像赤丸部分をショートさせても「不明なデバイス」にならず
「USB シリアル デバイス(COM3)」として認識されてしまう
試したこと
「USB シリアル デバイス(COM3)」として認識されたまま
ドライバーの更新>コンピューター上のドライバを参照をして
dfu-programmerを使用
結果としては
「このデバイスに最適なドライバーが既にインストールされています」
と表示されドライバーのインストールが行えない
補足情報(FW/ツールのバージョンなど)
「USB シリアル デバイス(COM3)」にインストールされているドライバー
→C:\Windows\system32\drivers\usbser.sys
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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との間の電圧を測ってみてください。周辺とショートさせたりしないように...
通常時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総合スコア7703
0
ELEGOO Unoボードは、ファームウェアが古いバージョンであるため、DFUモードに入ることができません。
この問題は、新しいファームウェアをUnoボードに再書き込みすることで解決できます。 問題を解決するには、ISPバーナーまたは別のUnoボードを使用できます。
詳細な操作については、次のリンクのチュートリアルを参照してください。
http://dwz.date/dTh8
ISPバーナーまたは別のUnoボードがない場合は、UnoボードをAmazonに戻すことをお勧めします。
投稿2021/05/24 06:53
総合スコア2
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。