Forum: Mikrocontroller und Digitale Elektronik Brauchen die STM32 eigentlich zwingend einen externen Quarz?


von Thomas B. (escamoteur)


Lesenswert?

Hi,

ich hab ja inzwischen gelernt, dass die STM32 grundsätzlich mit dem 
internen Clock generator starte und man sie danach auf externen Quarz 
umstellen kann.

In wie weit braucht man denn einen externen Quarz? Ist der interne Takt 
genauso ungenau wie beim AVR? Geht mit dem Internen kein USB?

Gruß
Tom

von Helmut L. (helmi1)


Lesenswert?

Thomas Burkhart schrieb:
> In wie weit braucht man denn einen externen Quarz? Ist der interne Takt
> genauso ungenau wie beim AVR?

Der Oszillator ist genauso ein RC-Oszillator wie im AVR mit all seinen 
Problemen (Temperatur , Spannung , Bauteilstreuung)

von (prx) A. K. (prx)


Lesenswert?

Thomas Burkhart schrieb:

> In wie weit braucht man denn einen externen Quarz?

Präzision.

> Ist der interne Takt
> genauso ungenau wie beim AVR? Geht mit dem Internen kein USB?

=> Handbuch. Für einfache Labortests mit RS232 ist er genau genug, für 
USB nicht.

von Thomas B. (escamoteur)


Lesenswert?

Dank euch, dann hat sich mein Verdacht bestätigt.
Tom

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


Lesenswert?

Mit dem internen RC geht USB. Meine Schaltungen haben alle keinen 
externen Quarz (ausser für RTC den 32,768 KHz Quarz mit Goldcap...)

Der RC des STM ist kalibiert auf 2% Genauigkeit. Bei "Raumtemperatur" 
ist der sicher genauer. Aber bei extemen Temperaturen wie z.B. -40°C 
oder +85°C ändert sich garantiert das R / C vom RC Glied und wird dann 
an der Genze der 2% Genauigkeit sein. In diesem Fall kann es sein dass 
der USB nicht mehr tut. (Siehe Spezifikation von USB)

Ich hatte auch schon eine Platine mit 50°C betrieben und USB hat 
funktioniert.

Es kommt auf die Umgebungsbedingungen an. Wenn zu 100% USB gehen muss 
und man eine ganze Fertigung machen möchte, dann würde ich zumindest im 
Layout einen Quarz vorsehen, so dass der bei Problemen bestückt werden 
kann.
Das wird man sicher nach der 0-Serie Feststellen, wenn man einige STM32 
verbaut hat.

von (prx) A. K. (prx)


Lesenswert?

Markus Müller schrieb:

> Der RC des STM ist kalibiert auf 2% Genauigkeit.

USB 1.1 spezifiziert 0,25% bei full speed USB (12MHz).

Low speed USB (1,5MHz) ist mit 1,5% wesentlich toleranter. Für's Labor 
möglicherweise vertretbar, für Produktionseinsatz nicht.

von Robert T. (robertteufel)


Lesenswert?

Helmut Lenzen schrieb:
> Thomas Burkhart schrieb:
>> Ist der interne Takt genauso ungenau wie beim AVR?
>
> Der Oszillator ist genauso ein RC-Oszillator wie im AVR mit all seinen
> Problemen (Temperatur , Spannung , Bauteilstreuung)

Na so wuerde ich das aber nicht stehen lassen. Es gibt SEHR 
unterschiedliche RC Oszillatoren, auch wenn sie auf demselben Prinzip 
beruhen. Viele Moeglichkeiten den Oszillator genauer zu machen oder fuer 
Temperaturkompensation existieren, doch wie immer brauchen die 
Chipflaeche -> Kosten. Einfach mal die Datenblaetter zum Kapitel 
Oscillator durchschauen, temp drift und voltage drift sind zu beachten.

Wie A.K. gesagt hat fuer den UART ist er genau genug und das ist ein 
grosser Unterschied. Alle sync. Schnittstellen koennen grundsaetzlich 
auch betrieben werden. Eine Uhr, war wohl nix, USB siehe andere 
Postings, CAN kannsch vergessen, absolute Zeiterfassungen auch 
vergessen, relative Zeiten sind eben 0-2% ungenau, spielt oft aber eine 
untergeordnete Rolle.

Persoenlich bin ich ein grosser Fan von internen Oszillatoren. Die sind 
zuverlaessiger weil keine Draehte, schwingen viel schneller an, fuer 
Datalogger haben die grosses Batterieeinsparungspotential, sie brechen 
nicht, brauchen keine externen Kondensatoren..... Allerdings gibt es die 
o.g. Grenzen und vielleicht auch noch ein paar andere Grenzen.

Gruss, Robert

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


Lesenswert?

> CAN kannsch vergessen
Stimmt nicht. Allerdings läuft mein CAN Bus auch nur mit 20 KBaud wegen 
der Leitungslänge.

> Eine Uhr, war wohl nix
Die Uhr sollte sowiso über Batterie/Goldcap gesichert sein. Dabei läuft 
der interen Oszillator nicht also wird ein Quarz mit 32,768 KHz nötig.

von (prx) A. K. (prx)


Lesenswert?

Markus Müller schrieb:

> Stimmt nicht. Allerdings läuft mein CAN Bus auch nur mit 20 KBaud wegen
> der Leitungslänge.

Hier gilt das Gleiche wie für low-speed USB: Je nach Parametrisierung 
sind bei low-speed CAN offiziell bis zu 1,58% drin, 2% kann der 
Controller ohne besondere Kalibrierung gewährleisten. Wird i.d.R. 
funktionieren, ist aber für Produktionseinsatz nicht zu empfehlen.

von Helmut L. (helmi1)


Lesenswert?

@ Robert Teufel

nun gut du als ehemaliger Mitentwickler der ARM Chips von NXP hast da 
etwas bessere Informationen zu. Ich selber bin allerdings kein Freund 
von internen RC-Oszillatoren ich setzte dagegen lieber externe 
Quarzoszillatoren ein.

Gruss Helmi

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.