STM32F407 - kann man aktuelle SYSCLK irgendwo auslesen?

OP #7076132
Lesenswert?
• ▲
▼
Walter T. schrieb:
> Da die MCU nicht wissen kann, welcher Quarz angeschlossen ist: Leider
> nein. Wenn's nur um Plausibilität geht, ist das Symbol SYSTEMCORECLOCK
> das, was Du suchst. Davon werden die Teiler abgeleitet.

OK. Dazu brauche ich aber einen C-Layer. Mein Programm ist in Assembler 
geschrieben. Gut, ich weiß letztlich, was programmiert wurde und könnte 
das jetzt auch Schritt für Schritt nachgucken. Andererseits könnte ich 
eine Baudrate unter den Annahmen programmieren und schauen, ob das 
richtige Zeichen ankommt.

Nur ist es ja gerade Letzteres, was nicht funktioniert (USART3) :)
Gut, war nur so ein Gedanke.
Gast #7076147
Lesenswert?
• ▲
▼
Wenn ich dich richtig verstehe, könntest du die interne RTC über den LSI 
clocken und das Frequenzverhältnis aus einem TIM und der RTC berechnen?
Habe das aber noch nicht ausprobiert.

Walter T. schrieb:
> Da die MCU nicht wissen kann, welcher Quarz angeschlossen ist:

Warum sollte sie das nicht können? Die meisten Mikrocontroller haben ja 
interne Taktquellen, die man als Referenz benutzen könnte.
Gast #7076160
Lesenswert?
• ▲
▼
Walter T. schrieb:
> ist das Symbol SYSTEMCORECLOCK

Es wäre die Variable "SystemCoreClock", die er aber in seinem 
Ass-Programm nicht verwendet hat. Sein eigenes Programm kennt er wohl 
auch nicht.

Bei einem unbekannten Programm kann man per SWD die PLL-Register 
auslesen und abhängig von dem HSI/HSE-Takt die Taktfrequenz ausrechnen.
Gast #7076245
Lesenswert?
• ▲
▼
Christoph K. schrieb:
> Kann ich in einem Programm die aktuelle SYSCLK (z.B. 168MHz) als Wert
> auslesen oder gibt es eine andere Möglichkeit, sie zu verifizieren, ohne
> jetzt das Scope oder den Frequenzmesser zu holen?

Prinzipiell: Nein.
Zum Messen, Verifizieren und so braucht man 2 Instanzen: Den Prüfling 
und eine Referenz. Was du hingegen vorhast, ist etwa so, wie weiland der 
Baron Münchhausen, der sich am eigenen Zopf aus dem Sumpf zog.

Bei einigen µC gibt es für irgend ein Pin die Funktion, wo man den Takt 
(CPU-Takt oder AHB-Takt je nach Plattform) draufleiten kann, 
heruntergeteilt oder ggf. nicht. Dort kann man dann mit dem 
Frequenzmesser messen. Mußt du einfach mal im Manual nachschauen.

W.S.
Gast #7076270
Lesenswert?
• ▲
▼
W.S. schrieb:
> Prinzipiell: Nein.
> Zum Messen, Verifizieren und so braucht man 2 Instanzen: Den Prüfling
> und eine Referenz. Was du hingegen vorhast, ist etwa so, wie weiland der
> Baron Münchhausen, der sich am eigenen Zopf aus dem Sumpf zog.

Klingt zwar cool, aber eigentlich hat ein Microkontroller üblicherweise 
beides. Ist nur die Frage, ob man es entsprechend intern verschalten 
kann. Bei den ATSAM geht es afaik besser als bei den STM32F.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.