mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 HSI mit LSE synchronisieren?


Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wüsste ich gerne, der HSI (R/C) Oszillator des STM32F103 mit dem LSE 
(32kHz Quarz) Oszillator synchronisiert werden kann.

Das man ihn kalibrieren kann ist mir klar, ich denke da aber eher an 
eine fortlaufend automatisch ablaufende Funktion der PLL. Dann könnte 
man auf den zweiten Quarz verzichten, selbst mit USB - denke ich 
jedenfalls.

Cube MX bietet das nicht an, ich habe aber schon zweimal gelesen, dass 
der Chip mehr Konfigurationsmöglichkeiten bietet, als Cube MX 
unterstützt. Ich will die HAL sowieso nicht verwenden.

Autor: Christian J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Ich wüsste ich gerne, der HSI (R/C) Oszillator des STM32F103 mit dem LSE
> (32kHz Quarz) Oszillator synchronisiert werden kann.

Ich wüsste jetzt nicht wie 2 Schwingkreise synchronisiert werden sollen, 
die ihre eigenen Frequenzen haben? Der HSI hat ja mit dem LSE so nichts 
zu tun. Es ist so, dass vor jedem Zugriff auf die RTC Register ein Sync 
abgewartet werden muss.

/* Wait for RTC registers synchronization */
RTC_WaitForSynchro();

und

/* Wait until last write operation on RTC registers has finished */
    RTC_WaitForLastTask();

damit Probleme umgangen werden, die aus den unterschiedlichen Frequenzen 
heraus entstehen. Die RTC ist ja samt ihrer Register durch die LSI oder 
LSE geclocked.

Aber ob das Deine Frage war? .... tja,..

Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Appnote AVR1003 heisst es:

"The XMEGA Clock System provides two Digital Frequency-locked Loops 
(DFLLs), one for the 2 MHz RC oscillator and one for the 32 MHz ring 
oscillator. The DFLLs can be configured individually to use either the 
internal 32 kHz RC oscillator or an external 32 kHz watch crystal as a 
reference for the calibration process. Once enabled, a DFLL provides 
continuous calibration of its oscillator based on the clock reference."

Genau das habe ich mal angewendet. Ich hatte nur ein Quarz (nämlich 
32kHz) verwendet und konnte daraus auch ziemlich präzise 32Mhz ableiten, 
obwohl der Haupttakt nur mit einem R/C Oszillator erzeugt wurde.

Ich hatte gehofft, dass der STM32 so etwas auch kann.

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im F1 gibt es keine interne Verbindung von LSE zu einem Timer. Du 
koenntest aber ueber MCO LSE ausgeben und auf einem anderen Timer auf 
eine Capture Channel ausgeben.Den Timer laesst Du mit HSI laufen. Mit 
der Differenz zwischen den Capturewerten stellst Du HSI cal nach. 
Koennte gehen. Einfacher ist ein L4, der kann MSI mit LSE mit 
Boardmitteln nachstellen...

Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Im F1 gibt es keine interne Verbindung von LSE zu einem Timer.
Es sei denn, man nennt die RTC einen Timer.

Wobei mich das auf einen Lösungsansatz bringt. Ich könnte doch einfach 
im Sekunden-Interrupt der RTC den SysTick Counter auslesen. Jede Sekunde 
müsste 1000 SysTicks entsprechen. Wenn nicht, kann ich die 
Geschwindigkeit des HSI Oszillator ein bisschen erhöhen bzw. verringern.

Das werde ich heute Abend mal versuchen.

: Bearbeitet durch User
Autor: Mampf F. (mampf) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Das man ihn kalibrieren kann ist mir klar, ich denke da aber eher an
> eine fortlaufend automatisch ablaufende Funktion der PLL. Dann könnte
> man auf den zweiten Quarz verzichten, selbst mit USB - denke ich
> jedenfalls.

Nein das geht nicht, der HSI kann nur auf 1% genau eingestellt werden - 
auch über den Abgleich über den LSE.

1% ist für USB zu ungenau.

Aber du kannst einen STM32 mit HSI48 verwenden, die haben dann im 
USB-Core eine Clock-Recovery aus den USB-Frames.

Dann kannst du dir den zweiten Quarz tatsächlich sparen.

: Bearbeitet durch User
Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der HSI kann nur auf 1% genau eingestellt werden - auch über den Abgleich

Hmm schade. Aber nicht schlimm, auf die 50 Cent kommt es nicht wirklich 
an.

Autor: Mampf unterwegs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> der HSI kann nur auf 1% genau eingestellt werden - auch über den
> Abgleich
>
> Hmm schade. Aber nicht schlimm, auf die 50 Cent kommt es nicht wirklich
> an.

Ergänzend: Hab jetzt hmm 2 Projekte die den HSI ohne Kalibrierung für 
die PLL verwenden, um die 48MHz für USB zu erzeugen - und es 
funktioniert problemlos und stabil xD

Aber verkaufen würde ich das so nicht wollen :)

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum "Abgleich" des HSI Taktes gibt es auch eine Application note 
http://www.st.com/resource/en/application_note/cd0...

Autor: 23mts (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einige der 'F0s können ihren HSI mit dem clock recovery system (CRS) auf 
den LSE synchronisieren..

Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Zum "Abgleich" des HSI Taktes gibt es auch eine Application note

Demnach lässt sich der HSI Oszillator in 40kHz Schritten (0,5%) 
einstellen. Reicht das (sicher) für USB aus?

Autor: Mampf F. (mampf) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Reicht das (sicher) für USB aus?

Nein, es müssten +/-0,25% sein :)

> High speed data is clocked at 480.00 Mb/s with a data signalling
> tolerance of ± 500 ppm.

> Full speed data is clocked at 12.000 Mb/s with a data signalling
> tolerance of ± 0.25 % or 2,500 ppm.

> Low speed data is clocked at 1.50 Mb/s with a data signalling tolerance
> of ± 1.5 % or 15,000 ppm.

Autor: Stefan Us (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann war das klar eine Schnapsidee.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.