Forum: Mikrocontroller und Digitale Elektronik Ripple in Versorgungsspannung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Peter H. (peter_hilleb)


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

von Schorsch X. (bastelschorsch)


Lesenswert?

Wie ist die Betriebsspannung abgeblockt ? Wie lange sind die Leitungen 
zur CPU ? Welches Netzteil ?

von Achdumein Liebermeinvater (Gast)


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.

von PeterH (Gast)


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.

von Karl B. (gustav)


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

von Achdumein Liebermeinvater (Gast)


Lesenswert?

Peter H. schrieb:
> hoch auflösendem ADC

PeterH schrieb:
> Alles zusammen steckt auf einem Breadboard

Einen Aufbau zu zeigen ist hier auch unnötig, denn
die Auflösung des ADC ist ja nicht sehr hoch sondern
nur hoch.

von Peter H. (peter_hilleb)


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.

von Peter H. (peter_hilleb)


Lesenswert?

Karl B. schrieb:
> Im Datenblatt Figure 10.
> Die Sache ist nicht mehr ganz so einfach.

Die Fig. 10 ist das Pinout, auch da verstehe ich nicht so recht was ich 
da sehen soll...

von Karl B. (gustav)


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

: Bearbeitet durch User
von Peter H. (peter_hilleb)


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.

von Peter H. (peter_hilleb)


Lesenswert?

Habe einen 4,7µF Elko an Vdd3 darangehängt, es ändert sich nichts, die 
Rippel bleiben vorhanden.

von Peter H. (peter_hilleb)


Lesenswert?

So nun ist das passiert was ich am wenigsten haben wollte. Nun sind die 
Rippel weg, aber ich habe nichts geändert als das Oszi mal hier und mal 
dort dran zuschließen.

Vielleicht hatte irgendwas auf dem Breadboard keinen guten Kontakt und 
durch das umstecken hat sich da was geändert...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Peter H. (peter_hilleb)


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.

von Peter D. (peda)


Lesenswert?

Peter H. schrieb:
> Der ADC ist im übrigen ein MCP3551

Verrate doch nicht das Wichtigste schon so früh.

von Achdumein Liebermeinvater (Gast)


Lesenswert?

Peter D. schrieb:
> Verrate doch nicht das Wichtigste schon so früh.

Peter H. schrieb:
> Wenn alles fertig ist werde ich weitere Tests vornehmen.

Also erst mal 100 Platinen fertigen lassen und dann hier
im Forum fragen ob das Layout auch so richtig ist.

Das wird lustig.

von Peter H. (peter_hilleb)


Lesenswert?

Peter D. schrieb:
> Peter H. schrieb:
>> Der ADC ist im übrigen ein MCP3551
>
> Verrate doch nicht das Wichtigste schon so früh.

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

Die Fragen zum ADC werden schon noch auftauchen

von Peter D. (peda)


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.

von Harald W. (wilhelms)


Lesenswert?

PeterH schrieb:

> Alles zusammen steckt auf einem Breadboard,

Das ist schon mal eine typische Störquelle! :-(

von Martin (Gast)


Lesenswert?

Breadboard ist nicht kompatiebel mit hohe Genauigkeit.

von Peter H. (peter_hilleb)


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?

von Most Sauger (Gast)


Lesenswert?

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

von Peter H. (peter_hilleb)


Lesenswert?

Also eher mal ein Design entwerfen und dann damit experimentieren?

Wenn es die Zeit das nächste mal zulässt werde ich mich dran machen und 
hier im Forum veröffentlichen.

von Udo S. (urschmitt)


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.

von m.n. (Gast)


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.

von Peter H. (peter_hilleb)


Angehängte Dateien:

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...

von Karl B. (gustav)


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

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter H. schrieb:
> Was erreicht ihr denn so plus minus?

Mit dem Discovery F407 Board und externem CS5331 (I2S-)Audio ADC 
erreiche ich bei 48kHz Samplerate ohne Probleme CD Qualität ohne 
Störungen.
Dabei erhält der ADC eine extra gesiebte VCC mit CLC Filter und etwa 3cm 
I2S Zuleitungen zum Discovery Board.

von Udo S. (urschmitt)


Lesenswert?

Wie schön, daß du alle Rückfragen zügig beantwortest.

von Peter D. (peda)


Lesenswert?

Peter H. schrieb:
> Was haltet ihr denn davon?

Warum nicht beide ADCs an das SPI des MC und nur /CS separat?
Ich mach da immer noch 100R in die Leitungen zum ADC, um die steilen 
Flanken rauszunehmen.
Für ein kommerzielles Design gehören da noch Pegelwandler (74HCT) rein, 
da 5V-ICs >=3,5V als high sehen wollen.
Ist der MISO des MC 5V-tolerant?

von Peter H. (peter_hilleb)


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... ;-)

von Michael B. (laberkopp)


Lesenswert?

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.

von Peter H. (peter_hilleb)


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.

von Peter H. (peter_hilleb)


Lesenswert?

Kann vielleicht jemand mit dem LC- Filter für die Versorgungsspannung 
der ADC helfen? Wie ich den dimensioniere?

von Conny G. (conny_g)


Angehängte Dateien:

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

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.