Ich habe zur Zeit ein 4-Kanal Dimmer Pack DSP-4F auf dem Tisch, welches nach Kundenaussage früher mal seine Einstellungen (DMX Adresse, Standalone Dimmerwerte) auch nach dem Ausschalten behalten hat, nun aber startet das Ding immer mit den gleichen, unbrauchbaren Werten und Änderungen werden nach dem Ausschalten verworfen. http://en.beglec.com/product/4618/DSP4 Das Rätsel kommt nun: Es sind lediglich zwei PIC16F54 und ein LCD Controller von Holtek (HT1162) verbaut, wobei ja die PIC keinerlei EEPROM haben und auch der LCD Controller sowas nicht hat. Eine Batteriepufferung ist nicht vorhanden und auch nicht vorgesehen. Wo also speichert das Gerät seine Werte? Im Befehlssatz des PIC finde ich auch keine Hinweise auf eine Selfprogramming Möglichkeit, kann also eigentlich nicht im Flash sein. Neben den beiden PIC und dem LCD gibt es nur noch einen 7805 Regler und den obligatorischen 75176 DMX (aka RS485) Receiver und ein NPN zur Ansteuerung einer blendend hellen LED. Auf dem Powerboard nochmal 4 NPNs und die üblichen MOC3023 Optotriacs, die dann die Leistungstriac ansteuern. Wie macht ihr PIC'ler das mit dem nichtflüchtigen Speicher? Kann gerne nochmal ein Foto posten, aber die Jungs haben die Platine weiss angepinselt und man sieht nicht viel von den Leiterbahnen.
Evtl geht das ding beim ausschalten in den sleep mode und behält die daten nur einige stunden...tage bis ein pufferkondensator leer ist. Für genauere infos müsste man sich aber mal die platine/schaltplan angucken
I2c gibt es auch in sot23. 24c00. Auch könnte das eeprom unter einem dip ic versteckt sein. Was auch funktioniert, ein pic programmiert den zweiten. Der genannte pic kam sich nicht selbst programmieren, die ersten 64 bytes bleiben programmierbar und aus lesbar, um Kalibrierung daten von Sensoren usw abzuspeichern.
chris schrieb: > Was auch > funktioniert, ein pic programmiert den zweiten. Das benötigt die gleichen Pins wie beim normalen ICSP programmieren? Dann könnte das sein, werde ich mal durchklingeln. Allerdings scheint ja, da die Werte nicht gespeichert bleiben, der PIC dann am Ende zu sein. Die beiden PIC kommunizieren ja sowieso miteinander, könnte also evtl. über die ICSP Pins mitlaufen. Nur wo die HV herkommt, wäre mir nicht klar, das sollte aber über die Beschaltung an /MCLR klarwerden. Denn die Vpp wird wohl gebraucht, oder? > I2c gibt es auch in sot23. 24c00. Ist mir klar, aber sowas ist nicht vorhanden. Die PIC sind gesockelt und dadrunter ist nix. Danke erstmal für die Tipps! Ich meld mich, wenn ich mehr weiss. TestX schrieb: > Evtl geht das ding beim ausschalten in den sleep mode und behält die > daten nur einige stunden...tage bis ein pufferkondensator leer ist. Nee, einen Pufferkondensator gibt es nicht (lediglich einen 470µF und einen 100µF) und beide PIC liegen mit Vcc direkt am Ausgang des 7805, an dem die Spannung auch nach dem Ausschalten recht flott zusammenbricht.
:
Bearbeitet durch User
Für die HV reicht ein Kondensator an einem Pin angeschlossen. Die Spannung wird intern generiert und nur 3V Unterschied reicht aus. Der pic ist sicher Mit z.b. 1Mohm an Der Netzspannung oder direkt am Trafo angeschlossen um den phasenanschnitt zu machen, die Phase zu detektieren. Ich würde mit einem labornetzteil 4v an vcc geben und dann Netzspannung raufgeben, Einstellen, Netzspannung abziehen, 30 sek warten und dann labornetzteil auf 0V absenken. Labornetzteil wegnehmen und dann sehen ob die eingestellten Werte erhalten geblieben sind. Wenn ja, einfach Kondensatoren tauschen.
Das Rätsel hat sich grösstenteils gelöst, einer der beiden PIC ist gar kein 16F54, sondern ein 16F819 (war so gut wie nicht zu lesen, erst unter dem Mikroskop) und der hat ja EEPROM. Scheint allerdings am Ende zu sein, denn er liest immer wieder die gleichen Werte aus. Ich denke nochmal drüber nach, ob ich ein Adapter für mein PICKIT3 baue und sehe, was das EEPROM beim Schreiben und lesen noch so sagt. Sollte mit einem DIL Sockel und ein wenig Pfostenfeld ja zu lösen sein. Da haben die Herren Software Britzler es mit dem Schreiben wohl zu gut gemeint, immerhin sagt Microchip was von 1.000.000 Schreibzyklen. Ich habe mit dem PICKIT3 zwar noch keine EEPROMs gelsen oder geschrieben, sollte aber klappen.
100k Schreiboperationen insgesamt (alle Zellen) wenn man kein refresh macht. Real sollte es 4x soviel sein.
Parameter d120/d120A sowie d124 (refresh). Wird d124 nicht angegeben ist dieser identisch mit d120.
Parameter d120 ist je Zelle. D124 ist cumulativ für das ganze eeprom.
So, ich habe mir mal schnell einen Adapter fürs PICKit 3 gebaut und dann ans Mplab (bei mir eine 8er Version) angeschlossen. Die Dummköpfe haben nicht nur den Code, sondern auch das EEPROM mit dem Protection Bit gesperrt und damit komme ich an nichts ran. Löschen des Bit führt logischerweise zu einer Komplettlöschung des MC, das lasse ich mal besser sein. Vielen Dank für die Hilfe!
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.