Forum: Mikrocontroller und Digitale Elektronik Erste Schaltung mit dem STM32F103 ARM


von Thomas B. (escamoteur)


Angehängte Dateien:

Lesenswert?

Hi,

ich hab jetzt meine erste Testschaltung für den STm32F103 fertig. 
Angeschlossen sind ein LCD-Display, Touch und SD-Karte.


Hier die Datenblätter zu den Bauteilen:

STM32F103xE
http://www.st.com/mcu/download2.php?file=14611.pdf&info=STM32F103RC%20Datasheet%20STM32F103xC-D-E&url=http://www.st.com/stonline/products/literature/ds/14611.pdf

USB ESD protection
http://www.st.com/stonline/products/literature/ds/11265.pdf

Display/Touch
http://www.lcd-module.de/deu/pdf/grafik/dogxl160-7.pdf

LED-Treiber
http://www.onsemi.com/pub_link/Collateral/CAT4238-D.PDF

Passt das so?

Lieben Gruß & danke
Tom

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

- IC3 ist nicht richtig angeschlossen. Ich kenne den zwar nicht, aber 
der braucht sicher GND.
- Wo kann man die Versorgungsspannung anschließen?
- Mindestens eine LED sollte drauf sein, so für z.B. Blink-LED Test.
- RxD/TxD sollte nach aussen geführt werden, damit könnte man einen 
TTL/V24 Wandler anschließen und seriell infos auf dem Hyperterminal 
beobachten. (Debug-Ausgabe)
- Die C's 10uF durch X7R (0805) Kondensatoren SMD ersetzen, auch die 
etwas reduzieren, denn sonst passen die nicht auf die Platine (oder es 
passen keine anderen Leitungen daran vorbei)
- Es gibt sicher Kalibierdaten für den Touchscreen. Daher wäre es nicht 
schlecht die dauerhaft gespeichert zu haben. Dafür kann man entweder das 
Flash verwenden, das ja bei jedem Debug-Download gelöscht wird oder man 
macht ein externen IIC EEPROM ran.
- Pull-Up bei RST?
- OSC-IN hängt in der Luft. / R15 ist falsch >> Quarz
- Die Schaltung T1/T2 ist schrott. Einfach R11 auf einen Port-Pin des 
Prozessors legen.
- Spannungsregler von +5V (USB VIn) auf 3,3V Fehlt.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

- Mein Debug-Stecker hat nur 10 Pins und ich habe einen Adaptergemacht.
  > Vorteil:
  > - Weniger Platzbedarf auf der Platine
  > - Hat auch einen Debug-UART-Anschluss.
  > (- Wenn man den richtigen UART verwenden könnte auch der interne STM
       Bootloader funktionieren, habe ich aber nie genutzt)
- Mein EA-DOG (2*16 Zeichen) schließe ich mit 2 Versorgungsspannungen
  an. Damit muss ich nicht extra den Strom über Spannungsregler auf 3,3V
  verbraten, um ihn dann wieder im LCD zu erhöhen.
- Die Bezeichnung Vcc im Plan ist verwirrend, besser die Spannung so
  benennen wie sie ist (z.B. 3,3V)

von Jörn K. (joern)


Lesenswert?

Ergänzend zu den Kommentaren von Markus:

- Boot1 Pin ist nicht angeschlossen.
- Prüfen, ob PE5 5Volt tolerant ist (wahrscheinlich ja, weil kein ADC 
drauf hängt)
- Serienwiderstände für die USB Leitungen
- Die C Armada an Versorgungspins des STM32s ist überzogen. Lt. 
Datenblatt ist nur an einem VCC GND Paar ein 4u7 || 100nF gefordert und 
bei der Versorgung für den Analogteil. An den anderen reichen 100nF.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>- Serienwiderstände für die USB Leitungen
braucht es nicht, der USB tut auch ohne die R's.

von (prx) A. K. (prx)


Lesenswert?

Jörn Kaipf schrieb:

> - Boot1 Pin ist nicht angeschlossen.

Nur relevant wenn BOOT0=1.

von Thomas B. (escamoteur)


Lesenswert?

Hallo,

danke erst mal für die Kommentare.

Der fehlende Quarz ist ist mir auch gerade unter der Dusche eingefallen.

Wir fahren gleich über die Feiertage weg, ich schau mir eure Anregungen 
dann gleich nächste Woche an.
Danke & Gruß
Tom

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Schadet nicht BOOT[1:0] über jumper selektierbar machen, speziel weil 
"meine erste Testschaltung".

Markus Müller schrieb:
> - Mein Debug-Stecker hat nur 10 Pins und ich habe einen Adaptergemacht.
>   > Vorteil:
>   > - Weniger Platzbedarf auf der Platine
>   > - Hat auch einen Debug-UART-Anschluss.
>   > (- Wenn man den richtigen UART verwenden könnte auch der interne STM
>        Bootloader funktionieren, habe ich aber nie genutzt)


mag sein, würde ich aber nicht machen. Morgen vergisst man und klemmt 
ein jtag stecker und schon brennt was durch. Mit einem spezielen stecker 
allerdings kein problem, cih würde meiden aber etwas wo man aus versehen 
einen "standard was auch immer" reinstecken kann -> vor allem weil 
"meine erste Testschaltung".

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Der 20-Polige JTAG-Stecker passt leider nicht in meine 10-Polige Wanne, 
daher gibt es so einfach keinen Kurzen.

Wenn man hingegen bei dem 20-Poligen keine echte Wanne nimmt sondern nur 
Stifte und dann den Stecker falsch rein tut, dann kanns rauchen! weil 
Pin 1 / 20    +3V3 / GND dummerweise gegenüber liegen.
Das passiert bei meinem Stecker nicht.
Und bei meinem Stecker kann man auch mit einem 4-Poligen Quadrat-Stecker 
an den UART.

von Thomas R. (tinman) Benutzerseite


Angehängte Dateien:

Lesenswert?

vllt bin ich nur übervorsichtig. Anbei 2 unterschiedliche 10-pin ARM 
JTAG adapter pinouts - ulink2 oder h-jtag usb arm 10 pin und openjtag 
arm 10 pin.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Auf der linken Schaltung fehlt TRST, dafür ist der RTCK drauf, den es 
nicht braucht.

Auf der rechten Schaltung kann man zwischen 1 und 10 einen Kurzen 
erzeugen, falls man den Stecker falsch rum rein steckt.

Ich finde mein Stecker ist perfeckt angeordnet:
1. Über 4-Poligen Würfel kann der UART benutzt werden (Pin 7/8/9/10)
2. Es kann ein Jumper gesteckt werden für eine Option (Pin 7/8) ohne 
dass es sich mit dem RS232 Chip beißt
3. Über einen 5-Poligen einreihigen Stecker kann SWD (SingleWireDebug) 
verwendet werden (Pin 1/3/5/7/9)
4. den ganzen Stecker braucht es nur, wenn man den herkömlichen JTAG 
nutzen möchte.
5. kleinerer Stecker (als 20-Polig) benötigt weniger Platz bei der CPU, 
denn da hat man ohnehin wenig Platz wegen der vielen Leitungen.

Warum die anderen "Standards" nicht so elegant aufgebaut sind weiß ich 
nicht. Offensichtlich wurde da nicht genügeng nachgedacht. Ich 
jedenfalls habe in allen Schaltungen von mir immer diese gleiche 
Anordnung, daher gibt es auch keine Verwechslung.
Wenn man jetzt neu mit dem STM32 beginnt und dies gleich so macht, dann 
gibt es auch nie eine Verwechslung.
Anbei ein Bild meines Adapters 20-Polig / 10 Polig und Anschluss für 
TTL-UART.

Jeder kann selbst entscheiden was er einsetzt, ist nur ein gutgemeinter 
Ratschlag. Ich publiziere das hier gerne, vieleicht liest ja jemand von 
den JTAG-Bauern mit und übernimmt diese Idee, wäre nicht schlecht. Denn 
ein FTDI Basierter JTAG bietet auch gleich einen freien UART...

Vielleicht sollte ich einen eigenen Thread dafür auf machen. Aber erst 
wenn tatsächlich interesse dafür besteht.

von Thomas B. (escamoteur)


Lesenswert?

Jörn Kaipf schrieb:
> Die C Armada an Versorgungspins des STM32s ist überzogen. Lt.
> Datenblatt ist nur an einem VCC GND Paar ein 4u7 || 100nF gefordert und
> bei der Versorgung für den Analogteil. An den anderen reichen 100nF.

Hier mal ein Auszug aus der Appnote Getting Startet von ST

The VDD pins must be connected to VDD with external decoupling 
capacitors (one
100 nF Ceramic capacitor for each VDD pin + one Tantalum or Ceramic 
capacitor (min.
4.7 μF typ.10 μF).


- Wo kann man die Versorgungsspannung anschließen?
Was meinst Du damit?

- Mindestens eine LED sollte drauf sein, so für z.B. Blink-LED Test.
Schon klar, wird eh erst auf Lochrater mit Adapterplantine aufgebaut

- RxD/TxD sollte nach aussen geführt werden, damit könnte man einen
TTL/V24 Wandler anschließen und seriell infos auf dem Hyperterminal
beobachten. (Debug-Ausgabe)

Wie gesagt Lochraster

- Die C's 10uF durch X7R (0805) Kondensatoren SMD ersetzen, auch die
etwas reduzieren, denn sonst passen die nicht auf die Platine (oder es
passen keine anderen Leitungen daran vorbei)

Gute Idee


- Es gibt sicher Kalibierdaten für den Touchscreen. Daher wäre es nicht
schlecht die dauerhaft gespeichert zu haben. Dafür kann man entweder das
Flash verwenden, das ja bei jedem Debug-Download gelöscht wird oder man
macht ein externen IIC EEPROM ran.

Ich denke Flash ist ok, startet danach halt mit dem 
Kalibrierungsbildschirm. Oder ich pack doch noch ein EEPROM dran. Danke 
für den Hinweis.

- Die Schaltung T1/T2 ist schrott. Einfach R11 auf einen Port-Pin des
Prozessors legen.

Ich hab die Schaltung von einem Evalboard von ST übernommen. Reicht das 
wirklich aus?

- Spannungsregler von +5V (USB VIn) auf 3,3V Fehlt.
Wozu? Ich versorge das Board extern mit 3,3V

von Jörn (Gast)


Lesenswert?

Thomas Burkhart schrieb:
> The VDD pins must be connected to VDD with external decoupling
> capacitors (one
> 100 nF Ceramic capacitor for each VDD pin + one Tantalum or Ceramic
> capacitor (min.
> 4.7 μF typ.10 μF).

Das war die Intension meiner Aussage, wobei ich mich gerade frage, was 
ich intus hatte, als ich das geschrieben habe.

In folgendem Dokument

http://www.st.com/stonline/products/literature/ds/14611.pdf

auf Seite 40 (Figure 12) ist die empfohlene Beschaltung der VDD Pins 
nochmal abgebildet. Hinweis unter der Zeichung beachten.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>- Die Schaltung T1/T2 ist schrott. Einfach R11 auf einen Port-Pin des
>Prozessors legen.
>Ich hab die Schaltung von einem Evalboard von ST übernommen. Reicht das
>wirklich aus?

Ja, garantiert. Ich habe schon viele Schaltungen so aufgebaut mit 3,3V 
CPU's.

Was halten Sie von meiner JTAG Steckerbelegung?
Hier >> Beitrag "Re: Erste Schaltung mit dem STM32F103 ARM"
und hier noch beschrieben >> 
Beitrag "Re: Erste Schaltung mit dem STM32F103 ARM"

von Thomas B. (escamoteur)


Lesenswert?

Hmm, da fraggt man sich echt, was ST sich dabei wohl gedacht hat :-(

Gruß
Tom

von Jörn (Gast)


Lesenswert?

Thomas Burkhart schrieb:
> Hmm, da fraggt man sich echt, was ST sich dabei wohl gedacht hat :-(

Warum? Die Aussagen zwischen dem Zitat und der Zeichnung sind 
deckungsgleich. An jedem VDD Pin ein 100nF C + noch ein einzelner 4u7 
bzw. 10u dazu. Die Zeichnung gibt dann noch Aufschluß an welchem VDD GND 
Paar der 'große' Kondensator plaziert werden und gibt noch Rat zu der 
Versorgung des analogen Teils des STM32.

von Thomas B. (escamoteur)


Lesenswert?

Nee, ich meinte die Transistorschaltung am USB-Port

von Jörn (Gast)


Lesenswert?

okay, hab nichts gesagt ;)

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.