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

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Antworten
pafra
Beiträge: 224
Registriert: 16.05.2018, 21:13
Hat sich bedankt: 8 Mal
Danksagung erhalten: 34 Mal

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

Beitrag von pafra » 12.05.2019, 14:05

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
Zuletzt geändert von pafra am 12.05.2019, 23:20, insgesamt 1-mal geändert.

Benutzeravatar
stan23
Beiträge: 2028
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 576 Mal
Danksagung erhalten: 335 Mal
Kontaktdaten:

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

Beitrag von stan23 » 12.05.2019, 14:30

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.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

Benutzeravatar
Gelegenheitsbastler
Beiträge: 586
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 14 Mal
Danksagung erhalten: 41 Mal

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

Beitrag von Gelegenheitsbastler » 12.05.2019, 14:49

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.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

Übersicht meiner Projekte


RaspberryMatic 3.47.22.20191026 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC

Etliche selbst gebaute Aktoren und Sender

Benutzeravatar
stan23
Beiträge: 2028
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 576 Mal
Danksagung erhalten: 335 Mal
Kontaktdaten:

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

Beitrag von stan23 » 12.05.2019, 15:36

Gute Idee!
Du könntest auch Mal auf Kurzschlüsse der Pins gegeneinander und gegen Masse messen.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

pafra
Beiträge: 224
Registriert: 16.05.2018, 21:13
Hat sich bedankt: 8 Mal
Danksagung erhalten: 34 Mal

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

Beitrag von pafra » 12.05.2019, 19:44

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

jp112sdl
Beiträge: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

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

Beitrag von jp112sdl » 12.05.2019, 19:55

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

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
stan23
Beiträge: 2028
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 576 Mal
Danksagung erhalten: 335 Mal
Kontaktdaten:

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

Beitrag von stan23 » 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.

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

Im Zweifelsfall einfach mal tauschen ;)
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

pafra
Beiträge: 224
Registriert: 16.05.2018, 21:13
Hat sich bedankt: 8 Mal
Danksagung erhalten: 34 Mal

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

Beitrag von pafra » 12.05.2019, 23:19

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

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“