STM32F303 USB ohne HSE Quarz

Gast #5807834
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?
Gast #5807970
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.
Gast #5808016
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.
#5808034
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".
Gast #5808037
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.
Gast #5808042
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.
Gast #5808198
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren