Motortisch-Steuergerät von Okin

  • Gerät: Steuerbox T für Ikea-Tisch Galant, 2-motorig höhenverstellbar.
    Hersteller: Okin, ansässig in Gummersbach.
    Fehler: fährt nur mehr in Abwärtsrichtung, 2 Tische zeigen das selbe Verhalten, schon kreuzgetauscht, aufwärts nur Relaisflattern, kein Motorstart.


    Bereits durchgeführte Tests und Vorarbeiten:
    Elektronik grundsätzlich gecheckt, Funktionsweise größtenteils nachvollzogen.
    Herzstück ist ein PIC16F627-04P.
    Platine sieht nicht schlecht aus.
    Auffallend ist die mit 5,8V weit über Toleranz liegende Betriebsspannung.
    Brumm keiner.
    Motoren sind leicht unterschiedlich, die Hall-Drehzahlgeber geben aber sauberes Signal ab. Bei einem Motor ist auf Versorgungsleitung des Hallgebers leichtes Drehzahl-Nutzsignal aufgeprägt, was aber das grundsätzliche Starten in Gegenrichtung nicht verhindern dürfte. Startbefehl kommt beim PIC an. Kein PWM-Out, kein stabiles Steuersignal für die Relais. Ansteuertransistor für Aufwärts-Relais ok. Durch Zwangsanspeisung überprüft.
    Microschalter ok, Relais ok, sind 4 Stück als Brücke, PWM über Mosfets, Sicherheitsabschaltung über Shunts.
    Das Ding versetzt sich nach kurzer Pause selber in Ruhe.
    Dann fällt im Anschlußstecker ein Relais zur Netzfreischaltung ab.


    Box ist hier zu sehen:
    http://www.okin.de/deutsch/site/steuerungen/steuerboxt.htm


    Jemand Erfahrung damit?
    Außer PIC (gesockelt) bleibt nicht mehr viel über.
    Jemand das Flash schon ausgelesen, falls das bei dem überhaupt möglich ist?
    Kenne mich mit PICs nicht aus.
    Da war doch einmal was, daß die Dinger mit überhöhter Betriebsspannung irgendwie zwangsaugelesen oder gelöscht werden konnten?
    Die 5,7V auf der 5er-Schiene haben micht da stutzig gemacht.
    Könnte da die Ursache liegen?


    Mittlerweile verkauft Ikea die Tische mit einer anderen Steuerung.

  • 5V werden aus 36V (lastabhängig) via BD139 generiert.
    Referenz ist eine 6V2-Zener.
    Das ist etwas riskant kalkuliert.
    Die bringt nämlich 6,4V.
    Werde mal die Spannung auf einen normalen Level einpegeln.

  • Lt Datenblatt darf der PIC bis 5,5V versorgt werden, absoluter Grenzwert sind 6,5V, die 5,8V sind da wenn zwischen regler und PIC nicht mehr viel abfällt evtl. etwas grenzwertig, ich glaube aber nicht, dass da der fehler liegt, vermtl. sind einfach ein paar Bits im Speicher gekippt.

  • Sagen wir einfach, die Toleranzen wurden ausgereizt.
    Dieser PIC sollte schon ab 3V laufen.
    Zwecks Störsicherheit wurde da wohl sehr hoch gegriffen.
    Sind auch Suppressordioden am Print bestückt.


    Ganz witzig: jetzt tackern die Relais nur mehr, egal ob 5,2V oder 5,8V.


    Das Beste: das zweite, unangetastete Steuergerät verhält sich nun genauso.
    Auch die Spannungen an Zener und Stabitransi sind gleich.

    Motorentausch hat wieder nichts verändert.


    Warte einmal PIC-Programmer eines Kollegen ab.

  • @ tvpeter:
    Die lt. Datenblatt mögliche Weitbereichsspeisung einiger µC sollte man besser nicht nutzen - schon gar nicht bei Flash-Controllern. Wenn doch, dann darf zumindest die Betriebsspannung nicht stark dynamisch wackeln - etwa durch Belastung.


    Vermutlich hatte man in der Schaltung mal eine 5,6V-Z-Diode drin. In den letzen Jahren haben viele Hersteller die Technologie geändert (zwecks Kostensenkung) und nun haben die eine schlechtere Kennlinie - also mehr Reststrom. Ergebnis bei nun zu hochohmiger Auslegung: zu geringe Ausgangsspannung. Vermutlich ist die 6,2V-Z-Diode ein Notbehelf - und m.E. keine gute Idee. Möglichweise ein niederohmiger Basiswiderstand und Beibehaltung des nur zu kleinen Basis-Elkos - ich kann mir das schon lebhaft vorstellen...


    Ein billiger 7805 eignet sich bei 36V (+ Toleranz) nicht ohne Vorregler, weil je nach Hersteller bei 40V Schluß ist. Deshalb der Anachronismus mit dem diskreten Transistor.


    Vorschlag: bestehende Regelung als Vorregler mit höherer Spannung nutzen + nachgeschaltetem 7805 - wenn es platzmäßig machbar ist.
    Alternativ: brauchbare 5,6V-Diode suchen


    Denkbar ist auch folgendes:
    Schau mal, ob es eine Überwachung der 50Hz Netzspannung gibt - etwa zur Synchronisation des PWM-Signals. Da könnte auch der Wurm drin sein. Elko - zu geringe Spannung unter Last - so was in der Art...


    Die PIC's haben einen Kopierschutz, der das Auslesen verhindert, wenn er aktiviert ist.
    Verkaufen die Dir einen neuen Controller?


    Gruß
    Thomas

  • @Thmoas.B
    Das klingt alles sehr einleuchtend.
    Die Eingangspannung kann im Leerlauf dort sogar bis knapp 45V steigen.
    Es gibt einige unbestückte Positionen.
    Ja, es dürfte einen Netz-Sync geben.
    Das muß ich noch genauer klären.


    Ad Ausleseschutz.
    Daran dachte ich auch.
    Datenblatt nur kurz überflogen.
    Antwort des Kollegen: 16er-Serie im Unterricht benutzt, wollten selber Programm schützen, keine Möglichkeit gefunden.
    Muß nichts bedeuten.
    Gibt ja einen ganzen Typenzoo von PICs.


    Halte eine ungeschütze Version in einem kommerziellen Produkt auch für eher unwahrscheinlich.
    Vor allem auch, da es sonst praktisch nur aus Standardkomponenten besteht.
    Ist eigentlich recht ordentlich gefertigt.
    Doppelseitiger Print, PIC gesockelt.
    Das mag seine Gründe haben...


    Anruf noch aufgeschoben.
    Warte auf den Programmer.


    Noch eine Info: die Dinger sind praktisch kaum benutzt wurden.

  • Andy72
    Falls der PIC doch auslesbar sein sollte, wäre ein Vergleich der 2 Exemplare interessant.
    Beide ident -> eher kein Fehler im Flash.
    Ist zumindest eine Arbeitshypothese von mir.


    Falls die Firmware wo aufzutreiben ist - man kann ja auch Glück haben - ist ein Programmer sicher nützlich.

  • @ tvpeter
    Der PIC (alle?) hat einen Schutz gegen Auslesen des Codes. Überschreiben geht aber - falls Du irgendwie an den BIN-Code kommst.
    Suche nach: Code Protection
    Das setzen des protection Bits ist Standard und wurde bestimmt gemacht. In der Richtung hätte ich kaum Hoffnung.


    Andy72: was willst du mit nem PIC-Programmer?


    Da hat er Recht. Ist doch seriell und nur ein Pegelwandler. Ich hatte für ähnliche Zwecke mal eine "umgebaute" serielle ISA-Karte. RS232-Pegelwandler (gesockelt) gezogen und direkt verdrahtet nur RXD und TXD. Da kann so gar der Lötkolben kalt bleiben. Heute dürfte es allerdings problematisch werden, einen PC mit ISA-Steckplatz zu finden, auf dem die Software läuft... Ansonsten - irgend einen MAX232 oder so wirst Du doch haben.


    Suche nach:
    - serial programming
    - low voltage programming
    Da müssen die 5V wegen Nutzung der internen Ladungspumpe genau stimmen (+/- 10%). Siehe Abs. 14.13 im DS.
    Wenn Du an /MCLR Vpp anlegst, muß das nicht sein. (high voltage programming) - brauchst Du aber nicht.


    Ich setze die PIC's nicht oft ein und programmiere sie ungern - vor allem, wenn es irgendwie nach Arithmetik riecht, lasse ich die Finger davon. Ich habe aber einen Kollegen, der die Dinger softwaremäßig gut kennt. Falls Du eine ganz spezielle Frage hast, leite ich die gern weiter.


    Gruß
    Thomas

  • Für LVP (low voltage programming) muss aber auch das entsprechende Bit gesetzt sein, sonst gehts nur mit HVP (dazu ca. 13V an den /MCLR anlegen).
    Falls du dir einen einfachen PIC-Bennen bauen möchtest, frag google nach ludipipo oder JDM Programmer. Ich selbst hab mir den aus der AN589 von Microchip gebaut, mit leicht modifizierter Spannungsversorgung. Läuft sehr gut. Hätte da auch noch ein Ealge Layout - einseitig.
    Vielleicht ist auslesen doch möglich, wenn das Copy-Bit nicht gesetzt ist.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.

    Einmal editiert, zuletzt von devzero ()

  • Danke, der Aufwand soll nicht ausufern.
    Deshalb werde ich vorerst nichts zusammenstricken sondern einfach die paar Tage auf das Gerätchen warten, wenn es doch schon vorhanden ist.


    Nächster Punkt der Tagesordnung ist dann Call beim Hersteller.
    Ergebnis der Geschichte wird bekanntgegeben.

  • nee Thomas, das war ganz anders gemeint. Was soll man mit einem Programmer, wenn die Software geschützt ist? Selbst wenn sie nicht geschützt ist wo her das Dump nehmen?

  • So, jetzt koche ich hier auch mal mit... :D :D :D


    1) Die Versorung ist echt aus dem Rahmen. die 6,5V sind "Absolute Maximum Ratings",
    d.h. die Grenze, bei dem der Chip noch keinen dauerhaften Schaden nimmt. Den Betrieb
    bei 5,8V halte ich aber schon für kritisch; vielleicht ist das Teil schon gehimmelt.
    Es spricht nichts dagegen, einen 7805 zu nehmen. Wenn die Eingangsspannung über 35V
    liegt, ist das übliche Verfahren, 1...2 Stk. 12V/0,4W Zenerdioden in Reihe zum Eingang
    zu legen. Der Querstrom durch den Regler (solange es kein LM317 ist) reicht allemal
    aus, um die Zenerdioden ausreichend vorzuspannen. Nur sollte die Schaltung dann nicht
    mehr als 33mA ziehen, sonst wird es den Zenern zu warm. Falls höherer Strombedarf, auf
    mehrere 5,6V Zenerdioden aufteilen.


    2) Wieso Deinem Kollegen die Code-Protection nicht gelungen ist, ist mir ein Rätsel.
    Es gibt ein Config-Register, in dem für verschiedene Code-Bereiche der Ausleseschutz
    festgelegt werden kann. Allerdings kann dieses Registers je nach Software oder Programmer
    manchmal nur im Programmiergerät festgelegt werden.
    Ob in diesem Fall Code-Protection vorliegt, lässt sich schwer sagen; und hängt von der
    Paranoia der Firma / des Entwicklers ab. Ein Nachbau eines solchen Nischenproduktes ist
    eher unwahrscheinlich, vielleicht ist der Code daher offen.


    3) In demselben config-Register wird auch festgelegt, ob die internen POR (Powerup-
    Reset) Generatoren, und BOD (Brown-Out-Detection) Generatoren benutzt werden. Vielleicht
    hat die Krücke ein Reset-Problem. Ist der MCLR-Pin 4 beschaltet, oder fest nach Vcc gelegt?
    Die internen Generatoren arbeiten nur sauber bei einem definiertem Vcc-Anstieg, bei einem
    langsamen Vcc-Anstieg steht explizit im DS, dass es zu Problemen kommen kann. Vcc muß
    schneller als 0,05V/ms steigen, also bei 5V innerhalb 100ms.
    Besser extern ein R/C/Diode POR-Netzwerk anschliessen, wie im Datasheet auf Seite 102
    vorgeschlagen. Bitte auch den Serienschutzwiderstand an MCLR beachten, der Pin ist
    empfindlich gegen Latchup. Dummerweise kann bei diesen Schrottteilen der MCLR-Eingang
    auch als normaler Eingang programmiert werden, dann ist extern kein POR mehr möglich!


    4) Ist die Takterzeugung ok? Wie wurde die gelöst, Quarz, Resonator, externer Widerstand,
    oder wurde der interne 4 Mhz Oszillator verwendet?


    5) Guck Dir auch mal das 20-seitige (!) Errata-DS an, vielleicht ist da noch was, was
    Dich betrifft.


    http://ww1.microchip.com/downloads/en/DeviceDoc/40300c.pdf Datasheet
    http://ww1.microchip.com/downloads/en/DeviceDoc/80073f.pdf Errata-Datasheet

    All animals are equal, but some animals are more equal than others. (Leitmotiv of VvT?)

  • Werde die Vorschläge so gut wie möglich umsetzen und berichten.


    Zu den Detailfragen muß ich noch tiefer ins Printlayout einsteigen.
    Auf jeden Fall ist kein Quarz oder Keramikresonator vorhanden.


    Danke für alle Beiträge bisher.

  • @ tcfcat


    was bewegt Dich die PIC´s als Schrotteile zu bezeichnen?
    Alle von unserer Firma hergestellten Maschinen arbeiten ausschließlich mit Microchip Prozessoren, seit über 7 Jahren ohne Probleme.


    Guter Compiler und viel Hirn, dann gibt´s keine Probleme!


    12 C 509 (nur als Bastelobjekt)
    16 C 55
    16 C 71
    16 C 74
    16 C 77
    16 F 74
    16 F 77
    18 F 452
    18 F 458


    Wer als Hersteller das Codeprotect nicht setzt, hat wohl dessen Sinn bzw. Nutzen nicht verstanden, ist also unwahrscheinlich, daß der Proz. auszulesen ist.


    Richtig ist, daß die 5,8V Versorgung auf längere Sicht über dem Limit liegt und nicht vertretbar ist.


    Zusätzlich sind vielleicht auch ungenügende Filtermaßnahmen auf der 5V Schiene und deshalb Spikes der Motoren die Ursache für das vorzeitige Ableben der PIC´s.


    Gruß


    Wolfgang

    Geht nicht gibt´s nicht. Zumindest wäre es schön, wenn es so wäre!

  • Das Speicherkonzept ist eine fürchterliche, krude Katastrophe. Gebankte Register, da
    leiden sie schon an ihrer eigenen Abwärtskompatibilität. Jede zweite, dritte Instruktion
    ist eine Bankumschaltung. RISC-Power, ha ha ha!
    Der feste Hardware-Stack ist winzig. Rekursionen, oder Parameter-Übergabe ist nicht
    möglich - sowas konnte schon der Z80. Alle Variablen im global name space - das nenne
    ich sauberes Softwaremanagment!
    Unausgegorene Peripherie, die nicht macht, was im Datenblatt steht. Errata-Sheets, die
    so lang sind, wie bei anderen die Datenblätter.
    Wenn ich mein Hirn darauf verwenden muß, die Unzulänglichkeiten des Controllers zu
    umschiffen, statt mich die Aufgabe konzentrieren zu können, habe die Dinger schlicht
    ihr Ziel verfehlt.


    Nur weil sie (fast) alle nehmen, müssen die Schrottgurken nicht gut sein. Ich nenne
    sowas den Trabant-Effekt. Was soll daran gut sein? Ach ja, die sind billig.
    Beschäftige Dich mal mit vernünftigen Controllern.

    All animals are equal, but some animals are more equal than others. (Leitmotiv of VvT?)

  • also haste mal eine nullstellung der motoren durchgeführt?
    ganz runter fahren. danach runter knopf kurz loslassen und dann für mindestens 5 sekunden gedrückthalten. danach solls wieder aufwärts gehen. . wenn die pulse von einem motor fehlen fährt die kiste nur runter.


    bild sieht verdammt nachdem schr*** aus denm mein ehemaliger arbeitgeber produziert. typsche fehler:
    mos-fets; klebende relais; durchgeknallte relais treiber (uln xxx + udn xxx) aufgrund fehlender freilaufdioden. fauler temperaturschalter im dicken trafo
    der pic ists normalerweise nicht, der hält von allen immer noch am besten.
    hab so einen kram 2 jahre lang tagtäglich repariert.
    machmal ein bild von innen.


    ansonsten schau mal ein tiefer


    mein galant tisch (4 wochen alt) hat schon ne linak steuerung aus schweden