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?
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Du kannst versuchen mit der HAL_GetTick Funktion die Zeit zu messen, z.B. von einer Berechnung. So kannst du die Frequenz etwa ermitteln.
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.
:
Bearbeitet durch User
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.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.