Forum: Mikrocontroller und Digitale Elektronik DMX Dimmer mit PIC - nonvolatile Memory?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von TestX (Gast)


Lesenswert?

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

von chris (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von chris (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von chris (Gast)


Lesenswert?

100k Schreiboperationen insgesamt (alle Zellen) wenn man kein refresh 
macht.
Real sollte es 4x soviel sein.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

100k im Flash und 1M im EEPROM - so stehts im DB.

von chris (Gast)


Lesenswert?

Parameter d120/d120A sowie d124 (refresh).
Wird d124 nicht angegeben ist dieser identisch mit d120.

von chris (Gast)


Lesenswert?

Parameter d120 ist je Zelle. D124 ist cumulativ für das ganze eeprom.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
Noch kein Account? Hier anmelden.