Forum: Mikrocontroller und Digitale Elektronik Ein paar Fragen zum STM32F103xC


von Thomas B. (escamoteur)


Lesenswert?

Hi,

nachdem ich jetzt sehr am STM32F103xC interessiert bin, würde ich gerne 
wissen, ob die Olimex USB-JTAG Adapter auch für diesen geeignet sind.

Außerdem gibt es den STM32F103xC ja mit unterschiedlich vielen Pins. 
Leider kann man aus den Bildern im Datenblatt nicht so einfach ersehen 
in wie weit sich dadurch die Funktionalität ändert.

Unterscheiden sich die verschiedenen Versionen nur in der Anzahl von 
GPIOs oder fehlen bei den Typen mit weniger Pins auch andere Interfaces?

Danke & Gruß
Tom

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Siehe im Datenblatt:

2.1 Device overview (Seite 11)

Gruß
Lasse

von Thomas B. (escamoteur)


Lesenswert?

Hi Lasse,

habs in der Zwischenzeit auch gefunden. Wenn ich die Tabelle richtig 
verstehe, dann hat der 100Pin chip alle Interfaces.

Wie sieht es mit dem JTAG-Adapter aus?

Gruß
Tom

von (prx) A. K. (prx)


Lesenswert?

Thomas Burkhart schrieb:

> nachdem ich jetzt sehr am STM32F103xC interessiert bin, würde ich gerne
> wissen, ob die Olimex USB-JTAG Adapter auch für diesen geeignet sind.

Ja.

> Unterscheiden sich die verschiedenen Versionen nur in der Anzahl von
> GPIOs oder fehlen bei den Typen mit weniger Pins auch andere Interfaces?

Beim externen Speicherinterface fehlen bei kleinen Gehäusen teilweise 
etliche Adressen. Beim ADC gibt dort weniger Kanäle und keine separate 
Referenzspannung.

von Thomas B. (escamoteur)


Lesenswert?

Aber alle UARTs, SPI, I2C SDIO sind auch bei der 100Pin Variante dran 
oder?
Gruß
Tom

von Plan (Gast)


Lesenswert?

Schaue mal ins Datenblatt RM0008
Unter Punkt 7.3.3 sind die Remap-Konfigurationen, in dem Beispiel für 
CAN-Bus

Hier steht in der Fußnote dass es Einschränkungen gibt bei Gehäusen mit 
weniger als 100 Pins.
Am Besten das ganze Kapitel 7.3.x mal lesen.

von Thomas B. (escamoteur)


Lesenswert?

Du meinst sicher 8.3 oder? Hab ich grad mal überflogen.

Was mich an dem Datenblatt ehrlich gesagt etwas nervt, dass es nicht 
speziell auf den STM32F103 zugeschnitten ist, d.h. Du weißt nie genau ob 
die gerade besprochene Funktionaliität enthalten ist.

Auch hab ich bisher keine Ausführliche Beschreibung der Pin-Belegung 
gefunden, das im Datenblatt ist ja doch etwas mager.

Die AVR-Datenblätter sind da ehrlich gesagt schöner und vor allem auch 
mit kurzen Code-Beispielen.

Habe allerdings schon ne Menge netter Funktionen gefunden, die ich ganz 
gut brauchen kann z.B. Watchdog an den ADCs für den Touchscreen. Sehr 
hübsch.

Wenn ich das richtig sehe verwendet man aber wohl eh meistens die 
Firmware-LIB statt selbst auf die Register zuzugreifen oder?

Gruß
Tom

von (prx) A. K. (prx)


Lesenswert?

Thomas Burkhart schrieb:

> Was mich an dem Datenblatt ehrlich gesagt etwas nervt, dass es nicht
> speziell auf den STM32F103 zugeschnitten ist, d.h. Du weißt nie genau ob
> die gerade besprochene Funktionaliität enthalten ist.

Das steht in jedem Kapitel ganz am Anfang drin. Unter Begriffen wie 
"Midrange" verschlüsselt.

> Auch hab ich bisher keine Ausführliche Beschreibung der Pin-Belegung
> gefunden, das im Datenblatt ist ja doch etwas mager.

Da steht alles drin.

> Die AVR-Datenblätter sind da ehrlich gesagt schöner und vor allem auch
> mit kurzen Code-Beispielen.

Yep, nur würde die gleiche Ausführlichkeit bei einem STM32F107 um die 
3000 Seiten Doku bedeuten.

> Wenn ich das richtig sehe verwendet man aber wohl eh meistens die
> Firmware-LIB statt selbst auf die Register zuzugreifen oder?

Was "man" macht weiss ich nicht. Ich selbst gehe auf die Register.

von Thomas B. (escamoteur)


Lesenswert?

A. K. schrieb:
> Thomas Burkhart schrieb:
>
>> Was mich an dem Datenblatt ehrlich gesagt etwas nervt, dass es nicht
>> speziell auf den STM32F103 zugeschnitten ist, d.h. Du weißt nie genau ob
>> die gerade besprochene Funktionaliität enthalten ist.
>
> Das steht in jedem Kapitel ganz am Anfang drin.

Wenn Du das hier meinst z.B. beim ADC

Analog-to-digital converter (ADC)
Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 16 and 32 
Kbytes.
Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 64 and 
128 Kbytes.
High-density devices are STM32F101xx and STM32F103xx microcontrollers 
where the
Flash memory density ranges between 256 and 512 Kbytes.
Connectivity line devices are STM32F105xx and STM32F107xx 
microcontrollers.
This Section applies to the whole STM32F10xxx family, unless otherwise 
specified.

Da weiß ich immer noch nicht wie viele ADCs ich denn nun habe und welche 
Pins wozu gehören. Bei der PinOut-beschreibung werde ich zumindest bei 
den ADC-Pins überhaupt nicht schlau.


Und ich will immer noch wissen ob ich die Olimex-JTAGS für die STM32 
nehmen kann.

Gruß
Tom

von (prx) A. K. (prx)


Lesenswert?

Thomas Burkhart schrieb:

> Und ich will immer noch wissen ob ich die Olimex-JTAGS für die STM32
> nehmen kann.

Beitrag "Re: Ein paar Fragen zum STM32F103xC"

von (prx) A. K. (prx)


Lesenswert?

Thomas Burkhart schrieb:

> Da weiß ich immer noch nicht wie viele ADCs ich denn nun habe und welche
> Pins wozu gehören.

Das steht in der Übersichtstabelle über Gehäuse <=> Funktionen.

von Heiko (Gast)


Lesenswert?

Such nicht im "Reference Manual", sondern direkt im "Datasheet" - da 
steht das alles drin.

Zum Beispiel hier: 
http://www.st.com/stonline/products/literature/ds/15058.pdf auf der 
Seite 22.

MfG, Heiko

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Vielleicht hilft das hier: Ein Pinout-Vergleich der 48/64/100-Pin 
Versionen.

von Thomas B. (escamoteur)


Lesenswert?

Danke, der PinOut-Vergleich ist schon mal sehr hilfreich.

Bei der Beschreibung im Datenblatt werde ich z.B. aus der Bezeichnung 
der ADC-Ports überhaupt nicht schlau. Folgende sind da angegeben:

F3 - - - - 18 PF6 I/O PF6   ADC3_IN4/FSMC_NIORD
F2 - - - - 19 PF7 I/O PF7   ADC3_IN5/FSMC_NREG
G3 - - - - 20 PF8 I/O PF8   ADC3_IN6/FSMC_NIOWR
G2 - - - - 21 PF9 I/O PF9   ADC3_IN7/FSMC_CD
G1 - - - - 22 PF10 I/O PF10 ADC3_IN8/FSMC_INTR

H1 F1 E8 8 15 26 PC0 I/O PC0  ADC123_IN10
H2 F2 F8 9 16 27 PC1 I/O PC1  ADC123_IN11
H3 E2 D6 10 17 28 PC2 I/O PC2 ADC123_IN12
H4 F3 - 11 18 29 PC3 I/O PC3  ADC123_IN13

J2 G2 F6 14 23 34 PA0-WKUP I/O PA0 ADC123_IN0
K2 H2 E6 15 24 35 PA1 I/O      PA1 ADC123_IN1/
L2 J2 H8 16 25 36 PA2 I/O      PA2 ADC123_IN2/
M2 K2 G7 17 26 37 PA3 I/O      PA3 ADC123_IN3/

J3 G3 H7 20 29 40 PA4 I/O PA4 ADC12_IN4
K3 H3 E5 21 30 41 PA5 I/O PA5 ADC12_IN5
L3 J3 G5 22 31 42 PA6 I/O PA6 ADC12_IN6
M3 K3 G4 23 32 43 PA7 I/O PA7 ADC12_IN7

Wenn ich das Manual richtig verstanden hat hat ein ADC 16 Kanäle. Aber 
was ist das hier? gibt es drei ADC (ADC3, ADC123 und ADC12) ? Die haben 
aber weniger Kanäle.

Bin verwirrt.

gruß
Tom
J4 G4 H6 24 33 44 PC4 I/O PC4 ADC12_IN14
K4 H4 H5 25 34 45 PC5 I/O PC5 ADC12_IN15
L4 J4 H4 26 35 46 PB0 I/O PB0 ADC12_IN8
M4 K4 F4 27 36 47 PB1 I/O PB1 ADC12_IN9

von (prx) A. K. (prx)


Lesenswert?

Nicht jeder Eingang lässt sich mit jedem ADC verwenden, ADC12_8 ist 
Eingang 8 für ADC 1 und ADC 2.

PS zur Tabelle: Sie bezieht sich auf die 103x8/103xB Typen.

von Thomas B. (escamoteur)


Lesenswert?

A. K. schrieb:
> Nicht jeder Eingang lässt sich mit jedem ADC verwenden, ADC12_8 ist
> Eingang 8 für ADC 1 und ADC 2.

Ah, Danke! Jetzt macht das ganze für mich Sinn.

Gruß
Tom

von Plan (Gast)


Lesenswert?

Die wichtige Seite zum Chip STM32F103RC

http://www.st.com/mcu/devicedocs-STM32F103RC-110.html

Unter "Datasheet" gibt es das Dokument "STM32F103xC/D/E"
Der Innhalt: Pinbelegung, Pheriperie der C, D und E Serie.

Unter "Reference Manual" gibt es das Dokument "RM0008"
Der Innhalt: Details zu allen Registern usw. zu ALLEN Prozessoren, da 
die jeweils eingebaute Pheriperie bei allen gelich ist, sovern sie 
vorhanden ist (siehe voriges Dokument).

Mit diesen beiden Dokumenten ist die gesammte Funktion beschrieben.

Ich persönlich verwende die FW-Lib 2.0.3, zu finden unter "Firmware"
"STM32F10x_FW_Archive"

Die aktuellste Lib ist die "STM32F10x_StdPeriph_Lib" Version 3.2.0

Jeweils bei den FW-Libs sind unmengen an Demo-Programme dabei.
Bei der Verwendung der Firmware-Lib braucht man sich fast nicht mehr 
selbst mit den Bits einzelner Pheriperiemodule zu beschäftigen.

Ich hoffe dass es etwas Licht in das Dokumentenwirrwar gebracht hat, das 
sind genau die zwei Dokus für deine Anwendung.

von Thomas B. (escamoteur)


Lesenswert?

Dank Dir, die beiden Dokumente hatte ich nach einigem suchen dann auch 
gefunden.

Aber es bleibt festzuhalten, dass die ST-Seite nicht gerade die 
übersichtlichste ist.

Und ich hatte eben noch nirgends gefunden nach welchen Konventionen die 
Pins benannt sind.

Danke & gruß
Tom

von Plan (Gast)


Lesenswert?

Auf dem ersten Dokument sind ab Seite 30 (3. Table 5) die Pin 
Definitionen übersichtlich drauf.
- Welche Pin-Nummer
- Bei welcher Gehäuse-Variante
- Pin Name
- Default-Funktion nach Reset
- Alternative Funktionen / Remap

Die ganzen Kurzbezeichnungen sieht man unter 2.3.x im "Overview"

Die PDFs haben eine gute Lesezeichen-Baumstruktur, damit kann man sehr 
schnell navigieren. Wenn man sich ein paar Stunden mit denen auseinander 
setzt, dann hat man deren Struktur verstanden und findet in der Zukunft 
sehr schnell die gewünschten Infos.

Im RM0008 sind ebenfalls alle Pheripherie Module mit dem Kurzzeichen, 
z.B. "SPI" übersichtlich in der Baumansicht zu finden.

Man braucht natürlich nicht das gesammte Dokument komplett lesen, es 
quer zu lesen um mal zu erfahren was es für Pheriperie eingebunden hat 
und was man damit so alles machen kann sollte natürlich jeder.

Ich hab auch nicht alles gelesen, z.B. die Tabelle unter RM0008 / 2.3.1 
hat mich noch nie interessiert, denn die Definitionen kommen fix und 
fertig mit der FW-Lib mit.

Auch als "alten Hasen" wurde sogar vor weinigen Tagen von dem SDIO Teil 
überrascht, dass man an die CPU ganz einfach eine MMC Card anschließen 
könnte. :)

Bei jedem Hersteller gibt es nun mal eine andere Philosophe der 
Dokumentation. Ganz übel ist es bei den PICs wo zum Teil man in AppNotes 
irgend etwas findet was überhaupt nicht zum Prozessor passt.

Ich finde die zwei Dokumente übersichtlich und logisch aufgebaut. Man 
muss sich leider immer einem Hersteller anpassen, egal welchem.
Es gibt von ST noch ein drittes Dokument, dort sind alle Funktionen der 
FW-Lib beschrieben. Das hilft leider nur bedingt und Code-Beispiele 
wären sinvoll aber nicht vorhanden. Dafür gibt es eine Umfangreiche 
Demo/Quellcode der FW-Lib.

Ach ja, noch ein viertes Dokument, das Errata nicht vergessen und beim 
HW-Design hier schon Beachtung schenken. (Aber das weis ja jeder)

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.