Forum: Mikrocontroller und Digitale Elektronik PIC18F44k22 (Xtreme low power) stürtzt ab.


von DirkF (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
die bisherige Schaltung mit dem PIC18F4620 im DIP40 Gehäuse an 5 V 
Versorgung lief problemlos.

Habe die Schaltung auf SMD umgestellt:
PIC18F44K22 im TQFP 44 Gehäuse an 5 V.
1x 100 nF Abblockkondensator.
MCLRE Disabled.

Der Prozessor startet zeitweise (ca. jedes 3. mal) immer neu (Reset), 
wenn ein Relais in der Nähe über einen ULN2803 (mit interner 
Freilaufdiode)
eingeschaltet wird.

Als Anlage das Layout.

Was kann den Neustart der MCU hervorrufen ?
- Software: ausgeschlossen, habe zum Test mal nur eine Warteschleife 
programmiert.

- MCLR Pin:  MCLR ist disabled. über 1 K auf Masse gezogen. Auch direkte 
Verbindung mit Masse hat keine Verbesserung gebracht.

- Versorgungsspannung: Störungen in der Versorgung ? Ist der 
Abblockkondensator C1A über 2 Vias zu weit weg ?

- ICSP ist disabled.

Hat jemand ein Tip ?

von Noch einer (Gast)


Lesenswert?

Am besten im main als erstes RCON Register abfragen. (Und auf LED 
ausgeben)

von RTFM (Gast)


Lesenswert?

MCLR gegen GND? Sicher? Wie wäre es mit VDD?

von Jens G. (jensig)


Lesenswert?

>- Versorgungsspannung: Störungen in der Versorgung ? Ist der
>Abblockkondensator C1A über 2 Vias zu weit weg ?

Ja. Zwar nicht optisch zu weit weg, aber strommäßig. Überlege mal, wo 
die Masseströme langfließen müssen - geht querfeldein über die Platine. 
Möglicherweise dort lang, wo auch die Lastströme lang gehen, was eine 
schlechte idee wäre.

: Bearbeitet durch User
von Witkatz :. (wit)


Lesenswert?

LVP disabled?

von Stephan (Gast)


Lesenswert?

Ich hätte an deiner Stelle für jeden Versorgungspin einen Kondensator 
genommen. Die beiden Versorgungspins liegen außerdem direkt neben einem 
Massepin, so dass du da die Kondensatoren direkt daneben platzieren 
kannst.
Für die anderen beiden ICs würde jeweils auch noch einen Kondensator 
vorsehen und ggf. noch einen größeren Kondensator (>10uF) auf der 
Platine platzieren, der ruhig weiter weg liegen kann.

Auf dem Top Layer(der rote Layer) ist außerdem noch genügend Platz, so 
dass du theoretisch die Massefläche auf der Unterseite noch größer 
machen könntest, indem du mehr Leiterbahnen auf Top routest.

Wo ist denn das Relais? Könnte es vielleicht auch sein, dass das 
Magnetfeld des Relais eine Spannung auf einer Leitung induziert?

von Maik W. (werner01)


Lesenswert?

Ich denke auch das es an den Kondensatoren liegt!

von DirkF (Gast)


Lesenswert?

>>>RCON Register abfragen
Was ist das denn für ein Register ?  Freie Pins habe ich nicht mehr, 
aber SPI ist zum Hauptprozesor angeschlossen.

>>>MCLR gegen GND? Sicher?
Ja.  die MCLR Funktion ist in den Config Bits deaktiviert.
Mit diesm Pin auf Masse möchte ich verhindern, dass er bei hohen 
Störspannungsimpulsen in den Programmiermodus wechselt.

>>>LVP disabled?   (Low Voltage Programm)
Ja, das ist doch die Funktion, wenn der besagte Pin auf high liegt, dann 
schaltet der Chip in den Programmiermodus.


Habe mittlerweile mal die Abblockkondensatoren ganz entfernt, siehe da, 
es läuft bei 2 von 3 MCUs....seltsam.
Werde mal Abblockkondensatoren auch an den ULN2803s dranhängen...

Danke auch für die restlichen Hinweise...
Gruß Dirk

von Noch einer (Gast)


Lesenswert?

> Was ist das denn für ein Register?

Da kannst du abfragen, ob es ein Brownout war.

> ....seltsam

Anscheinend waren es keine Abblockkondensatoren sondern 
Antennenschwingkreis-Kondensatoren :-)

von Dirk F (Gast)


Lesenswert?

Frage an alle:
Ist es sinnvoll, am ULN2803  zwischen +12V (Pin10) und der Masse (Pin9) 
einen Kondensator parallel zu beschalten ?
100 nF ?

von Noch einer (Gast)


Lesenswert?

Da bekommst du von 3 Fachleuten 4 verschiedene Antworten. Dazu kommt 
noch - man kann es nicht so einfach messen, der Tastkopf des 
Oszilloskopes verändert die Messung.

Musst entweder Tutorials zu Masseführung und Entkopplung durcharbeiten. 
Oder ad hock Masse sternförmig legen, Z5U direkt zwischen die Pins legen 
und hoffen, dass es gut genug ist.

von Peter D. (peda)


Lesenswert?

DirkF schrieb:
> Ist der
> Abblockkondensator C1A über 2 Vias zu weit weg ?

Nö, aber C1A ist nirgends an den GND des IC1 angeschlossen.
Mit GND sollte man nicht von Köln nach Bonn über Peking fahren, sondern 
direkt.

von Björn P. (bjrn_g)


Lesenswert?

DirkF schrieb:
>>>>MCLR gegen GND? Sicher?
> Ja.  die MCLR Funktion ist in den Config Bits deaktiviert.
> Mit diesm Pin auf Masse möchte ich verhindern, dass er bei hohen
> Störspannungsimpulsen in den Programmiermodus wechselt.

Wie soll das funktionieren?
Wo sollen diese 7,5-9V Spannungsspitzen (mit korrekten Timings) denn 
herkommen? Von deinem Programmer?
Die einzige Verbindung bei dir ist doch zur Masse...
Und selbst wenn sie auftreten würden, leitet man Überspannung mit Dioden 
nach Masse und 5V ab.

Und wenn du schon MCLR deaktivierst, ist eine externe Beschaltung eh 
hinfällig, weil er dann die Portfunktion übernimmt (Input RA3)^^
(es sei denn, du nutzt die Portfunktion, dann muss natürlich die 
Programmierspannung von der restlichen Schaltung getrennt werden)

>>>>LVP disabled?   (Low Voltage Programm)
> Ja, das ist doch die Funktion, wenn der besagte Pin auf high liegt, dann
> schaltet der Chip in den Programmiermodus.

Nope.
LVP begrenzt nur die Programmierspannung auf VDD.

> Habe mittlerweile mal die Abblockkondensatoren ganz entfernt, siehe da,
> es läuft bei 2 von 3 MCUs....seltsam.
> Werde mal Abblockkondensatoren auch an den ULN2803s dranhängen...

Fange niemals an, dir soetwas anzueignen! Damit wirst du dir öfter 
Probleme einhandeln, als dir lieb ist.
Ich würde an deiner Stelle zum 100nF noch einen 10µF parallel löten und 
dann das ganze nochmal testen.

[EDIT]
Aber ein Einbrechen der Versorgungsspannung, was einen Reset des uC 
auslöst, solltets du mit einem Oszi schon messen können. Dann weißt du 
doch mehr.
Wie sensibel ist denn dein BrownOutReset (FuseBit BOR) gesetzt?

Gruß

: Bearbeitet durch User
von Dirk F (Gast)


Lesenswert?

Hallo,
also ich werde hier noch verrückt.....
Habe die alte Version der Leiterplatte dia alten PIC18F4620 durch 
PIC18F46K22
im 40 piligen PDIP Gehäuse ersetzt.
Mit den alten Prozessoren absolut keine Probleme.
2x100 nF direkt an den VSS VDD Pins.

Die neuen Typ MCU stürzen auch hier ab !
Kann also kein Layoutproblem sein.

Noch was seltsames:
Wennich mit einer Pinzette an Pin 1 des Programmiersteckers komme, dan 
resettet der Chip auch.
Bei 3 Stück geprüft, immer da gleiche.
Auch hier ist die MCLR Funktion deaktiviert worden.

Also ich traue den XLP Chips nicht mehr....
urch die keineren Strukturen sind die Dinger scheinbar empfindlicher 
geworden..

Werde dan wohl auf PIC18F4620 im TQFP44 Gehäuse umsteigen, mit 5 V 
versoregen und einen Levelschifter für SPI zum PIC32 (SPI Master) 
aufbauen....

von Maik W. (werner01)


Lesenswert?

wie hast du den chip configuriert? Mach mal ein Bild....

von DirkF (Gast)


Angehängte Dateien:

Lesenswert?

Hi, hier die Config Bits.

von Toxic (Gast)


Angehängte Dateien:

Lesenswert?

Hast Du auch mal die Errata-information gelesen ? - da gibt es bei 
einigen Typen POR-Probleme - moeglicherweise sind deine uC's davon 
betroffen und die Ursache des Probs. Aber dies ist nur eine 
Vermutung....
http://www.google.ie/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCAQFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F80512E.pdf&ei=V5IZVYfpE6Gy7Qai64GQDA&usg=AFQjCNEEY8qeP9T4aawS0jMDiLXWewzN6A&bvm=bv.89381419,d.ZGU

von Volker S. (vloki)


Lesenswert?

Schon mal versucht die Configuration bits im Code zu setzen ?
Mit MPLABX wurde die Menue-Möglichkeit zum Glück abgeschaft.
Da kann man über das Menue nur noch den Code erzeugen und MUSS
ihn dann in eine Source Datei einfügen.

Bei mir sind die K22 (14k, 2xK, 4xK) von gerade "Standard"
Nie Probleme mit "Abstürzen", obwohl es sich bei vielen Boards
um Entwicklungsplatinen handelt die oft während des Betriebs mit
blossen Fingern ...

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Lies mal bitte das hier: 
http://www.lothar-miller.de/s9y/categories/14-Entkopplung

Deine Decouplingkondensatoren bringen an dieser Position überhaupt 
nichts. Zuerst mal benötigst du natürlich für jede GND-VCC-Pin-Pärchen 
einen einzelnen Kondensator. Also 2 Stück hier. Wenn du dann schon 
Probleme hast, dann brauchst du noch eine Bulkkapazität (z.B. 10uF) 
irgendwo in der Nähe des Controllers. Aber mal zu den 2x100nF. 
Elektrische länge (also der Pfad VCC-Pin-PIC -> Kondensator -> GND -> 
GND-Pin-PIC) nicht länger als 1,5cm. Und dann nicht diese dünnen 
Leiterbahnen. Die Induktivität der Zuleitungen muss kleinste möglich 
werden. Also Leiterbahnen so breit wie möglich und so kurz wie möglich! 
So wie du es hast (zeichne den Pfad ruhig mal in Paint ein), kannst du 
die Kondensatoren direkt weglassen.

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Mal ein Strompfad. Nur zur Demo. Nicht gut.

von Frank K. (fchk)


Lesenswert?

Dirk F schrieb:

> Die neuen Typ MCU stürzen auch hier ab !
> Kann also kein Layoutproblem sein.

Wenn das alte Layout genauso mies ist wie das der SMD-Version...

fchk

von DirkF (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusamme,
danke für die guten Hinweise.
Ich bin der Lösung schon Näher gekommen.

Fasse kurz zusammen.

Leiterplatte1 :
-  Altes DIP Layout gem. Anlage
- MCU PIC18F4620

Leiterplatte2 :
-  Altes DIP Layout gem. Anlage
- MCU PIC18F46K22

Leiterplatte3 :
-  Neues SMD Layout wie im ersten Beitrag
- MCU PIC18F46K22

Bei allen 3 Leiterplatten tritt der Effekt auf, wenn ich eine 
Metallpinzette in der Hand den Pin1 des Programmieradapters (MCLR) 
berühre, resettet der Chip.
Ist nicht weiter schlimm. Bloses Berühren mit dem Finger> Kein Reset.

Leiterplatte 1 und 2 laufen jetzt problemlos.
Fazit: Fehler liegt im Layout, nicht im Typ des PIC.
Werde jetzt das Layout überarbeiten.
Gruß Dirk


Leiterplatte 3:  Den Entkoppelkondensatoren ausgelötet.
Einen 100nF direkt an die Beinchen des TQFP44 MCU gelötet.
Ergebnis: Kein Absturz mehr im normalen Betieb.

Ursache war also wirklich schlechte Entkopplung durch lange Massewege.



Pro

von Jens G. (jensig)


Lesenswert?

>Bei allen 3 Leiterplatten tritt der Effekt auf, wenn ich eine
>Metallpinzette in der Hand den Pin1 des Programmieradapters (MCLR)
>berühre, resettet der Chip.
>Ist nicht weiter schlimm. Bloses Berühren mit dem Finger> Kein Reset.

Ist auch normal so. Mit Pinzette stellst Du urplötzlich einen Kontakt 
her, so daß eine harte Schaltflanke entstehen kann, während der Finger 
einen weich eingeleiten Kontakt bewirkt, so daß sich gar nicht erst eine 
höhere und härtere Schaltflanke aufbauen kann.
Dein Körper hat ja eine gewisse Kapazität gegenüber der Umgebung und der 
Schaltung, die mehr oder weniger geladen sein kann, und diese Kapazität 
entläd sich über den Pin, bzw, den R an diesem Pin.
Ist ungefähr so, als würdest Du einen kleinen geladenen C zw. Masse und 
Eingang klemmen, mal mit, mal ohne Serien-R.
Solche Störeffekte kannst Du an jedem eingang erzeugen, und hat nicht 
viel mit PCB-Layout zu tun.

>Leiterplatte 3:  Den Entkoppelkondensatoren ausgelötet.
>Einen 100nF direkt an die Beinchen des TQFP44 MCU gelötet.
>Ergebnis: Kein Absturz mehr im normalen Betieb.

>Ursache war also wirklich schlechte Entkopplung durch lange Massewege.

Genau ...

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

DirkF schrieb:
> Ursache war also wirklich schlechte Entkopplung durch lange Massewege.

Der eine Decouplingkondensator ist schon gut (der obere), der untere ist 
(vgl. Anhang) immer noch über einen langen Weg angekoppelt.

von DirkF (Gast)


Lesenswert?

Hallo Petern,
also das täuscht etwas.
Der GND vom unterene Entkoppelkondensator ist direkt über  die Ground 
plane mit dem GND Pin der MCU verbunden.
Blau ist die Ground plane, rot ist GND auf Top, nur die ist 
unterbrochen....
Trotzden Danke für Deinen Hinweis.
Gruß Dirk

von Stephan (Gast)


Lesenswert?

So sehr gut ist das Layout aber auch nicht.
Du hättest z.b. die Leitung, die zwischen dem oberen Kondensator und dem 
PIC ist, oberhalb vom Kondensator verlegen können.

Den unteren Kondensator hätte ich um 90° gedreht. Dann könnte man den C 
so platzieren, dass der GND- und der VCC-Pin des C direkt neben dem 
jeweiligen Anschlüssen des PIC liegen.

von DirkF (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
mit den bisherigen Erkenntnissen werde ich wohl eine neue Leiterplatte 
bestellenmüssen.

Als Anlage mein neues Layout.
Habe die Masseflächen so weit wie möglich nicht durchtrennt.

Bitte um Rückmeldung, ob das soweit OK ist....
Danke an alle.
Gruß Dirk

von Frank K. (fchk)


Lesenswert?

DirkF schrieb:

> Bitte um Rückmeldung, ob das soweit OK ist....

Bitte beschränke Dich auf Winkel von Vielfachen von 45°, dann sieht das 
ganze schon mal nicht so dahin geschissen aus. Elektrisch ist es egal, 
aber es sieht echt scheiße aus.

90° Winkel in Leiterbahnen vermeiden.

Leiterbahnen an Pads nicht breiter machen als die Pads selber.

Einer der Abblockkondensatoren ist HF-technisch nicht wirksam. Von der 
Einspeisung solltest Du zuerst zum Abblockkondensator gehen und von 
diesem dann zum Versorgungspin. Nur so kann der Kondensator als schnelle 
Spannungsquelle für kurzzeitige Lastspitzen dienen.

fchk

von Jens G. (jensig)


Lesenswert?

>90° Winkel in Leiterbahnen vermeiden.

Wegen EMV - sollte erwähnt werden, sonst gibt's wieder Fragezeichen beim 
TO.

von DirkF (Gast)


Lesenswert?

>>>Einer der Abblockkondensatoren ist HF-technisch nicht wirksam.

Hallo Frank,
vestehe ich nicht.
Die Zuleitung +5V geht doch erst auf den Kondensator, dann zum PIC.


Frage: Sollte man so ein System von beiden Seiten mit 5 V speisen, oder 
nur von einer ?

LG Dirk

von Jens G. (jensig)


Lesenswert?

>Einer der Abblockkondensatoren ist HF-technisch nicht wirksam. Von der
>Einspeisung solltest Du zuerst zum Abblockkondensator gehen und von
>diesem dann zum Versorgungspin. Nur so kann der Kondensator als schnelle
>Spannungsquelle für kurzzeitige Lastspitzen dienen.

Diese Begründung ist sowieso falsch. Dem C ist ja egal, woher er die 
Spannung bekommt. Für die Übernahme der Stromspitzen kommt es eigentlich 
nur auf den Weg zw. IC-Pin und C an.
Was aber von der Reihenfolge abhängt ist die EMV-Geschichte. Denn wenn 
direkt am IC-Pin eingespeist wird, und erst vom Pin weg eine extra 
Leitungs zum C geht, dann sieht die Einspeiseleitung mehr Störungen, als 
wenn sie direkt am C einspeisen würde. Die Einspeisung verbreitet dann 
die Sörung, die der C aufgrund seiner Entfernung nicht wegzubügeln 
vermag, über die restliche Schaltung, oder strahlt diese dann ab (weil 
der C eben nicht direkt am Pin angreift, sondern erst weiter weg, womit 
die Störungen am Pin höher sind als direkt am C).
Im letzten Layout3 wäre eigentlich nur das kleine Stück unterm IC davon 
betroffen, welches sozusagen an der C-abgewanden Seite der Pins liegt. 
Nach ausen hin (also von den Cs zur Versorgung hin) sieht es aber wieder 
sauber aus. Insofern keine großflächige Verseuchung, sondern nur unterm 
IC ein kleiner Seuchenherd  ;-)

: Bearbeitet durch User
von DirkF (Gast)


Lesenswert?

Hi Jens,
danke für die ausführliche Erklärung.

Zu meiner Frage:  Also beidseitig einspeisen ?

LG Dirk

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.