Forum: Mikrocontroller und Digitale Elektronik Schaltplan Review STM32


von Walt N. (belayason)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
nachdem ich nun mein Programm auf dem NUCLEO-F411RE + Peripherie zum 
laufen gebracht und einen Schaltplan erstellt habe, hätte ich vor dem 
Layouten noch ein paar allgemeine Fragen.

SWD Schnittstelle
Anfangs habe ich mein Programm per DFU auf den Chip geflasht. Da ich 
gerne eine Schnittstelle hätte mit der ich mein Programm debuggen kann 
habe ich nun eine SWD Pinheader eingebaut. Wird diese mit einem 
ST-Link/V2 programmierer so funktionieren ( siehe Anhang )?

Oszillator
Für DFU musste ich zusätzlich einen 8 MHz quarz auf mein NUCLEO Board 
löten, nur so wurde es von Windows erkannt. Bin ich richtig mit der 
Annahme das ich diesen mit einer SWD Schnittstelle aus meinem Schaltplan 
wieder entfernen kann ( bereits entfernt )? Außerdem habe ich die PLL 
clock benutzt um ein 40 kHz Signal über einen Timer Callback zu 
erzeugen. Ist der 32kHz Oszillator der auch auf dem NUCLEO Board verbaut 
ist, bei einer PLL clock (die intern erzeugt wird?) von nöten?

Bauteile & Plazierung
Sind die Pull up/down Widerstände richtig gewählt? Bei den Tastern 
TY_Boot & TY_RESET habe ich auch noch Widerstände in Reihe dazu 
geschaltet. Diese Taster lösen einen BOOT/Reset bei einem anderen Gerät 
aus, sind die Werte in Ordnung? Oszillator sowie Kondensatoren sollte 
ich so nah wie möglich an ihre entsprechenden Pins plazieren, aber das 
wird sich beim Layouten zeigen.

Allgemein stellt sich mir die Frage ob der Schaltplan so funktioniert 
oder ob ich irgendetwas vergessen habe.

Würde mich über Anregungen, Verbesserungen und ein bisschen hate freuen!

Gruß

von HildeK (Gast)


Lesenswert?

In deinem Schaltplan kann man kaum die Zahlen und Buchstaben erkennen.
Zudem: einiges hätte man schön logisch anordnen können, zwecks besserem 
Verstehen.

Was ich trotzdem in Frage stellen kann: was sollen 47k in Reihe zu den 
Tastern? Wer zieht den Pin im Ruhezustand auf HIGH?
An NRST mit parallelem C wäre evtl. ein kleiner Reihenwiderstand zum 
Taster angebracht - so 50Ω oder 100Ω.

von Walt N. (belayason)


Lesenswert?

HildeK schrieb:
> Wer zieht den Pin im Ruhezustand auf HIGH?

Der Ausgang von meinem µC. Habe dem Datenblatt entnommen das die 
Pull-Down Widerstände so dimensioniert werden sollen

von HildeK (Gast)


Lesenswert?

Walt N. schrieb:
> HildeK schrieb:
>> Wer zieht den Pin im Ruhezustand auf HIGH?
>
> Der Ausgang von meinem µC. Habe dem Datenblatt entnommen das die
> Pull-Down Widerstände so dimensioniert werden sollen

Ok. Unklar war, dass der µC hier einen Ausgang hat. Pullup oder Pulldown 
hat man üblicherweise an Eingängen. Oder an OD-Ausgängen.
Aber:
Wenn der Ausgang vom µC auf HIGH gezogen wird, dann bewirkt der Taster 
nichts, er schaltet nur 47k Last dazu - ohne irgendwelche Änderung am 
Pegel.
Wenn der Ausgang über einen internen PU nach HIGH gezogen wird, dann 
sind 47k viel zu viel, denn der interne PU ist wahrscheinlich sogar 
niedriger als 47k. Du bekommst dann kein LOW sondern irgendwas mit etwa 
oder mehr als der halben Versorgungsspannung.
Es könnte auch sein, dass du mit dem Ausgang HIGH und LOW schalten 
willst und ggf. bei HIGH auch manuell mit dem Taster das xx_Reset- oder 
xx-Bootsignal auf LOW bringen willst. Dann aber musst du den 47k in 
Reihe zum Ausgang legen. Aber auch in dem Fall wäre der mir zu 
hochohmig. 4k7 oder 10k sind besser passend, wobei ich die Specs von den 
STM32-Ausgängen nicht kenne und auch von dem angeschlossenen Eingang 
abhängt.

von Kevin M. (arduinolover)


Lesenswert?

Walt N. schrieb:
> SWD Schnittstelle

Du wirst der SWD Schnittstelle noch den NRST mitgeben wollen.

Walt N. schrieb:
> Oszillator
Wenn du den DFU nicht mehr nutzen möchtest brauchst du im Prinzip keine 
HSE mehr. Der DFU benötigt diese Zwingend, hier ist anzumerken, dass in 
den Datenblättern meistens die Rede davon ist das die HSE bis 24MHz 
gehen kann in der Praxis sind aber mehr als 10MHz nicht wirklich drin. 
Der Bootloader misst die HSE Frequenz mit dem internen RC Oszillator als 
Referenz und der ist für höhere Taktraten zu ungenau. Generell ist eine 
externe HSE immer besser, wenn man genaue Timings braucht, das kommt auf 
die verwendete Peripherie und Anwendung an. Ich persönlich bevorzuge 
allerdings Oszillatoren statt Quarze.

Walt N. schrieb:
> Ist der 32kHz Oszillator der auch auf dem NUCLEO Board verbaut
> ist, bei einer PLL clock (die intern erzeugt wird?) von nöten?

Nein der ist rein für die RTC. Timer können von HSE,HSI oder PLL 
(genauer der SYSCLK) versorgt werden. Die PLL wird ebenfalls entweder 
aus HSI oder HSE gespeist.

ST empfiehlt bei den meisten Prozessorfamilien zusätzlich zu den 100nF 
an jedem VDDx noch EINEN 4.7µF Bulk Kondensator.

von Walt N. (belayason)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Es könnte auch sein, dass du mit dem Ausgang HIGH und LOW schalten
> willst und ggf. bei HIGH auch manuell mit dem Taster das xx_Reset- oder
> xx-Bootsignal auf LOW bringen willst. Dann aber musst du den 47k in
> Reihe zum Ausgang legen.

Stimmt, macht nicht sehr viel Sinn was ich da gemacht habe. So sollte es 
doch besser aussehen.

von HildeK (Gast)


Lesenswert?

Walt N. schrieb:
> So sollte es doch besser aussehen.
Ja, das passt.

von Walt N. (belayason)


Lesenswert?

Ist bei STM32 schon ein Bootloader vorprogrammiert? Also funktioniert 
das so wenn ich die Platine mir bestücken lasse, direkt per SWD zu 
flashen?

von Cyblord -. (cyblord)


Lesenswert?

Walt N. schrieb:
> Ist bei STM32 schon ein Bootloader vorprogrammiert?

Ja aber das hat mit SWD nichts zu tun. Es gibt einen ROM UART 
Bootloader.

> Also funktioniert
> das so wenn ich die Platine mir bestücken lasse, direkt per SWD zu
> flashen?

Ja natürlich.

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.