Seite 1 von 1

[Gelöst] Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 14:05
von pafra
Hallo zusammen,

ich komme gerade mit dem Programmieren vom dem Platinen für den Umbau des Sonoff S26 Zwischensteckers nicht weiter.

Also ich bin mir ziemlich sicher, dass ich alles lt. Anleitung gemacht habe.
Die Platinen sind lt. Anleitung bestückt:
https://github.com/der-pw/HM-LC-Sw1-Pl-DN-R1_S26/wiki

Für die Programmierung hab ich mir einen Arduino Uno gekauft und den ArduinoISP Sketch rauf geladen.
Das Adapterkabel hab ich auch lt dem Wiki gelötet.

Der Aufbau sieht so aus:
20190512_140012.jpg
20190512_140019_002.jpg
20190512_140032.jpg

Leider bekomme ich immer nur diese Meldung, wenn ich die Fuses schreiben will:

Code: Alles auswählen


C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>.\avrdude -C ..\etc\avrdud
e.conf -v -p m328p -P com10 -c stk500v1 -b 19200 -U lfuse:w:0xE2:m -U hfuse:w:0x
D2:m -U efuse:w:0xFF:m

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "..\etc\avrdude.conf"

         Using Port                    : com10
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0 0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override this check.


avrdude done.  Thank you.
Was Ähnliches kommt, wenn ich den Bootloader auf die Boards laden will.

Hat irgendjemand einen Tipp für mich, woran das liegen könnte?
Bzw. was könnte ich noch testen?

Gruß
Franz

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 14:30
von stan23
Ich kann keinen Fehler erkennen, die Verkabelung sieht aus den ersten Blick okay aus.
Aber die 0x00 bedeutet dass der Programmer nichts auslesen kann bzw. der ATMega nicht antwortet.

Der Takt aus SCK müsste mit 100 kHz auch langsam genug sein.

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 14:49
von Gelegenheitsbastler
Mach doch bitte mal eine Detailaufnahme von der Platine, die Du flashen möchtest. Auf dem Foto sieht es aus, als hätte sich eine Lötbrücke eingeschlichen.

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 15:36
von stan23
Gute Idee!
Du könntest auch Mal auf Kurzschlüsse der Pins gegeneinander und gegen Masse messen.

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 19:44
von pafra
Hallo ihr zwei,

vielen Dank für eure Antworten.
Bei dem einen Board war tatsächlich eine Lötbrücke zwischen zwei Pins.

Der Hauptfehler ist aber leider ein ganz anderer.
Das sieht man aber erst, wenn man sich die Rückseite anschaut:
20190512_192958.jpg
Links das Board, das geht.
Rechts der restlichen Boards von dem 6er Nutzen.

Da ist mir irgendwas beim Erstellen der Gerberdaten durcheinander geraten.
D.h. ich hab jetzt leider nur 10 gute Boards und nicht mögliche 60... :(

Naja, jedenfalls klappt das bei dem einen Board auch mit den Fuses und dem Bootloader wie in der Beschreibung angegeben:

Code: Alles auswählen

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>.\avrdude -C ..\etc\avrdude.conf -v -p m328p -P com10 -c stk500v1 -b 19200 -U lfuse:w:0xE2:m -U hfuse:w:0xD2:m -U efuse:w:0xFF:m

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "..\etc\avrdude.conf"

         Using Port                    : com10
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0 0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D2
avrdude: safemode: efuse reads as FF
avrdude: reading input file "0xE2"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE2:
avrdude: load data lfuse data from input file 0xE2:
avrdude: input file 0xE2 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xD2"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xD2:
avrdude: load data hfuse data from input file 0xD2:
avrdude: input file 0xD2 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFF:
avrdude: load data efuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified

avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D2
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (E:FF, H:D2, L:E2)

avrdude done.  Thank you.

Code: Alles auswählen

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin>.\avrdude -C ..\etc\avrdude.conf -v -p m328p -P com10 -c stk500v1 -b 19200 -U flash:w:..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "..\etc\avrdude.conf"

         Using Port                    : com10
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page
      Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0 0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D2
avrdude: safemode: efuse reads as FF
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex"
avrdude: input file ..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex auto detected as Intel Hex
avrdude: writing flash (32652 bytes):

Writing | ################################################## | 100% 0.18s

avrdude: 32652 bytes of flash written
avrdude: verifying flash memory against ..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex:
avrdude: load data flash data from input file ..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex:
avrdude: input file ..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex auto detected as Intel Hex
avrdude: input file ..\..\..\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex contains 32652 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.18s

avrdude: verifying ...
avrdude: 32652 bytes of flash verified

avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as D2
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (E:FF, H:D2, L:E2)

avrdude done.  Thank you.

Jetzt allerdings gleich das nächste Problem:
Ich habe das Board anschließend an meinen FTDI-Adapter angeschlossen.
Ich kann den Sketch nicht hoch laden.
Bei "Hochladen..." bleibt die Arduino IDE einfach stehen und die LEDs auf dem FTDI-Adapter blinken nicht wie sonst.

Lt. Bestückungsdruck hat die Platine folgende Pinbelegung.

GND
VCC
TXD
RXD
DTR

Ein Arduino Pro Mini hat diese Pinbelegung:

GND
VCC
RXD
TXD
DTR


Also sind bei dem Board RXD und TXT im Vergleich zu einem Arduino Mini vertauscht?
Oder bin ich da gerade falsch unterwegs.

Gruß
Franz

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 19:55
von jp112sdl
pafra hat geschrieben:
12.05.2019, 19:44
Also sind bei dem Board RXD und TXT im Vergleich zu einem Arduino Mini vertauscht?
Um Marco zu zitieren:
viewtopic.php?f=76&t=50670&p=508260#p508260

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 20:07
von stan23
pafra hat geschrieben:
12.05.2019, 19:44
Da ist mir irgendwas beim Erstellen der Gerberdaten durcheinander geraten.
D.h. ich hab jetzt leider nur 10 gute Boards und nicht mögliche 60... :(
Du könntest ganz vorsichtig den Lötstopplack auf dem Via und der Fläche abkratzen und dicke Lötzinnkugeln draufsetzen.

Laut Schematic ist die Beschriftung aus FTDI-Sicht gedruckt, also schon gedreht.

Im Zweifelsfall einfach mal tauschen ;)

Re: Programmieren HM-LC-Sw1-Pl-DN-R1_S26

Verfasst: 12.05.2019, 23:19
von pafra
Hallo zusammen,

ja, hab's hin bekommen.
Man muss RXD und TXD kreuzen.
Ich hab mir ein kleines Adapterkabel gebaut.
Eine Platine geht jetzt und damit habe ich eben eine S26 erfolgreich umgebaut.

Vielen Dank für eure Hilfe!

stan23 hat geschrieben:
12.05.2019, 20:07
pafra hat geschrieben:
12.05.2019, 19:44
Da ist mir irgendwas beim Erstellen der Gerberdaten durcheinander geraten.
D.h. ich hab jetzt leider nur 10 gute Boards und nicht mögliche 60... :(
Du könntest ganz vorsichtig den Lötstopplack auf dem Via und der Fläche abkratzen und dicke Lötzinnkugeln draufsetzen.
Muss ich mir mal ansehen, ob ich da eventuell was machen kann.
Das Problem ist nur, dass genau da auf der Unterseite das Funkmodul drauf kommt...

Ich hab die Platinen aber sowieso zu dick bestellt - also werd ich sowieso neue bestellen.

Viele Grüße
Franz