Forum: Mikrocontroller und Digitale Elektronik STM32F4 Schaltkreis passt?


von Rafael B. (rafael_b)


Angehängte Dateien:

Lesenswert?

Hallo,
erstmal sorry für den schwammigen Titel. Ich will ein eigenes Board mit 
einem STM32F4 basteln. Bin mir aber nicht sicher, ob die Beschaltung so 
richtig ist. Vielleicht kann hier jemand grob drüberschauen? Ich würde 
mich auch über Empfehlungen für ein besseres Layout des Schaltplans 
freuen. Ich verwende KiCad.
Meine Quellen waren die AN4488 von STM (Intro zum Hardware Development 
für STM32) und das Datenblatt des STM32F401RDTX, sowie Carmen Noviello's 
Buch "Mastering STM32" (da gibt es ein kurzes Kapitel zur 
Hardwareentwicklung).
Wenn der Chip dann fertig ist, will ich ihn über ein nucleo board 
programmieren. Habe dafür NRST, SWDCLK und SWDIO rausgelegt. Muss ich da 
noch irgendwas beachten oder ist das dann wie ein normales dev board?

von H.Joachim S. (crazyhorse)


Lesenswert?

Hm, bin ja auch ein Freund von labelschaltplänen - aber doch bitte nicht 
für alles und jedes netz. Mir ist das zu mühsam mich da durchzusuchen.

Auf jeden Fall ist aber am Spannungsregler was faul.

von Rafael B. (rafael_b)


Angehängte Dateien:

Lesenswert?

H.Joachim S. schrieb:
> Hm, bin ja auch ein Freund von labelschaltplänen - aber doch bitte nicht
> für alles und jedes netz. Mir ist das zu mühsam mich da durchzusuchen.
>
> Auf jeden Fall ist aber am Spannungsregler was faul.

Ja stimmt, das habe ich repariert und angehängt. Musste nur einen neuen 
Footprint erstellen, mit den richtigen Bezeichnungen.

Die Label werde ich Stück für Stück reduzieren, danke!

von Fern Schätzer (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Auf jeden Fall ist aber am Spannungsregler was faul.

An Vin von U2 gehört ein Elko nach Hersteller-Empfehlung (Datenblatt).

von Fern Schätzer (Gast)


Lesenswert?

Vdd und decoupled_vdd sind verbunden, das wird beim erstellen
der Netzliste schiefgehen. Ein Signal darf nur einen Namen haben.
Aussedem ist es total irreführend.

von Fern Schätzer (Gast)


Lesenswert?

Fern Schätzer schrieb:
> An Vin von U2 gehört ein Elko

... und der geört wirklich direkt an U2 nicht irgendwo hin.

von Rafael B. (rafael_b)


Lesenswert?

Fern Schätzer schrieb:
> H.Joachim S. schrieb:
>> Auf jeden Fall ist aber am Spannungsregler was faul.
>
> An Vin von U2 gehört ein Elko nach Hersteller-Empfehlung (Datenblatt).

Ich habe ja nur bei Vout Kondensatoren. Im Datenblatt
http://ww1.microchip.com/downloads/en/DeviceDoc/20001826D.pdf
auf Seite 2 unten wird ein Keramikkondensator bei Vin empfohlen, den ich 
nicht habe.

Danke für den Tipp!

von Rafael B. (rafael_b)


Angehängte Dateien:

Lesenswert?

Habe mal unter den Labeln etwas aufgeräumt und den Kondensator bei Vin 
hinzugefügt. Im PCB ist er sehr nah am MCP1700.

von Fern Schätzer (Gast)


Lesenswert?

100uF an Vout wird für diesen Regler zuviel sein. Die Regler-
Eigenschaften leiden daurch.

Über den Daumen gepeilt sollte 10uF ok sein.

Vdd hat immer noch mehrere Namen. Das ist nicht gut.

von Rafael B. (rafael_b)


Angehängte Dateien:

Lesenswert?

Ok, habe korrigiert.

Mir ist aus dem Datenblatt:
https://www.st.com/content/ccc/resource/technical/document/application_note/76/f9/c8/10/8a/33/4b/f0/DM00115714.pdf/files/DM00115714.pdf/jcr:content/translations/en.DM00115714.pdf
nicht klar, ob Vcap1 nun mit VDD verbunden ist oder nicht. Auf Seite 10 
sieht es so aus, aber auf Seite 8 heißt es
"VDD should always be higher than VCAP to avoid current injection 
between power
domains.".

Der Zusammenhang zwischen VDD, VBat, VREF+, und VCAP ist mir nicht klar.

von Andreas M. (amesser)


Lesenswert?

- An Reset fehlt ein Pull Up
- Bei Userbutton den Kondensator weglassen, der schweißt bei jedem 
Drücken den Taster ein bischen. Entprellen per Software ist besser.
- Prüf mal ob die Led besser Low-Active angeschalten wäre. Viele 
Ausgänge können besser gegen Masse ziehen.
- Deine Usart/SPI/I2C Header haben weder Masse noch Betriebsspannung 
(3.3V) Ist das Absicht?
- reset_circuit vom JTAG ist mit nichts verbunden.
- Bei JTAG würde ich versuchen eine Standard-Beschaltung zu nehmen: 
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf 
bzw https://www.mikrocontroller.net/articles/JTAG

von Fern Schätzer (Gast)


Lesenswert?

Andreas M. schrieb:
> - Bei JTAG würde ich versuchen eine Standard-Beschaltung zu nehmen:

Das ist kein JTAG (der würde aus vier Leitungen bestehen)
sondern ein SWD Port.

von Rafael B. (rafael_b)


Lesenswert?

Andreas M. schrieb:
> - An Reset fehlt ein Pull Up

Sicher das ich dort eins brauche? In "Mastering STM32" und auf diesem 
Schaltplan von Arrow Electronics:
https://static5.arrow.com/pdfs/2015/11/3/2/19/1/140/st_/manual/stm32nucleo-64_fig.1_4.jpg
ist keiner.

> - Bei Userbutton den Kondensator weglassen, der schweißt bei jedem
> Drücken den Taster ein bischen. Entprellen per Software ist besser.

Guter Punkt! Beim reset baut ST in Nucleo boards selber einen ein, 
vielleicht weil sie ziemlich robuste push buttons verbauen.

> - Deine Usart/SPI/I2C Header haben weder Masse noch Betriebsspannung
> (3.3V) Ist das Absicht?

Wäre auf jeden Fall komfortabler.

> - reset_circuit vom JTAG ist mit nichts verbunden.
> - Bei JTAG würde ich versuchen eine Standard-Beschaltung zu nehmen:
> 
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf
> bzw https://www.mikrocontroller.net/articles/JTAG

Ich wollte eigentlich mit SWD und einem Nucleo board flashen/debuggen. 
Da bräuchte ich (wenn ich das richtig verstehe) nur target_vdd, GND, 
SWDIO, SWDCLK, NRST.

von Fern Schätzer (Gast)


Lesenswert?

Rafael B. schrieb:
> Da bräuchte ich (wenn ich das richtig verstehe) nur target_vdd, GND,
> SWDIO, SWDCLK, NRST.

Sehr richtig. Eine Standard-Beschaltung wäre aber trotzdem
(für sich selbst) sehr hilfreich.

von Rafael B. (rafael_b)


Angehängte Dateien:

Lesenswert?

Fern Schätzer schrieb:
> Sehr richtig. Eine Standard-Beschaltung wäre aber trotzdem
> (für sich selbst) sehr hilfreich.

Wusste gar nicht, dass es das gibt. Da sind ja noch einige andere Pins 
rausgeleitet.

von Tassilo H. (tassilo_h)


Lesenswert?

Rafael B. schrieb:
> Mir ist aus dem Datenblatt:
> 
https://www.st.com/content/ccc/resource/technical/document/application_note/76/f9/c8/10/8a/33/4b/f0/DM00115714.pdf/files/DM00115714.pdf/jcr:content/translations/en.DM00115714.pdf
> nicht klar, ob Vcap1 nun mit VDD verbunden ist oder nicht. Auf Seite 10
> sieht es so aus, aber auf Seite 8 heißt es
> "VDD should always be higher than VCAP to avoid current injection
> between power
> domains.".
>
> Der Zusammenhang zwischen VDD, VBat, VREF+, und VCAP ist mir nicht klar.

Vcap ist der Ausgang des internen Spannungsreglers für den CPU-Kern. Da 
gehören 4u7 nach GND dran (bzw. 2x 2u2 wenn es ein Package mit 2 
VCap-Pins ist). Nicht mit VDD verbinden (es sei denn man deaktiviert 
den internen Regler, ergibt hier keinen Sinn).

VDD ist die Haupt-Versorgung und Versorgung für die ganzen I/O-Pins. An 
jeden Pin gehören 100nF nach GND, und noch einmal 4u7 nach GND in der 
Nähe des Chips.

VREF+ ist die Referenzspannung für den A/D-Konverter (und kann mit VDDA 
verbunden werden, falls das als Referenzspannung gut genug ist).

VDDA ist die Versorgung für den A/D-Wandler und sonstigen Analogkram. 
1uF und 100nF nach GND. Am besten über eine kleine Drossel 100uH oder so 
mit VDD verbinden (oder direkt, wenn etwas Rauschen auf dem A/D nicht 
stört)

VBat versorgt das batteriegepufferte RAM und die Echtzeituhr. Mit 100 nF 
nach GND abblocken und entweder die Pufferbatterie anschließen, oder, 
falls  Batteriepufferung nicht benötigt wird, mit VDD verbinden.

von Rafael B. (rafael_b)


Lesenswert?

Tassilo H. schrieb:
> Rafael B. schrieb:
>> Mir ist aus dem Datenblatt:
>>
> 
https://www.st.com/content/ccc/resource/technical/document/application_note/76/f9/c8/10/8a/33/4b/f0/DM00115714.pdf/files/DM00115714.pdf/jcr:content/translations/en.DM00115714.pdf
>> nicht klar, ob Vcap1 nun mit VDD verbunden ist oder nicht. Auf Seite 10
>> sieht es so aus, aber auf Seite 8 heißt es
>> "VDD should always be higher than VCAP to avoid current injection
>> between power
>> domains.".
>>
>> Der Zusammenhang zwischen VDD, VBat, VREF+, und VCAP ist mir nicht klar.
>
> Vcap ist der Ausgang des internen Spannungsreglers für den CPU-Kern. Da
> gehören 4u7 nach GND dran (bzw. 2x 2u2 wenn es ein Package mit 2
> VCap-Pins ist). Nicht mit VDD verbinden (es sei denn man deaktiviert
> den internen Regler, ergibt hier keinen Sinn).

Danke, sehr hilfreich!

> VDD ist die Haupt-Versorgung und Versorgung für die ganzen I/O-Pins. An
> jeden Pin gehören 100nF nach GND, und noch einmal 4u7 nach GND in der
> Nähe des Chips.

check :) !

> VREF+ ist die Referenzspannung für den A/D-Konverter (und kann mit VDDA
> verbunden werden, falls das als Referenzspannung gut genug ist).

Ich habe gar kein VDDA, es ist intern mit VREF+ verbunden.

> VDDA ist die Versorgung für den A/D-Wandler und sonstigen Analogkram.
> 1uF und 100nF nach GND. Am besten über eine kleine Drossel 100uH oder so
> mit VDD verbinden (oder direkt, wenn etwas Rauschen auf dem A/D nicht
> stört)

Die beiden Kondensatoren hängen an VREF+/VDDA. Ich nutze momentan keinen 
A/D-Wandler, deshalb habe ich die Drossel weggelassen.

> VBat versorgt das batteriegepufferte RAM und die Echtzeituhr. Mit 100 nF
> nach GND abblocken und entweder die Pufferbatterie anschließen, oder,
> falls  Batteriepufferung nicht benötigt wird, mit VDD verbinden.

check :) !

Vielen Dank, sehr hilfreiche Antwort.

von Peter D. (peda)


Lesenswert?

Ich würde noch nen Quarz vorsehen.

von Rafael B. (rafael_b)


Lesenswert?

Ich brauche momentan keine Taktraten über 84MHz, und habe auch Sorgen, 
ob mein 2-Layer board die hohen Frequenzen stört. Sind ab 120MHz noch 
0805 und 0603 Kondensatoren üblich?

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.