Forum: Mikrocontroller und Digitale Elektronik PIC Reset Detection


von A. S. (rava)


Lesenswert?

Hi,

ich arbeite gerade an einem LED-Modul im Multiplexbetrieb. Die 
Reset-Leitung wird zur Programmierung verwendet und hat zusätzlich eine 
vorgesehene Funktion bei der Ansteuerung des Moduls (RESET eben)
Durch einen Verdrahtungsfehler fließt auch bei aktivem RESET Strom durch 
die LEDs, leider bleibt aber die Spaltenansteuerung im Reset stehen und 
es besteht die Chance dass die LEDs am Dauerstrom sterben.


ich sehe jetzt also mehrere Möglichkeiten und möchte mal eure Meinungen 
dazu abfragen

a) Multiplexbetrieb mit 20mA
Wie groß sind da die Helligkeitseinbußen gegenüber 50mA, 75mA und 100mA? 
Was schätzt ihr? Ich werde das mal testen, aber da maximale Helligkeit 
ein wichtiges Ziel ist, habe eigentlich nicht viel Spielraum.
b) Software-Reset
Ich schalte einfach den externen Reset ab und triggere eine Art 
Software-RESET, der den Christbaum abschaltet und das Modul wieder in 
den Ursprungszustand zurückversetzt.
Ich fürchte, beim Programmieren habe ich das Problem dann immer noch, 
oder? da wird ja etwas anderes passieren, als ein simpler RESET (den man 
über Register deaktivieren kann). Arbeitet das Programmiertool bei 
microchip mit einer besonderen Spannung?
c) Deine Idee!


danke für euren Input

von paul (Gast)


Lesenswert?

Der Resettaster darf nur einen kurzen Resetimpuls generieren.

von spontan (Gast)


Lesenswert?

>Durch einen Verdrahtungsfehler fließt auch bei aktivem RESET Strom durch
>die LEDs, leider bleibt aber die Spaltenansteuerung im Reset stehen und
>es besteht die Chance dass die LEDs am Dauerstrom sterben.

Zeig doch mal den Schaltplan und den Verdrahtungsfehler.

Warum willst Du das Design nicht ändern und gleich richtig machen? Was 
soll die Suche nach einer Notlösung? Sind schon 10000 Platinen 
bestückt????

von Jens P. (picler)


Lesenswert?

Beim Reset sind alle IO-Pins hochohmig, können also keine Spaltentreiber 
durchsteuern. Natürlich gibt es alle möglichen mehr oder weniger 
sinnvollen Schaltungsmöglichkeiten, doch ohne Schaltplan weiß selbst 
meine Glaskugel nicht weiter. Wenn die IO-Pins nicht reichen solltest du 
dich nach einen größeren PIC umsehen. Notfalls würde auch ein (3 zu 8, 
o.ä.) Spaltendekoder gehen. Der sollte aber auch einen aktiv-low 
Enable-Pin haben, der beim Reset die Ausgänge abschaltet. Gehen tut 
viel, doch sind deine Infos einfach zu dürftig...

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

Jens PICler schrieb:
> Der sollte aber auch einen aktiv-low
> Enable-Pin haben, der beim Reset die Ausgänge abschaltet.

Guter Mann! Genau das ist mein Fehler. Active Low heißt, es leuchtet nur 
beim Reset. Die Inverterschaltung habe ich vergessen.
Daher muss ich die Verbindung bei den gefertigten Platinen auftrennen. 
Mit einer Drahtbrücke schalte ich den IC dann immer an - leider auch 
beim Reset.
Der Aufwand hierfür ist zum Glück bei meinem Design minimal (einfach die 
stiftleiste kürzen, siehe schaltplan)!

spontan schrieb:
> Sind schon 10000 Platinen
> bestückt????

100
Für ein Hobbyprojekt, ne ganze Menge!
in der nächsten Variante wird das natürlich richtig gestellt!

paul schrieb:
> Der Resettaster darf nur einen kurzen Resetimpuls generieren.

stimmt. Kann ich aber leider nicht garantieren, da Reset von einer 
anderen Platine kommt, die der Nutzer meiner Module entwirft. Ihm zu 
sagen "verbock's nicht" ist leider auch nur eine Notlösung ;)




bleibt die Frage nach der Programmierung des PICs:
was passiert da mit Reset, vor allem wenn der Reset-Eingang abgeschaltet 
ist? Kann ich das anhand von software erkennen und noch eben schnell ein 
Register setzen, bevor der PIC aus geht?

von Jens PICler (Gast)


Lesenswert?

A. S. schrieb:
> Active Low heißt, es leuchtet nur
> beim Reset.

Nein. Aktiv low heißt, der Spaltendekoder ist freigegeben (aktiv) wenn 
der Enable-Eingang auf low steht. Bei einem Reset sind alle Pins 
hochohmig und das wird üblicherweise als high interpretiert. Notfalls 
mit einem kleinen Pull-Up sicherstellen.

A. S. schrieb:
> 100
> Für ein Hobbyprojekt, ne ganze Menge!
> in der nächsten Variante wird das natürlich richtig gestellt!

Hobbyprojekt. Ja ist klar und dein "guter Mann" bin ich noch lange 
nicht...

von Chris (Gast)


Lesenswert?

Du gibst keine Infos, welcher Pic usw.
Mein Tipp:
Benutze einen Bootloader.
Setze den MCRL Pin auf IO Input, nachdem du den Bootloader gebrannt 
hast.
Achtung, Brennen=12V sprich deine Led-Steuerung wird das nicht 
verkraften.
Ändere das Programm um einen Reset zu generieren auf die neue Situation.
Z.B. mit WDT den du ab und zu refresht und sowas:
setbank TRISA
movlw 0xff
movwf TRISA
movwf TRISB
movwf TRISC
goto $

von Peter D. (peda)


Lesenswert?

Wie steuerst Du Q1..8 an?

Floatende FETs sind immer schlecht.
Einen 10k Pullup zwichen G-S löst das Problem. Als 0805 oder 0603 sollte 
man sie noch bequem dranpappen können

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.