Forum: Mikrocontroller und Digitale Elektronik STM32F303 USB ohne HSE Quarz


von Stefan F. (Gast)


Lesenswert?

Ich habe da gerade eine ganz ketzerische Idee: Kann man den USB Port 
ohne HSE Quarz benutzen?

Ich stelle mir vor, den HSI Oszillator zu benutzen und automatisch zu 
trimmen, indem ich seine Frequenz mit dem LSE Oszillator (den ich zu 
bestücken gedenke) vergleiche.

Kann das klappen, oder ist es eine Schnaps-Idee?

von STM Apprentice (Gast)


Lesenswert?

Stefanus F. schrieb:
> oder ist es eine Schnaps-Idee?

Naja, wenn es dem Esel zu bunt wird geht er aufs Eis tanzen.

Irgendwie bringst du deine langweiligen Tage schon 'rum,
mit "sinnvollen" Sachen programmieren und dein Helfersyndrom
hier auf uC.net ausleben.

von Stefan F. (Gast)


Lesenswert?

STM Apprentice schrieb: etwas

Danke für diese äußerst kluge Antwort, sie bringt mich allerdings nicht 
weiter.

von Bimbo. (Gast)


Lesenswert?

Du kannst den HSI benutzen und das kann auch oft gut gehen. Bedenke 
aber, dass du diesen ggf. per Software trimmen musst und dieser danach 
immernoch nicht temperaturstabil ist.

Für Basteleien geht das, keine Frage. Für Industrieprodukte ist die 
Ausfallgefahr zu groß.

von Stefan F. (Gast)


Lesenswert?

Danke Bimbo. Ja, es geht um ein Bastelprojekt.

Ich stelle mir vor, den Systemzähler mit der RTC zu vergleichen und dann 
den HSI Oszillator dementsprechend automatisch zu trimmen.

Dann werde ich mal versuchen, einen STM32F303V auf ein Breakout Board zu 
löten und nur mit LSE Quarz zu bestücken. Ein Quarz weniger ist für mich 
angenehm weil das auf dem universellen Breakout Board eine fiese 
Fummelei ist.

von Dr. Sommer (Gast)


Lesenswert?

Es gibt STM32 (und auch andere Controller) welche USB ohne Quarz können. 
Die synchronisieren sich auf den USB-Takt. Sinnlos das in Software 
nachzubasteln...

von Johannes S. (Gast)


Lesenswert?

NXP hat neue MCUs die USB ohne Quartz können sollen. Ich hatte das mal 
überflogen, die synchronisieren sich da erstmal irgendwie auf den USB 
Takt. Von daher könnte der Ansatz mit dem HSI Abgleich auch 
funktionieren.

von pegel (Gast)


Lesenswert?

Der F042 und ich glaube auch der F072 sind sogar dafür gedacht.

Meine Messungen am F103 haben gezeigt, dass die Frequenz am PLL von HSI 
selbst von Messung zu Messung nicht sonderlich konstant ist.

Also reines Glücksspiel.

von Schorsch X. (bastelschorsch)


Lesenswert?

Die meisten STM32L4xx (432,476 etc) haben das schon drinne. Da wird ein 
RC Oszillator mit Hilfe der 32.768kHz stabilisiert, dass es für USB 
reicht. Entweder so oder Quarz oder Oszillator. Der DSC6011 von 
Microchip kann 25ppm und kostet <0,80€ und braucht 1.3mA.

von Stefan F. (Gast)


Lesenswert?

Ich habe noch ein bisschen recherchiert.

Für USB brauche ich wohl eine Taktquelle mit 0,25% Genauigkeit. Die kann 
ich mit dem HSI Oszillator wohl selbst mit Abgleich nicht sicher 
erreichen. Auch  gewöhnliche Keramik Schwinger sind wohl nur mit Glück 
genau genug.

Andererseits habe ich an mehreren Stellen gelesen, dass es mit HSI sogar 
ohne Abgleich funktionieren würde. Jetzt bin ich total unsicher. Ich 
würde mir gerne unnötige Lötarbeit sparen. Andererseits habe ich aber 
auch keinen Bock auf sporadische Fehlfunktionen bloss weil ich an dieser 
Stelle zu Faul war.

von Dr. Sommer (Gast)


Lesenswert?

Wozu brauchst du überhaupt 2 Quarze, HSE und LSE? Benutzt du die RTC?

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Benutzt du die RTC?

Ja.

von Dr. Sommer (Gast)


Lesenswert?

Stefanus F. schrieb:
> Ja.

Auch mit Batterie an Vbat für wenn keine Vcc-Spannung anliegt?

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Stefanus F. schrieb:
>> Ja.
>
> Auch mit Batterie an Vbat für wenn keine Vcc-Spannung anliegt?

Das steht noch nicht fest, warum fragst du?

von Dr. Sommer (Gast)


Lesenswert?

Stefanus F. schrieb:
> Das steht noch nicht fest, warum fragst du?

Weil ohne Vbat-Backup-Batterie ist der LSE relativ nutzlos, da kannst du 
auch alles per HSE machen und den Prozessor in den tiefsten Standby 
schicken, es sei denn du brauchst die höhere Genauigkeit von 
Uhrenquarzen.

von Christopher J. (christopher_j23)


Lesenswert?

pegel schrieb:
> Der F042 und ich glaube auch der F072 sind sogar dafür gedacht.

ja, die F0-Serie wird mit "crystal-less USB" beworben. Neben den beiden 
genannten sollte F052 auch gehen. Es gibt aber noch einige mehr, unter 
anderem L0x2/L0x3 und L4x2/L4x3, sowie die uralten F105 und F107. Eine 
schöne Übersicht findet man in AN4879 "USB Implementation on STM32 
products".

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> da kannst du auch alles per HSE machen

Ist der HSE (mit 8MHz Quarz) nicht wesentlich ungenauer als der 32kHz 
Oszillator? Das habe ich zumindest von älteren 8bit Mikrocontrollern 
noch im Kopf.

Ich möchte die Uhrzeit wenigstens so genau anzeigen, wie praktisch alle 
anderen Uhren im Haushalt. Heißt: Maximal 1min Abweichung pro Monat.

von Dr. Sommer (Gast)


Lesenswert?

Stefanus F. schrieb:
> Ist der HSE (mit 8MHz Quarz) nicht wesentlich ungenauer als der 32kHz
> Oszillator?

Je nachdem was du für einen kaufst? Vielleicht kannst du ja Genauigkeit 
für mehr Einfachheit opfern...

von Stefan F. (Gast)


Lesenswert?

Was die F0 und L0 Serie angeht: Danke für eure Hinweise. Die Sache mit 
dem Clock Recovery kenne ich. Es soll aber dieses mal ein STM32F303V 
sein. Habe sie schon bestellt.

Ich habe beschlossen, die Idee mit dem Trimmen des HSI zu verwerfen. 
Jede Trimm-Stufe macht 0,5% aber ich muss auf weniger als 0,25% kommen. 
Die Rechnung geht nicht auf.

von Dr. Sommer (Gast)


Lesenswert?

Stefanus F. schrieb:
> Heißt: Maximal 1min Abweichung pro Monat.

Also 23ppm. Bei Farnell z.B. Best-Nr 1842347RL für einen 10ppm-Quarz @ 8 
MHz. Best-Nr. 2854266 ist ein integrierter Quarz-Oszillator @ 25ppm 
(1,08min pro Monat), leichter einzubauen als ein "nackter" Quarz.

von Karl (Gast)


Lesenswert?

Schorsch X. schrieb:
> Die meisten STM32L4xx (432,476 etc) haben das schon drinne. Da wird ein
> RC Oszillator mit Hilfe der 32.768kHz stabilisiert

Oder es wird auf SOF vom Host synchronisiert. Mit einem 32 kHz Quarz 
wäre es ja nicht mehr Crystal-less ?

Ansonsten sag ich auch: Mems Oszillator dran und gut.

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Also 23ppm. Bei Farnell z.B. Best-Nr 1842347RL für einen 10ppm-Quarz @ 8
> MHz. Best-Nr. 2854266 ist ein integrierter Quarz-Oszillator @ 25ppm
> (1,08min pro Monat), leichter einzubauen als ein "nackter" Quarz.

Vielen Dank für diesen Tipp. Die sind ja sogar preislich attraktiv.

von W.S. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Ist der HSE (mit 8MHz Quarz) nicht wesentlich ungenauer als der 32kHz
> Oszillator? Das habe ich zumindest von älteren 8bit Mikrocontrollern
> noch im Kopf.

Laß das alle lieber bleiben und spendiere deinem µC nen Quarz.

Wenn dir mal danach ist, so richtigen Brechreiz zu kriegen, dann lies 
mal ein Refman von Freescales Kinetis zu diesem Thema. Da gibt es Chips, 
die nen USB-Core drin haben, aber dem Systemtakt, den man per 32kHz 
Quarz an diesen Dingern per FLL erzeugen kann, jittert derart, daß man 
so einen Systemtakt eben NICHT für den USB verwenden kann.

Nun haben diese Dinger auch einen 'passenden' internen RC-Takt - und mit 
dessen Hilfe geht es so lala mit dem USB, aber nur mit den 
Schweinetrick, daß im USB-Device-Core eine Art Halbe-Hilfs-PLL eingebaut 
ist, anhand deren Vergleichswerte mit dem vom Host kommenden Signal man 
den intenen RC-Takt nachstimmen kann. Und das muß alle nase lang 
(vermutlich im 1 ms Rhythmus) passieren.

Der Treppenwitz daran ist, daß diese Chips auch einen Oszillator für 
einen externen Quarz haben - aber erstens kann der nicht direkt 48 MHz 
und zweitens kann man diesen eben NICHT direkt für die FLL benutzen, 
sondern muß ihn intern zuerst auf 32..39 kHz herunterteilen, womit man 
wieder genauso doof dasteht, als wenn man gleich einen Uhrenquarz 
angelötet hätte.

Nein, was Grundsätzliches: Quarze im Gebiet von 4..12 MHz sind weitaus 
stabiler als 32 kHz Uhrenquarze. Letztere haen nur deshalb einen Sinn, 
weil man damit wesentlich langsamere Logik braucht, die dann auch nur 
etwa ein Hundertstel des Stromes braucht. Und das ist wichtig für Uhren, 
die jahrelang aus einer Knopfzelle versorgt werden müssen.

W.S.

von pegel (Gast)


Lesenswert?

Wie ist das mit den 4,19...MHz Uhren Quarzen?

Ich hatte eine BMW Analog Uhr aus dem Schrott.
Die habe ich eingebaut und zur Zeitumstellung nach Radio Zeitzeichen 
gestellt.

Zur nächsten Zeitumstellung war die Abweichung ca. 4 Sekunden.

Zufall?
Oder ist das eine andere Klasse?

von Dr. Sommer (Gast)


Lesenswert?

pegel schrieb:
> Wie ist das mit den 4,19...MHz Uhren Quarzen?

Kommt man damit mit der PLL auf die 48 MHz für USB? Und die 72 MHz max 
CPU Frequenz?

von pegel (Gast)


Lesenswert?

Habe Calc Tabellen berechnet.
Die runden Werte sind leider in keiner Kombination möglich. :(

Auch nicht für den F407 mit M, N, P Teilern.

von Johnny B. (johnnyb)


Lesenswert?

Stefanus F. schrieb:
> Andererseits habe ich an mehreren Stellen gelesen, dass es mit HSI sogar
> ohne Abgleich funktionieren würde

Klar kann es im Einzelfall funktionieren, taugt aber nicht für ein 
Serienprodukt. Dies wegen Fertigungstoleranzen, Bauteiletoleranzen, 
schwankender Umgebungsbedingungen etc.

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.