mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32L431 mit USART 1 STOP1 wakeup und HSI


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: stm32 schlafender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe hier einen STM32L431 bei dem ich den STOP1 nutze.
Bei einer eingehenden Nachricht über den USART1 soll der wieder 
aufwachen.
(Der Wakeup IRQ feuert beim Startbit)
Damit der USART1 im STOP1 empfangen kann muss er per HSI RC laufen.
Der ist mit seinen +-1% genau genug für UART.
Da ich 1Mbaud brauche kann ich nicht auf HSE+PLL warten bis die 
ready+locked sind.
Also läuft der Rest des STM32 mit dem MSI auf 48MHz.

Nun bekommt der USART1 also 2 Takte, 16MHz HSI und 48MHz MSi, diese sind 
nicht synchron zueinander.

Im Datenblatt finde ich nichts dazu ob das erlaubt ist oder verboten 
ist.
Es wird auch nichts von einer sync Logik erwähnt.
(kennt man zB vom AVR mit seinem async Timer)
Laut Blockschaltbild geht der 16MHz HSI nur an den Baudratenerzeuger.
Die Busclk (=48MHz MSI) ist im Blockschaltbild nicht eingezeichnet.

Da das später in den Produktionscode soll bräuchte ich dazu eine 
konkrete Aussage.
Weis wer wo ich die bekomme?

Das erste byte per HSI empfangen, dann aufs Stopbit lauschen und dann 
den Takt umschalten ist jetzt auch nicht wirklich praktikabel oder?
Vor allem wenn der Empfang per DMA und Timeout realisiert ist.

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der folgende Text aus dem DB (3.25 UART) impliziert Clock Syncro Logik:
> All USART have a clock domain independent from the CPU clock

Insbesondere sieht man im Clock Tree das auch 32kHz als Clock Source 
ausgewählt werden darf - damit wird Synchronisierung Pflicht.

Da beim STM32L4 mehrere Peripherials eine eigene Clock haben, könnten 
die Details an anderer Stelle im Refrenz Handbuch auftauchen - ich habe 
da jetzt nicht nachgeschaut.

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stm32 schlafender schrieb:
> Das erste byte per HSI empfangen, dann aufs Stopbit lauschen und dann
> den Takt umschalten ist jetzt auch nicht wirklich praktikabel oder?

Nicht wirklich, dann auf das Stop kann direkt das nächste Start Bit 
folgen. Da Baudraten umschalten seine Zeit dauert, dürfte das dann in 
die Hose gehen.

Autor: stm32 schlafender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> Der folgende Text aus dem DB (3.25 UART) impliziert Clock Syncro Logik:
>> All USART have a clock domain independent from the CPU clock

Ja impliziert, aber so wirklich konkret steht das nirgends.
Das mit den 32kHz ist nen Argument, aber beim AVR stehts eben noch 
deutlicher im Datenblatt.

Jim M. schrieb:
> Da beim STM32L4 mehrere Peripherials eine eigene Clock haben, könnten
> die Details an anderer Stelle im Refrenz Handbuch auftauchen - ich habe
> da jetzt nicht nachgeschaut

Beim RCC und USART stehts jedenfalls nicht, da hab ich natürlich schon 
nachgelesen.

Autor: Bauform B. (bauformb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evt. scheitert es an der hohen Baudrate. Das Datenblatt sagt:
Table 43. Wakeup time using USART/LPUART(1)
Wakeup time needed to calculate the maximum USART/LPUART
baudrate allowing to wakeup up from stop mode when USART/LPUART
clock source is HSI16
  Stop 0 mode                   1.7us
  Stop 1 mode and Stop 2 mode   8.5us
bzw. im RM0394
38.5.17 Wakeup from Stop mode using USART
Determining the maximum USART baud rate allowing to wakeup correctly
from Stop mode when the USART clock source is the HSI clock
204kBaud
allerdings heißt es auch
If the wakeup event is verified, the MCU wakes up from
low-power mode and data reception goes on normally.
und verify beim Startbit kostet doch max. 1 Takt oder wie?

Jim M. schrieb:
> Insbesondere sieht man im Clock Tree das auch 32kHz als Clock Source
> ausgewählt werden darf - damit wird Synchronisierung Pflicht.

Das gilt doch für jede andere Taktfrequenz genauso, entscheidend ist 
doch nur die Taktquelle.

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.