Ich habe hier die beiden Steuereinheiten einer Split Wärmepumpe. Es ist eine Außeneinheit mit einem uPD78F0536(A) Mikrokontroller (96kByte Flash und 5kByte RAM) und eine Inneneinheit mit uPD78F0513(A) (32kByte Flash und 1kByte RAM). In der Außeneinheit sitzt ein Kompressor mit entsprechender Inverter Treiberplatine. Es werden mehrere Temperatursensoren abgefragt, die Inverter Ansteuerung durchgeführt und der Ventilator angesteuert. In der Inneneinheit sitzen ebenfalls mehrere Sensoren, die Umwälzpumpe und die Verbindung zu einem LCD Controller HMI (Mensch Maschine Interface). Innen- und Außeneinheit kommunizieren über eine 3-Draht Verbindung miteinander. (vermutlich RS485). Auch die Kommunikation der Inneneinheit mit dem LCD HMI Controller erfolgt über solch eine 3 Draht Verbindung. Nun zu dem Problem: nach dem Einspielen einer neuen Firmware wird die Umwälzpumpe der Inneneinheit nicht mehr ausgeschaltet, wenn der Heizprozess abgeschlossen ist. Das war bei der vorherigen Firmware nicht so. Ich habe mich natürlich an den Hersteller gewandt und um Abhilfe gebeten. Leider ohne Erfolg. Für die ist das verkauft - abgeschlossen - und damit zu Ende. Jetzt meine Frage hier im Forum: Ich möchte den Code beider Controller disassemblieren und versuchen den Punkt zu finden an dem die besagte Subroutine vergessen worden ist zu implemtieren, die die Pumpe ansteuert und den Einsprung in die Subroutine hinzufügen. Zusätzlich ist die Invertersteuerung leider nicht optimal und ich möchte andere Grenzen für die Schaltbedingungen der Inverterstufen vorgeben. Eine Beschreibung der Funktionalität der Steuerung liegt mir vor. Also Schaltkriterien und Schaltgrenzen .... Auch der Hex-Code der beiden NEC Type Controller liegt mir vor. Musste ich ja bereits programmieren. Wie groß seht ihr die Chance das hinzubekommen? 32kByte bzw 96kByte sind ja nicht so riesig. Idee ist, nen Disassembler drüberlaufen zu lassen, zu kommentieren, zu ergänzen/zu ändern und anschließend zu assemblieren. Ich denke, es handelt sich um die 78k0 Serie der NEC Microkontroller. Das Users Manual der NEC 78k0-k2 Mikrocontroller Familie mit der Beschreibung der Funktionen, Ports, Timer .... liegt mir ebenfalls vor. Hat Jemand schon Erfahrung mit solchen Controllern?
Baldi O. schrieb: > Nun zu dem Problem: nach dem Einspielen einer neuen Firmware wird die > Umwälzpumpe der Inneneinheit nicht mehr ausgeschaltet, wenn der > Heizprozess abgeschlossen ist. Nachlauf (auch mehrere Minuten) der Umwaelzpumpe kann auch so vorgesehen sein, damit sich die Inneneinheit nach Stop nicht noch zusaetzlich aufheizt.. wendelsberg
Nein, die Pumpe läuft nicht nur mehrere Minuten nach sondern bis in die Unendlichkeit.
Einfacher (und mit Erfolgsaussicht >0) wäre die Steuerung der Pumpe extra aufzubauen (Abschalten wenn Kompressor nicht läuft). 128kB Firmware sind kein Pappenstiel. Die muß man erst mal durchschauen.
Das Vorgehen und die Firmwarefehler, welche von Version zu Version mehr werden, hört sich nach Junkers an. Es ist vermutlich einfacher, die gesamte Steuerung raus zu werfen und gegen eine universelle zu tauschen. Christian_RX7
Baldi O. schrieb: > Ich möchte den Code beider Controller disassemblieren und versuchen den > Punkt zu finden an dem die besagte Subroutine vergessen worden ist zu > implemtieren, die die Pumpe ansteuert und den Einsprung in die > Subroutine hinzufügen. Vergiss es. Aus 2 Gründen: 1. Ich würde Firmware verschlüsseln, vor ich sie nach draussen gebe. 2. Ohne sehr gute Kenntnisse der Prozessorarchitekur und des verwendeten Compilers wirst du wochenlang am Disassembly sitzen, denn dort hat kein Pointer und keine Sprungadresse einen sinnvollen Namen. > einer Split Wärmepumpe Ach, du heizt elektrisch...
Die Analogie Kuh->Hamburger ./. Hamburger->Kuh trifft hier zwar nicht vollständig zu (immerhin wird nicht gefordert, den Quelltext aus dem Binärcode zu rekonstruieren), aber mehr als nur ein paar kByte unbekannten Code zu disassemblieren ist eine ... deftige Aufgabe.
Ja, vor ewigen Zeiten hatte ich mit einem 68000 Disassembler angefangen. Kam zu den Ergebnis - nur mit Anforderungsliste und C-Compiler kommt man schneller ans Ziel.
Bastler schrieb: > 128kB > Firmware sind kein Pappenstiel. Die muß man erst mal durchschauen. Das kann man wohl sagen. Ich wurstle seit langem am Programm von einem 68000 herum, in welchem Marconi zwei 6-stellige Geheimzahlen versteckt hat, die den Zugang auf Kalibrierwerte ermöglichen. Gemeiner Weise stecken diese Codes wohl gar nicht im EPROM, sondern in einem externen EAPROM und da muß man erst einmal herausbekommen wo und wie das über die PPIs adressiert wird. Zu Fuß, nur mit der nackten Disassembly, gehen da schon Tage ins Land, bis man überhaupt den Selbsttest beim Einschalten abgehakt hat. Und dann kommen Dutzende von kleinen Subroutines mit Hunderten von Einsprungpunkten, deren Sinn es zu verstehen gilt. Vielleicht komme ich eines Tages mal an den Punkt, wo ich sehe, wie die Menüführung funktioniert, um herauszufinden wo überhaupt die fraglichen Codes abgefragt werden, aber viel Hoffnung habe ich nicht mehr. Deshalb liegt hier schon ein Raspi bereit, um den ganzen Motorola Kram zu ersetzen ... P.S.: Baldi O. schrieb: > Ich denke, es handelt sich um die 78k0 Serie der NEC Microkontroller. Ist das nicht der 4-Bitter ? Habe ich vor 25 Jahren mal gemacht. Übel, ätzend, igitt.
Hp M. schrieb: > Ist das nicht der 4-Bitter ? Das sind schon 8-Bit µCs. http://am.renesas.com/products/mpumcu/78k/78k0kx/78k0kx2/device/UPD78F0536AFC-AA1-A.jsp Nur, NEC, bzw. Renesas ist ja schon etwas sehr exotisch, viel finden wird man da im Netz nicht. Erstmal kommt man an die Steine von Renesas generell kaum heran. Es gibt eine CubeSuite genannte Entwicklungs-Umgebung, eventuell kann man damit die Controller auslesen und Disassemblieren. Wenn man denn einen geeigneten Programmer dafür hat.
Danke erst mal für die vielen Antworten. Also es handelt sich tatsächlich um 8 Bit CPUs mit der entsprechenden Peripherie. Also die USER Guides von NEC habe ich. Da ist alles sehr gut beschrieben. Der Befehlssatz des uC ist auch verfügbar. So nun zu den einzelnen Beiträge: Also eine externe Steuerung der Pumpe aufzubauen geht natürlich, ist aber nicht ganz einfach, weil die Pumpe vor Start des Kompressors eingeschaltet werden muss und der Lauf als solches auch überwacht wird. Da ist ein Strömungsschalter im Hydraulikkreis, der sofort Alarm schlägt, wenn nach Einschalten der Pumpe keine Strömung existiert. Die Zirkulation ist leider die erste Funktion, die aktiviert - und natürlich auch überwacht wird, bevor der Kompressor startet. Ich habe bereits einen Work-Around für das Problem mit der Pumpensteurung in der Form, dass das Problem nur dann auftritt, solange am LCD Display der Mode "Heißwasserbereitung" eingeschaltet ist - also so wie im Sommer üblich. Schaltet man manuell am LCD Display auf "keine Funktion" geht die Zirkulationspumpe auch wieder aus. Im Winter und in der Übergangszeit hat man zusätzlich auch "Hausheizung" aktiviert. Da tritt das Problem ebenfalls nicht auf, da nach "Heißwasserbereitung" gleich auf "Hausheizung" umgeschaltet wird. Momentan - im Sommer - sieht der Work Around so aus, dass ich per setzen eines Timers den Mode "Heißwasserbereitung" nur für 30min. einmal am Tag aktiviere. Dadurch wird die die "Heißwasserbereitung" automatisch nach 30 min. wieder deaktiviert und die Pumpe geht aus. Jetzt zu der Frage, warum arbeite ich überhaupt mit elektrischem Strom, was bekanntermaßen ja sauteuer ist: Ich habe natürlich ein Tri-valentes Heizsystem im Haus. Also Wärmepumpe für die Warmwasserbereitung im Sommer, heizen in der Übergangszeit und Ölheizung im Winter, wenns draußen saukalt ist. Zusätzlich noch einen Kaminofen im Wohnzimmer für die mollige Wärme und knisternde Gemütlichkeit auf dem Bärenfell vorm Kaminofen am Sonntag Nachmittag. Außerdem haben wir PV auf dem Dach und machen unseren Strom selbst. Die kWh kostet uns also 19,2Cent. Ich lasse die WP im Sommer auch nur einmal am Tag laufen, heize den 180L Wassertank auf 50C auf und dann reicht das bis zum nächsten Mittag. Mittags haben wir auch immer soviel Strom von der PV, dass man nichts aus dem Netz holen muss. So kommen wir im Sommer auf Kosten für die WW-Bereitung von ca. 1 kWh (19,2 Cent) pro Tag. Das ist gnadenlos günstig. Die Ölheizung - die ich natürlich ab März nicht mehr an habe, würde am Tag ca. 1,3 L Öl verbrauchen - egal ob Wasser entnommen wird oder nicht - und das nur für Bereitstellungsverluste. das sind bei jetzigem Ölpreis von 60Cent/L ca. 80 Cent oder 4 mal so viel verglichen mit der WP pro Tag. Macht also Sinn im Sommer WW mit der WP zu machen. Also es ist keine Junkers WP sondern eine AXEN. Die Steuerung ist von LYTRON. Aber das wird alles in China produziert und da denkt man anders über Kundenservice und Garantie und Gewährleistung. Deshalb muß ich selbst Hand anlegen oder "damit leben". Die Hydraulik der WP habe ich auch schon umgebaut: Zwei dicke Schnitzer - 1. Auch bei der WW-Bereitung wurde immer ein 40L Puffertank mit aufgeheizt, weil der seriell im Hydraulikkreis mit drinnen lag. Puffertank sehr schlecht gedämmt, sodass der am nächsten Tag natürlich wieder kalt war. Also jeden Tag 40 Liter Wasser zusätzlich mit aufheizen. 2. Die Tauscherwendel im TW Speicher wurde von unten nach oben durchflossen, sodass das heißeste Wasser unten im Tank war - und nicht oben - wie allgemein üblich - wo man entnimmt. Also das habe ich umgedreht und den Puffer seriell zur Hydraulik des Hausheizkreises gelegt - wie das sinnvoll ist. Also die Firmware ist im Controller höchstwahrscheinlich nicht verschlüsselt, weil die Distribution der Firmware als solche verschlüsselt war. Da das Update verschlüsselt aber nicht funktionierte, habe ich die Firmware als HEX unverschlüsselt bekommen. Also prinzipiell könnte ich die Firmware direkt disassemblieren, weil ich sie ja bereits auf dem PC habe. Muß den Controller also nicht auslesen. Den Programmer habe ich natürlich. Die Entwicklungsumgebung CubeSuite wäre natürlich toll.
Für sowas wurde IDA(pro) gemacht. Das Problem: Selbst die kleinste Variante kostet ~500€. Es gibt noch die Freeware IDA 5.0. Allerdings weiß ich nicht, ob da die NEC 78k dabei sind. https://www.hex-rays.com/products/ida/support/download_freeware.shtml Aber: Auch mit IDApro ist das ganze noch sehr anspruchsvoll.
....bei den meisten Projekten ist disassemblieren die aufwändigste und am wenigsten zufriedenstellendste Methode...Ich selber stand vor solch einem Problem und kam letztendlich nach viel Zeitverbrennung zu dem Entschluss die Prozessorarchitektur samt Hardware zu studieren und meine ganz eigene neue Firmware zu schreiben. Made in China muss nix schlechtes bedeuten, aber der Service ist dank der Schnelllebigkeit heutzutage leider überall nicht der beste ;-) Was war vor Deinem Update so schlecht?..ist ein Downgrade möglich? Manchmal ist die Devise "Never touch a running System" gar nicht so schlecht :)
Nein, downgrade kommt nicht in Frage, da noch viel viel viel schlechter. Da waren andere Grundfunktionen noch gar nicht implementiert (Invertersteuerung, Defrost, Antifreeze). Das scheint die erste Beta gewesen zu sein. Zumal ich die auch gar nicht habe und wohl auch nicht bekommen kann. Es ist ein Drama mit der Mentalität der Chinesen. Anfangs nett und freundlich, sehr hilfsbereit und dann nach 10 mails schläft alles ein. Keine Antworten mehr.
Baldi O. schrieb: > Anfangs > nett und freundlich, sehr hilfsbereit und dann nach 10 mails schläft > alles ein. Keine Antworten mehr. Mal auf die Uhr geschaut? Aber dann kriegste von mir noch eine. Kleine µC Schaltung für die Pumpe bauen und irgendwo die nötigen Signale abgreifen. Wurde aber auch schon zweimal gesagt. Ebenso wurde gesagt, dass es schwierig, bis unmöglich ist. Vermutlich ist die Anlage dann schon verrottet, wenn du das gedisselt hast und die Änderungen vorgenommen hast. Wenn du die Steuerung nehmen willst, befasse dich mit der Programmierung und schreib es neu. Sonst nimm eine andere oder bau selbst eine. Vielleicht kannst du ja was mit ner Siemens Logo machen? Ich weiß nicht wie viel an so einer Wärmepumpe hängt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.