Hallo liebe MC-Freunde,
Kurzfassung: habe Heizungsthermostate mit einem Atmega169 und einer
externen Schnittstelle auf der u.A. RxD, Txd, Reset und XCK liegen. Ist
es sehr wahrscheinlich, dass der Hersteller einen seriellen Bootloader
auf den MC gemacht hat ?
Langfassung: ich habe diverse Heizungsthermostate vom selben
Typ/Hersteller. Da die Dinger recht umständlich einzustellen sind (jeder
Tag muss einzeln mit Anfangs-/Endzeiten und Temperaturen versehen
werden, schönes Feature aber bedeutet 10 Minuten Arbeit bei jeweils 4
Heizkörpern, was mich iwie nervt...) , habe ich mal eins aufgemacht, um
zu sehen, ob man da vielleicht was hacken kann. Es steckt ein Atmega169
drin (scheint im Wes. ein 168 mit zusätzlichem konfigurierbarem
LCD-Treiber zu sein), was für mich eine glückliche Überraschung ist, da
ich schon ein paar Sachen mit AVR gemacht habe (bin ansonsten Hobbyist,
und muss mit dem Vorlieb nehmen, was ich nach Feierabend zu Stande
bringe).
Die angeschlossene Aktorik und Sensorik konnte ich auf der Platine zu
den Pins des MC nachverfolgen (und habe ich denke ich verstanden; ein
T-Sensor am ADC, ein Motor an einer diskreten H-Brücke, drei Buttons,
das LC-Display und noch ein Drehgeber mit wie es aussieht
Reflexlichtschranke). Neues Programm schreiben sollte also dank meiner
ausgiebigen C-Erfahrung kein Prob sein (Maschinencode Auslesen geht
leider nicht, Lockbits sind laut SPI-Kommunikation mit AVRDude gesetzt).
Nun möchte ich aber natürlich nach Möglichkeit den MC neu programmieren,
ohne an jeden der 4 Thermostate Kabel an die SPI-Leitungen zu löten
(schon allein wegen meiner schlechten, für SMD wenig geeigneten Augen
:-). Die Dinger haben aber ein externes Interface mit 10-pins durchs
Gehäuse, das ich auch bereits reversed habe. Folgende Leitungen sind
rausgeführt:
TMS
TDO
TDI
TCK
RxD
TxD
XCK
Reset
GND
VCC (das ist die Eingangsspannung vor dem geräteeigenen Spannungsregler
=> Batterie)
Gut die ersten vier sind offensichtlich JTAG (womit ich mich ansonsten
nicht so doll auskenne und gerne vermeiden würde, da ich kein JTAG-Box
habe und die Kosten scheue).
Nun dachte ich mir, dass die Tatsache, dass RxD und TxD herausgeführt
sind, vielleicht bedeuten könnte, dass der MC auf dem Thermostat über
einen Bootloader verfügt. Also habe ich RxD und TxD an mein
FTDI-Breakoutboard (Watterott 2.0) angeschlossen, sowie Reset an DTR.
Wenn ich aber mal dumm alle Bootloader, die in AVRDude zur Verfügung
stehen, durchprobiere, tut sich nix (Meldung sinngemäß: "...antwortet
nicht...").
Kann es sein, dass die externe Clock hier noch beschaltet werden muss ?
Wozu sollte sie sonst herausgeführt sein ? Aber ist synchrone
Kommunikation bei der MC-Programmierung nicht eher unüblich ? Oder bin
ich etwa komplett auf dem Holzweg mit der Annahme, dass auf den Dingern
ein Bootloader drauf ist ? Würde ein Hersteller wirklich einen
Bootloader draufmachen ?
Grüße und danke im voraus an alle, die sich den Kopf über meine Hobbies
zerbrechen...
Oliver