回答編集履歴
5
補足・修正
test
CHANGED
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
-
使うツールは例えば[Atmel ICE](https://www.microchip.com/developmenttools/ProductDetails/PartNO/ATATMEL-ICE)。他にもっと安いISPとか言われる類、あるいはArduinoをISPに仕立てたものでも使えるのかも知れませんが私はAtmel ICEを持っているのでとりあえずそれ。PC側に[MicroChip Studio](https://www.microchip.com/mplab/microchip-studio) (最近Atmel studioから名前が変わった。Microchipサイト内でも表記が変わってないところも)。で、
|
87
|
+
使うツールは例えば[Atmel ICE](https://www.microchip.com/developmenttools/ProductDetails/PartNO/ATATMEL-ICE)。他にもっと安いISPとか言われる類、あるいはArduinoをISPに仕立てたものでも使えるのかも知れませんが私はAtmel ICEを持っているのでとりあえずそれ。PC側に[MicroChip Studio](https://www.microchip.com/mplab/microchip-studio) (最近Atmel studioから名前が変わった。Microchipサイト内でも表記が変わってないところも)。で、Firmwareが[これ](https://ww1.microchip.com/downloads/en/DeviceDoc/megaUSB_DFU_Bootloaders.zip)か。このパッケージの中の~~ATMega16U4-usbdevice_dfu-1_0_1.hex?かな?を書き込んで~~(←書いてみたけどDFUモードにならなかった)at90usb162-bl-usb-1_0_5.hexを書き込むと、AT90USB162としてDFUで検出し、DFUでの書き込みも出来るようになった。あるいは、Arduino IDEに含まれるファーム(下記参照)を書き込んで(こちらだとDFU時ATMega16U2として検出)、FuseレジスタのHWBEをオフにすればよさそう...という実験は週末気が向けば。
|
88
88
|
|
89
89
|
|
90
90
|
|
4
追記
test
CHANGED
@@ -94,13 +94,17 @@
|
|
94
94
|
|
95
95
|
Arduino IDEのメニュー[ファイル]-[スケッチ例]-[ArduinoISP]-[ArduinoISP]をnanoに書き込んで、16u2側のICSPに接続。
|
96
96
|
|
97
|
+
Atmel Studio/Microchip StudioではArduino ISPは使えませんでしたのでavrdudeで。
|
98
|
+
|
99
|
+
|
100
|
+
|
97
101
|
arduino IDEのインストールディレクトリをarduino-1.8.13として
|
98
102
|
|
99
103
|
`cd arduino-1.8.13\hardware\tools\avr\bin`
|
100
104
|
|
101
105
|
`./avrdude -p m16u2 -c avrisp -P com5 -C ..\etc\avrdude.conf -b 19200`
|
102
106
|
|
103
|
-
とすると
|
107
|
+
とすると(いうまでもなく、ポートは環境に合わせてください)
|
104
108
|
|
105
109
|
```Text
|
106
110
|
|
@@ -132,7 +136,7 @@
|
|
132
136
|
|
133
137
|
`./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`
|
134
138
|
|
135
|
-
で書き込み実行。(.hexファイルを C:\~でドライブ名から書いたり、..\~で相対パスで指定したら何故かエラーになる?)
|
139
|
+
で書き込み実行。(.hexファイルを C:\~でドライブ名から書いたり、..\~で相対パスで指定したら何故かエラーになる? もちろんパスは環境にあわせて変更してください)
|
136
140
|
|
137
141
|
以上で、通常時USB-UART変換、リセット(ピンショート)でDFUに入る状態です。
|
138
142
|
|
3
追記
test
CHANGED
@@ -84,4 +84,58 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
-
使うツールは例えば[Atmel ICE](https://www.microchip.com/developmenttools/ProductDetails/PartNO/ATATMEL-ICE)。他にもっと安いISPとか言われる類、あるいはArduinoをISPに仕立てたものでも使えるのかも知れませんが私はAtmel ICEを持っているのでとりあえずそれ。PC側に[MicroChip Studio](https://www.microchip.com/mplab/microchip-studio) (最近Atmel studioから名前が変わった。Microchipサイト内でも表記が変わってないところも)。で、Firmwareが[これ](https://ww1.microchip.com/downloads/en/DeviceDoc/megaUSB_DFU_Bootloaders.zip)か。このパッケージの中のATMega16U4-usbdevice_dfu-1_0_1.hex?かな?を書き込んで、FuseレジスタのHWBEをオフにすればよさそう...という実験は週末気が向けば。
|
87
|
+
使うツールは例えば[Atmel ICE](https://www.microchip.com/developmenttools/ProductDetails/PartNO/ATATMEL-ICE)。他にもっと安いISPとか言われる類、あるいはArduinoをISPに仕立てたものでも使えるのかも知れませんが私はAtmel ICEを持っているのでとりあえずそれ。PC側に[MicroChip Studio](https://www.microchip.com/mplab/microchip-studio) (最近Atmel studioから名前が変わった。Microchipサイト内でも表記が変わってないところも)。で、~~Firmwareが[これ](https://ww1.microchip.com/downloads/en/DeviceDoc/megaUSB_DFU_Bootloaders.zip)か。このパッケージの中のATMega16U4-usbdevice_dfu-1_0_1.hex?かな?を書き込んで~~(←書いてみたけどDFUモードにならなかった)Arduino IDEに含まれるファーム(下記参照)を書き込んで、FuseレジスタのHWBEをオフにすればよさそう...という実験は週末気が向けば。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
---
|
92
|
+
|
93
|
+
というわけで週末。
|
94
|
+
|
95
|
+
Arduino IDEのメニュー[ファイル]-[スケッチ例]-[ArduinoISP]-[ArduinoISP]をnanoに書き込んで、16u2側のICSPに接続。
|
96
|
+
|
97
|
+
arduino IDEのインストールディレクトリをarduino-1.8.13として
|
98
|
+
|
99
|
+
`cd arduino-1.8.13\hardware\tools\avr\bin`
|
100
|
+
|
101
|
+
`./avrdude -p m16u2 -c avrisp -P com5 -C ..\etc\avrdude.conf -b 19200`
|
102
|
+
|
103
|
+
とすると
|
104
|
+
|
105
|
+
```Text
|
106
|
+
|
107
|
+
avrdude.exe: AVR device initialized and ready to accept instructions
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
Reading | ################################################## | 100% 0.05s
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
avrdude.exe: Device signature = 0x1e9489 (probably m16u2)
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
avrdude.exe: safemode: Fuses OK (E:F4, H:D9, L:FF)
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
avrdude.exe done. Thank you.
|
124
|
+
|
125
|
+
```
|
126
|
+
|
127
|
+
とのことで接続出来ているみたい。Fuseの値がこれと違ったらFuseの書き換えを試行しましょう。Fuseを書き間違えるといわゆる「文鎮化(なにも出来なくなる)することもあるので注意。あまりいじりたくないので実験もしません。
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
続いて
|
132
|
+
|
133
|
+
`./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`
|
134
|
+
|
135
|
+
で書き込み実行。(.hexファイルを C:\~でドライブ名から書いたり、..\~で相対パスで指定したら何故かエラーになる?)
|
136
|
+
|
137
|
+
以上で、通常時USB-UART変換、リセット(ピンショート)でDFUに入る状態です。
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
確実に復帰できるとはいいません。そこで中華なnanoあたりを買うのか(Amazonで三百円台~)、だったらいっそもう一台ちゃんと16U2を使ったUNO互換機(千円以上)を買ってしまったほうがいいんじゃないのか、ちょっと悩ましいところもありますね。
|
2
追記
test
CHANGED
@@ -39,3 +39,49 @@
|
|
39
39
|
|
40
40
|
|
41
41
|
これ以上の話をしますか?
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
---
|
46
|
+
|
47
|
+
> >これ以上の話をしますか?
|
48
|
+
|
49
|
+
ぜひお願いしたいです。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
とのことなので。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
テスターは安いので構いません。デンキをいじるなら入手してください。電気は目に見えないので必須になります。[こんなのでも](https://www.yodobashi.com/product/100000001000444515/?gad1=&gad2=g&gad3=&gad4=452613146044&gad5=11011400150019367452&gad6=&gclid=Cj0KCQiAzZL-BRDnARIsAPCJs73DN-HlUUaCn3w6QjomRc4_VctrMtUWmhZOZFYT3ppdYSEpwI7tOdgaAkL9EALw_wcB&xfr=pla)...日本メーカー老舗にこだわらなければもっと安いのもあるでしょう。
|
58
|
+
|
59
|
+
Arduino UNO(純正)の回路図は[ここ](https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf)、基板パターンファイルは[ここ](https://content.arduino.cc/assets/UNO-TH_Rev3e-reference.zip)。
|
60
|
+
|
61
|
+
基板パターンはいわゆるプリント基板CADと呼ばれる類のソフトなら大抵開けると思います。で、そこそこ以上の中華なArduinoなら、パターンもそのまま真似してるからこれが参考になるでしょう。
|
62
|
+
|
63
|
+
その辺を調べると(詳細を省く...というか知らない人にイチから教えると日が暮れる)、図の矢印の電極(回路図で言えばC5の16U2側)が
|
64
|
+
|
65
|
+
- 通常のArduino動作時およそ5V、
|
66
|
+
|
67
|
+
- ICSPコネクタのピンショートでリセットをかけている(ショートし続けた)時に、ほぼ0V
|
68
|
+
|
69
|
+
になってなきゃいけないことがわかります。ではそうなっているか...
|
70
|
+
|
71
|
+
テスタを電圧計モードにしてGNDとの間の電圧を測ってみてください。周辺とショートさせたりしないように...
|
72
|
+
|
73
|
+
![Arduino基板図(純正)](e0ba4dd0fe8b7890ae46e6899e52150e.png)
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
通常時5V付近になっていないようなら...マイコンの足との間で断線か? となるとちょっと修理は難しい。でもそういう状態だと普通のArduinoの書き込みも出来ないはず。そういう症状はないんですね?
|
78
|
+
|
79
|
+
リセット時に0v付近になっていないなら、この電極とGND間に1KΩぐらいの抵抗をはんだ付けする。初めての人にはかなり辛いと思う...
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
電圧が正常っぽいなら、ソフトというか、マイコンのファームウェアやFuseレジスタを疑って、書き換えを試みることになるでしょう。
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
使うツールは例えば[Atmel ICE](https://www.microchip.com/developmenttools/ProductDetails/PartNO/ATATMEL-ICE)。他にもっと安いISPとか言われる類、あるいはArduinoをISPに仕立てたものでも使えるのかも知れませんが私はAtmel ICEを持っているのでとりあえずそれ。PC側に[MicroChip Studio](https://www.microchip.com/mplab/microchip-studio) (最近Atmel studioから名前が変わった。Microchipサイト内でも表記が変わってないところも)。で、Firmwareが[これ](https://ww1.microchip.com/downloads/en/DeviceDoc/megaUSB_DFU_Bootloaders.zip)か。このパッケージの中のATMega16U4-usbdevice_dfu-1_0_1.hex?かな?を書き込んで、FuseレジスタのHWBEをオフにすればよさそう...という実験は週末気が向けば。
|
1
修正
test
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
ATMega16U2等は、リセット端子の立ち上がり時にLレベルになっているとBootloaderとして書かれているプログラムが起動するようになっています。で、出荷時にはDFUのプログラムがBootloaderに書かれていて、HWB端子はプルダウンされているので、ATMega16U2にリセットをかけてやればDFUデバイスとして立ち上がるはず...というのが仕組みです。
|
7
|
+
ATMega16U2等は、リセット端子の立ち上がり時にHWB端子がLレベルになっているとBootloaderとして書かれているプログラムが起動するようになっています。で、出荷時にはDFUのプログラムがBootloaderに書かれていて、HWB端子はプルダウンされているので、ATMega16U2にリセットをかけてやればDFUデバイスとして立ち上がるはず...というのが仕組みです。
|
8
8
|
|
9
|
-
(なお、パワーオンリセット時にはリセット端子は叩かないのでユーザープログラム:
|
9
|
+
(なお、パワーオンリセット時にはリセット端子は叩かないのでユーザープログラム:ArduinoにおいてはUSB-UART変換が起動するということのようです)
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
- 中華な互換機なのでHWBがプルダウンされていない(手抜き) -> 同メーカーで出来ている例が多数なのでこの線はなさそう
|
22
22
|
|
23
|
-
- 製造不良(部品欠品やショート、ハンダ不良)でプルダウンが出来てない -> あり得る
|
23
|
+
- 製造不良(部品欠品やショート、ハンダ不良)でプルダウンが出来てない/リセットが出来ない -> あり得る
|
24
24
|
|
25
25
|
- 故障 -> あり得る
|
26
26
|
|