PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spannungseinbruch durch Digital-Ausgang --- µC defekt?



Che Guevara
12.05.2014, 13:28
Hi,

ich hab hier ein komisches Phänomen, was IMHO erst nach einem ein- und auslöten eines ATXMega192A3U auftrat.
Ich erzeuge mit PORTD.5 (TCD1.CCB) ein PWM-Signal mit 125kHz, welches mit einem 10kOhm/1µF Tiefpass 2. Ordnung geglättet wird. Das Signal hat danach keinen feststellbaren Ripple mehr (weder per LTSpice, noch per Oszi).
Nun habe ich am gleichen PORT (PORTD) noch zwei LEDs (kein PWM, nur digital, jeweils 1k R) und 4 weitere PWM Ausgänge, letztere machen aber keine Probleme. Nur wenn ich die Leds einschalte, sinkt die geglättete Spannung nach dem obigen Tiefpass um ca. 50mV ab. Auch bei Berührung des Tiefpasses mit einem Finger sieht man deutliche Veränderungen am Ausgangssignal. Der Tiefpass ist übrigens an PORTA.3 angeschlossen und wird mit dem ADC ausgewertet. Die LEDs leuchten ganz normal, JTAG ist disabled, der µC wird mit dem internen 32MHz Oszillator getaktet.
Alle anderen Funktionen / Pins / etc. laufen übrigens auch gut (bis auf den ADC-Teil, aber das liegt ja an dem Problem).
Masse ist verbunden, 3V3 auch (schon gemessen). Es sind alle GND Pins direkt unter dem Chip mit der Groundplate (QFN) verbunden, auch alle VCC sind angeschlossen und jeweils mit einem 100nF abgeblockt. Die Stromaufnahme des µC liegt bei ca. 30mA (kommt mir schon viel vor), es laufen 4 Timer, 4 ADC Channel, 2x USART, 1x SPI, 1x TWI.

Könnte es sein, dass der Chip durchs Löten Schaden genommen hat und er deswegen wohl irgendwie keine Power mehr hat um die Outputs zu treiben?
Bekomme leider erst diese Woche Ersatz, würde das aber gerne abklären, nicht dass der Hund evtl. woanders begraben liegt.

Vielen Dank & Gruß
Chris

fredred
12.05.2014, 17:10
Hallo Chris,


hast du die LED gegen VCC geschalten.
Sollen die Ports H liefern „verpulvern“ die int. Schutzdioden schon eine Menge Energie, wenn Strom > 1mA ist.
Somit rate ich LED gegen VCC zu schalten, dann sind Ströme bis zu 40 mA möglich.
Natürlich solltest du vorab die Stromaufnahme mit oder nicht messen.
Könnte natürlich auch sein, deine Spannungsversorgung hat seine Grenze erreicht.
Gruß
Fred

BMS
12.05.2014, 17:17
Hallo,

wenn ich die Leds einschalte, sinkt die geglättete Spannung nach dem obigen Tiefpass um ca. 50mV ab. Auch bei Berührung des Tiefpasses mit einem Finger sieht man deutliche Veränderungen am Ausgangssignal.
Die höhere Stromaufnahme der LEDs führt sicherlich auch zu höheren Spannungsabfällen im Controller, vermutlich zwischen PORT-Treiber und Versorgungsspannung. Da muss es ja irgendwo interne Leitungen und Bonddrähte geben, die eben einen kleinen ohmschen Widerstand haben.
Berührungen mit dem Finger führen idR. zu Einkopplungen vom z.B. 50Hz Lichtnetz.
Stören die 50mV wirklich?
Falls ja, könnte man versuchen, die Ausgangsströme an diesem Port zu minimieren, z.B. durch Low-Current-LEDs oder zusätzliche externe Treiber. Eventuell hilft auch, die Kathode der LED zu schalten.

Andererseits könnte auch ein anderes Problem existieren - hast du noch weitere Verbraucher auf der Platine, die "höhere" Ströme ziehen? Bei ungünstiger Masseführung kann es zu Potentialverschiebungen kommen, wenn Lasten ein- und ausgeschaltet werden. Stichworte: EMV, galvanische Kopplung, Masseschleifen, sternförmige Masseführung
Grüße, Bernhard

Che Guevara
12.05.2014, 18:49
Hi,

also die LEDs sind fest mit GND verbunden, der Strom liegt bei 2.2mA bzw. 1.6mA (grüne / rote LED, können beide gleichzeitig an sein).
Ansonsten sind keine größeren Verbraucher auf der Platine, nur ein MPU6000 (ca. 5mA) und ein MPXH6115A6U (ca. 5mA), insgesamt also ca. 40mA Stromaufnahme. Außerdem sind noch einige Schnittstellen nach außen geführt, u.a. 8x PWM (500Hz), 2x USART, 1x TWI.
Beide vorhandenen Spannungen (3V3 & 5V , je nach LM317) sind mit einigen 1µF und 100nF gepuffert und sauber (laut Oszi).
50mV stören in diesem Fall sehr, der Luftdrucksensor, um den es hier geht, gibt 46mV / kPa aus, ich brauche eine Auflösung im 1cm Bereich. --> Das Signal wird 64x verstärkt (deswegen die PWM als zweiter OP Eingang) und dann digitalisert (12Bit ADC, 1V Reference). 50mV sind somit ein Wert von (0.05V * 64) / (1V / 4096) = 13107.2LSB reines Rauschen, das sind 320%. Außerdem rauscht der ADC ansich ja auch noch etwas.

Gruß
Chris

EDIT:
Meint ihr, es bringt was, wenn ich die LED gegen VCC schalte?

Peter(TOO)
12.05.2014, 22:20
Hallo Chris.

Wie hast du die 50mV gemessen?
ist das bei 100% PWM-Signal, also Pegel auf Hight?

Hinzu kommt noch, dass die Ausgänge am µC halt digitale Ausgänge sind, das Signal darf sich da um ein paar 100mV verändern ohne, dass sich der Logikpegel ändert.

Wenn es so genau sein muss, brauchst du eine Referenzspannung, dein Spannungsregler macht da schon mehr als 50mV mit der Temperatur und dem alter. Typischerweise ligen die so bei +/-2-3%. Sind bei 5V schon mal +/-150mV.

Und dann musst du mit der PWM die Referenzspannung schalten, da brauchst du noch eine zusätzliche Stufe.

Als Schalter kann man dann Analogschalter oder ein CMOS-Gatter nehmen, welches Vref als Spannungsversorgung hat. Wichtig bei dem Gatter ist aber, dass man die überzähligen Gatter nicht verwendet. Wie du jetzt schon sehen kannst, gibt es immer ein Übersprechen zwischen den einzelnen Ausgängen.

Wie schon geschrieben wurde, ist da ein Bonddraht, der hat einen Querschnitt um 10µm2. Und auf dem Chip sieht es auch nicht wesentlich anders aus, als auf einer Leiterplatte. Allerdings sind da die Leiterbahnen meistens aus Alu, also etwa 4-facher Widerstand gegenüber Kupfer, und wenn eine sehr dick ist, hat die was um 1µm2. Teilweise sind die Leiterbahnen auch aus hoch dotiertem Silizium.
Grundsätzlich hast du da aber schnell mal 1 Ohm beisammen.

Die Querschnitte deiner Leiterplatte sind da wesentlich grösser.
Das Kupfer ist schon mal typisch 35 µm Dick und die Bahnen sind minimal 100-200 µm breit, sind also Querschnitte von 3'500-7'000 µm2.
OK, die Bahnen auf der Leiterplatte sind auch entsprechend länger.

So wie du dir das vorgestellt hast geht es nun mal nicht, bzw. was für eine 8-Bit Wandlung taugt, versagt bei 12-Bit.

Achja, die normale Simulation vernachlässigt nun mal die ganzen Leiterbahnen und Drähte.
Die Simulation arbeitet nun mal mit Vereinfachungen, schon wenn du das Ganze auf Transistorebene simulieren willst, würde es ewig dauern.
Es gibt Simulationsprogramme, welche das Layout einbeziehen können.

So vor 10 Jahren hatte Intel einen PC auf einem Chip entwickelt. Der wurde dann auf Transistorebene auf einem Grossrechner simuliert. Die Simulation brauchte 1 Woche um DOS zu laden.

MfG Peter(TOO)