Ripple in Versorgungsspannung

OP #5311787
Lesenswert?

Da ich mich zur Zeit mit einem hoch auflösendem ADC beschäftige (und 
natürlich grottenschlechte Werte messe) habe ich mal die 
Versorgungsspannung meiner MCU gemessen.

Ich verwende einen STM32F103X, versorgt wird er über einen linearen 3.3V 
Regler.

Wenn die MCU nichts macht, also einfach ihre Zeit in einer endlos- 
Schleife verbringt ist auf der Versorgungsspannung kein Rauschen zu 
erkennen.

Wenn ich den folgenden Code ausführe habe ich im Abstand von ca. 2ms 
Rippel von ungefähr +-100 mV

Ist das normal so?
1
for (int8_t i = 23; i >= 0; i--)
2
{
3
        HAL_GPIO_WritePin(Spi1_Sck_GPIO_Port, Spi1_Sck_Pin, GPIO_PIN_RESET); 
4
        HAL_Delay(1);
5
        if (HAL_GPIO_ReadPin(Spi1_Miso_GPIO_Port, Spi1_Miso_Pin) == GPIO_PIN_SET)
6
          innerValue |= (1 << i);
7
        HAL_GPIO_WritePin(Spi1_Sck_GPIO_Port, Spi1_Sck_Pin, GPIO_PIN_SET);
8
}

Danke für jeden Hinweis
Gast #5311793
Lesenswert?

Peter H. schrieb:
> hoch auflösendem ADC

Sehr genaue Angabe. Die Angabe eines Typs ist nicht erforderlich.

Peter H. schrieb:
> auf der Versorgungsspannung kein Rauschen zu
> erkennen.

Sehr genaue Angabe. Kann sich jeder der schon mal gemesssen
hat was darunter vorstellen.

Peter H. schrieb:
> Ich verwende einen STM32F103X, versorgt wird er über einen linearen 3.3V
> Regler.

Schaltpläne sind nur lästiges Beiwerk was unter allen Umständen
zu vermeiden ist.
Gast #5311794
Lesenswert?

Netzteil ist ein labornetzteil der unter 100 Eruo klasse.

Es liefert 7V, die sind sehr konstant.

Alles zusammen steckt auf einem Breadboard, Länge der Leitungen wenige 
cm.

An allen Versorgungspibs der MCU hängt ein 100nF Kerko nach Gnd.
#5311795
Lesenswert?

Peter H. schrieb:
> Ich verwende einen STM32F103X

Hi,
Die allgemeinen Hinweise, jeweils ein LC-Glied vor alle 
Versorgungsspannungsanschlüsse incl. für den Analog-Wandler VCC sind 
wohl zu simpel.

Im Datenblatt Figure 10.
Die Sache ist nicht mehr ganz so einfach.

In welchem Spannungsversorgungsmodus wird MCU betrieben?
Wird der Onboard-Stabilisator richtig beschaltet?
Treibt er vielleicht sein Eigenleben?

ciao
gustav
OP #5311808
Lesenswert?

Karl B. schrieb:
> In welchem Spannungsversorgungsmodus wird MCU betrieben?
> Wird der Onboard-Stabilisator richtig beschaltet?
> Treibt er vielleicht sein Eigenleben?

Hallo Karl,

ich verstehe die Frage leider nicht.
Ich wusste gar nicht dass da ein Onboard-Stabilisator vorhanden ist. 
Finde ich da irgendwo Informationen?

Ich weiß dass ich mich mal wieder dumm anstellen...

Der ADC ist im übrigen ein MCP3551, aber darum mache ich mir noch nicht 
so den Kopf, ich möchte mal herausfinden ob ich sonst noch was falsch 
gemacht habe.
#5311812
Lesenswert?

Peter H. schrieb:
> ich verstehe die Frage leider nicht.
Peter H. schrieb:
> Ich verwende einen STM32F103X, versorgt wird er über einen linearen 3.3V
> Regler.

Hi,
ich klicke auf STM32F103X, genau so, wie Du es geschrieben hast.

Da öffnet sich der mc net Bauteil link

https://www.mikrocontroller.net/part/STM32F103

Das PDF-File hat die Figures am Ende. (Seite 44)

So kam ich drauf.

ciao
gustav
OP #5311815
Lesenswert?

Aha, in der neuen Fassung des PDF ist es Fig. 14

Fehler Nr 1 also schon ausgemacht, der 4,7 µF an Vdd3 fehlt bei mir.

Was ich noch nicht gesehen habe ist das mit den LC-Gliedern. Laut der 
Zeichnung sollten Kondensatoren reichen.

Um die Versorgung der ADC/DAC mache ich mir auch mal keinen Gedanken, da 
ich den internen zur Zeit ja nicht nutze.
(Firma: matzetronics) #5311849
Lesenswert?

Da ein STM32 nur schlecht auf ein Breadboard zu stecken ist, wird er 
wohl auf einer Trägerplatine sitzen. Diese Trägerplatine ist der einzig 
richtige Ort für Abblockmassnahmen, denn nur dort ist das alles nah 
genug am Kern des MC und kann seine Wirkung entfalten.

Das der interne ADC des STM32F10x kein Genauigkeitswunder ist, ist 
bekannt, aber durch Abblockmassnahmen und LC Filter in der Versorgung 
kommt er schon in gut brauchbare Bereiche.
Mach doch mal bitte ein Foto deines Aufbaues und poste es hier. 
Ausserdem wäre interessant, welches Package du konkret verwendest.
OP #5312858
Lesenswert?

Ja, er sitzt auf einer Trägerplatine. Leider hat sie keinen Platz für 
die Kondis...

Somit ist alles nur auf das Brett gesteckt - alles nicht wirklich ideal.

Ich werde mir bei Gelegenheit selbst eine machen, und dann auch die 
Kondensatoren drauf geben.

Wenn alles fertig ist werde ich weitere Tests vornehmen.
#5314299
Lesenswert?

Peter H. schrieb:
> Weil es mir schlicht und ergreifend nicht um den ADC ging sondern in
> erster Linie woher die Schwankungen in der Versorgungsspannung kommen...

Vermutlich durch falsches Messen. Schon kleinste Leiterzüge sind 
Induktivitäten, d.h. die Taktfrequenz des MC erzeugt daran 
Wechselspannungen.

Dein Meßproblem des ADC hat damit aber nichst zu tun. Die ADC-Spannung 
erzeugt oder siebt man in der Regel separat vom MC.
Will man es besonders sauber machen, trennt man die Datenleitungen zum 
MC über Optokoppler oder ADUM1401.
OP #5314564
Lesenswert?

Ja das mit dem Breadboard ist mir schon bewusst, aber zum probieren wird 
einem ja eh nichts anderes übrig bleiben...

Ich habe als ADC nun mal einen MCP3004 dran gehängt. Der hat 10 bit 
Auflösung.

Aus einer Spannungsquelle betreibe ich den STM und den ADC
Vddstm = Vddadc = Vref = Vin
alle Massen verbunden.

Vref und Vin mit dem Oszi geprüft, ist nicht sauber, man erkennt 
Störungen im ca 50mV Bereich.

Ergebnis der Messung im Mittelwert ca. 900 bei erwarteten 1024. Also 
mehr als 10% daneben.

Ist dies mit einem so einfachen Aufbau bereits das Ende der 
Fahnenstange? Was erreicht ihr denn so plus minus?
#5314758
Lesenswert?

Peter H. schrieb:
> Nun sind die
> Rippel weg, aber ich habe nichts geändert als das Oszi mal hier und mal
> dort dran zuschließen.

Peter H. schrieb:
> Vref und Vin mit dem Oszi geprüft, ist nicht sauber, man erkennt
> Störungen im ca 50mV Bereich.

Wer misst misst Mist.

Wie ist das Oszi angeklemmt? Vor allem die Masse? Direkte möglichst 
kurze Leitung von der Masse des Tastkopfspitze (wichtig!) direkt zu der 
Masse am A/D Wandler Massepin

Oder hast du die Masse des Oszis am Netzteilausgang angeschlossen? Dann 
musst du dich über irgendwelche Störungen Peaks etc. im Voltbereich 
nicht wundern.
Gast #5314797
Lesenswert?

Most Sauger schrieb:
> Ohne eigene Leiterplatte fuer ein Design stelle ich gar nicht erst
> irgendwelche Anforderungen. Das Wichtigste ist eine GND Plane.

Das ist zwar immer echt aufwendig, aber ohne ordentliche Leiterplatte 
sieht man ja, was passiert.

Achdumein Liebermeinvater schrieb im Beitrag #5311793xyz:
nur Blödsinn.
OP #5316671
Lesenswert?

So nun habe ich mal einen Entwurf gemacht wie denn ein Aufbau aussehen 
könnte mit dem ich vernünftig die 2 externen ADC
* MCP3008
* MCP3551

testen könnte. Prinzipiell sollte die Genauigkeit es ermöglichen einen 
PT100 (oder PT1000) vernünftig auslesen zu können.

Was haltet ihr denn davon? Wenn der Stromlaufplan passen würde könnte 
ich mich ans Layout der Platine wagen...
Angehängte Dateien:
#5316744
Lesenswert?

Peter H. schrieb:
> Was haltet ihr denn davon? Wenn der Stromlaufplan passen würde könnte
> ich mich ans Layout der Platine wagen...


Karl B. schrieb:
> Die allgemeinen Hinweise, jeweils ein LC-Glied vor alle
> Versorgungsspannungsanschlüsse incl. für den Analog-Wandler VCC sind
> wohl zu simpel.

Hi,
ich sehe nirgendwo irgendwelche L's.

Wenn nicht, dann eben nicht. Würde es aber zumindest im Layout vorsehen, 
wenn auch aktuell nicht bestückt.

ciao
gustav
OP #5316891
Lesenswert?

@ Karl B.

Da ich keine Ahnung von der Dimensionierung eines LC- Filters habe, und 
im Datenblatt keine Hinweise finde könnte mir bitte jemand einen Tipp 
geben wie ich die dimensionieren soll.

Mit den 5V toleranten Inputs muss man beim STM32F103 aufpassen, einige 
Pins sind es, andere nicht.

Wenn ich mich das nächste mal ans Zeichnen machen sehe ich einen 
Pegelwandler vor.

Theoretisch könnte man wie von Peda vorgeschlagen beide ADCs an die SPI 
Schnittstelle hängen, ich hatte beim Auslesen des MCP3551 Probleme mit 
dem hardware SPI, daher hatte ich ihn "händisch" ausgelesen. Liegt aber 
sicher daran dass ich der Sache nicht wirklich auf den Grund gegangen 
bin. Wenn ich aber eh eine Platine rein zu Testzwecken mache dann 
verschwende ich halt ein paar Pins... ;-)
OP #5316942
Lesenswert?

Michael B. schrieb:
> Peter H. schrieb:
>> Wenn der Stromlaufplan passen
>
> Stromlauf ? Das sind nebeneinandergeklatschte Bauteile auf einem Blatt.
> Du denkst doch nicht ersthaft, daß man zu all den Labels alle anderen
> auf dem Blatt mit demselben Namen jedesmal zusammensucht ? Vbf2, wo mag
> das alles hingehen...
>
> Die Beschaltung von PA6 ist fraglich.

Da ich auch vom Zeichnen von Schaltplänen nicht viel Ahnung habe lasse 
ich mich gerne belehren was ich falsch mache. Ich war der Meinung dass 
das verwenden von lables dem ziehen von Leitungen vorzuziehen ist. Wäre 
es also besser die Bauteile so zu platzieren dass ich Leitungen z.B. SPI 
direkt an den MC ziehen kann?

Der Spannungsteiler ist sicher nicht ideal, kann wie oben erwähnt durch 
einen Pegelwandler ersetzt werden.
#5317598
Lesenswert?

http://www.st.com/content/ccc/resource/technical/document/application_note/group0/3f/4c/a4/82/bd/63/4e/92/CD00211314/files/CD00211314.pdf/jcr:content/translations/en.CD00211314.pdf#page22

Das sagt STM dazu.

Und ein LC Filter könnte sicher ebenso aussehen wie für einen Atmel.

Dort werden 10uH und 100nF vorgeschlagen:

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf

Seite 313. Screenshot angehängt.

Laut Onlinrechner hat der Filter eine Grenzfrequenz von 150kHz.

http://circuitcalculator.com/lcfilter.htm
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren