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 ?
>- 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
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?
>>>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
> 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 :-)
Frage an alle: Ist es sinnvoll, am ULN2803 zwischen +12V (Pin10) und der Masse (Pin9) einen Kondensator parallel zu beschalten ? 100 nF ?
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.
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.
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
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....
wie hast du den chip configuriert? Mach mal ein Bild....
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
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
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.
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
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
>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 ...
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.
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
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.
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
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
>90° Winkel in Leiterbahnen vermeiden.
Wegen EMV - sollte erwähnt werden, sonst gibt's wieder Fragezeichen beim
TO.
>>>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
>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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.