Habe folgenden Assemblercode:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
Das DBP-bit im PWR Register ist gesetzt: @ Power configuration word to be loaded into PWR_CR register .set PWRCONF, VOS << 14 | DBP << 8 Das Programm loopt.
|
Anzeige
|
LSERDY wird nicht ready - STM32F407 LSE ClockHabe folgenden Assemblercode:
Das DBP-bit im PWR Register ist gesetzt: @ Power configuration word to be loaded into PWR_CR register .set PWRCONF, VOS << 14 | DBP << 8 Das Programm loopt.
Gast
#7053225
Danke dass du uns an deinen Unternehmungen teilhaben lässt. Deinem Bericht nach zu urteilen hast du keine Fragen dazu. Dann kann hier ja geschlossen werden. weiter weg schrieb: > Danke dass du uns an deinen Unternehmungen teilhaben lässt. > > Deinem Bericht nach zu urteilen hast du keine Fragen dazu. > Dann kann hier ja geschlossen werden. Willst Du hier nur stänkern? "das Programm loopt" ist doch Frage genug, oder?
Gast
#7053282
Also ich verstehe das Fragment auch nicht so ganz. Was soll da passieren, was sind die Erwartungen? Vielleicht ist ja alles total korrekt, und dein Verständnis passt nicht zum Registersatz? Was haben die Register r1..r5 damit zu tun? LSERDY = Low Speed (Oscillator) External Ready? Kann es sein dass da was an Beschaltung extern fehlt, nicht funktioniert oder irgendwelche Pins (noch) falsch konfiguriert sind? mfg mf Die modernen µC haben komplexen Clock Tree, bist Du sicher dass da der Bus Takt am Peripherial ankommt? Jim M. schrieb: > Die modernen µC haben komplexen Clock Tree, bist Du sicher dass da der > Bus Takt am Peripherial ankommt? SYSCLK ist 168 MHz und mit PLL richtig konfiguriert. Das System funktioniert im großen und ganzen. Ich wollte jetzt nur die LSE-Clock statt der internen RTC-Clock einschalten, weil der Chip eine externe Beschaltung mit 32KHz Quarz hat. Die Register hatte ich nur deshalb zitiert, weil r0 und r6 im Code vorkommen zur Kontrolle, daß die richtigen Werte benutzt werden. Das war Cut/Paste aus dem Debugger (STM32CubeIDE) Andere Stellen, wo so eine Warteschleife gemacht wird, kommen auch vor, weshalb ich mich eben wundere, warum diese gerade nicht funktioniert.
Christoph K. schrieb: > .set RTCCONF, RTCEN << 15 | RTCSEL << 8 | LSEON Damit das funktioniert, müssten RTCEN bis LSEON alle drei = 1 sein. Sehr ungewöhnlich... Normal würde ich da sowas erwarten: .set RTCCONF, RTCEN | RTCSEL | LSEON Oder was man hier im Forum öfter sieht: .set RTCCONF, 1 << RTCEN | 1 << RTCSEL | 1 << LSEON Bauform B. schrieb: > Christoph K. schrieb: >> .set RTCCONF, RTCEN << 15 | RTCSEL << 8 | LSEON > > Damit das funktioniert, müssten RTCEN bis LSEON alle drei = 1 sein. Sehr > ungewöhnlich... > Normal würde ich da sowas erwarten: > .set RTCCONF, RTCEN | RTCSEL | LSEON > > Oder was man hier im Forum öfter sieht: > .set RTCCONF, 1 << RTCEN | 1 << RTCSEL | 1 << LSEON Das ist schon OK:
Aber ich habe gerade festgestellt, daß die Loop nicht mehr besteht. Kann es mir im Moment nicht erklären. Danke für's Mitdenken erst mal. Christoph K. schrieb: > Aber ich habe gerade festgestellt, daß die Loop nicht mehr besteht. D.h. der 32kHz-Quarz schwingt jetzt schnell an? Die können gerne auch Mal ne Sekunde brauchen bis sie los gehen. Wenn du jetzt über einen Reset huscht und der 32kHz noch nachschwingt, wird er auch schneller wieder los gehen. Es gibt da einen Design Guide von ST: https://www.st.com/resource/en/application_note/cd00221665-oscillator-design-guide-for-stm8afals-stm32-mcus-and-mpus-stmicroelectronics.pdf mfg mf STM hat auch eine eigene: https://www.st.com/resource/en/application_note/cd00221665-oscillator-design-guide-for-stm8af-al-s-stm32-mcus-and-mpus-stmicroelectronics.pdf oder Freescale: https://www.nxp.com/docs/en/application-note/AN2606.pdf und wenn du die alle gelesen hast, baust du nie wieder einen 32kHz-Quarz ein ;) Bauform B. schrieb: > STM hat auch eine eigene: > https://www.st.com/resource/en/application_note/cd00221665-oscillator-design-guide-for-stm8af-al-s-stm32-mcus-and-mpus-stmicroelectronics.pdf > > oder Freescale: > https://www.nxp.com/docs/en/application-note/AN2606.pdf > > und wenn du die alle gelesen hast, baust du nie wieder einen 32kHz-Quarz > ein ;) Ach, interessant, daß es da tatsächlich Probleme geben kann. Dann baue ich besser den 32KHz aus dem DIYMORE-Board aus. Vielleicht hatte der Autor (†) des Codes nicht ohne Grund den LF-Quarz auf dem DISCO-Board disabled. Die Code-Passage in seinem Programm war ja auskonditioniert. Ich dachte, ich enable sie einfach mal, weil ich ja den Quarz habe. Christoph K. schrieb: > Ach, interessant, daß es da tatsächlich Probleme geben kann. Dann baue > ich besser den 32KHz aus dem DIYMORE-Board aus Du kannst ja einen MEMS-Oszillator verwenden, die kommen fertig abgeglichen sind recht stabil. Aber wenn du den so einfach raus kicken kannst, warum war der dann überhaupt drin? mfg mf Achim M. schrieb: > Christoph K. schrieb: >> Ach, interessant, daß es da tatsächlich Probleme geben kann. Dann baue >> ich besser den 32KHz aus dem DIYMORE-Board aus > > Du kannst ja einen MEMS-Oszillator verwenden, die kommen fertig > abgeglichen sind recht stabil. > > Aber wenn du den so einfach raus kicken kannst, warum war der dann > überhaupt drin? > > mfg mf Der ist von Hause aus drin. Der Original-Code wurde für das Discovery-Board zugeschnitten. Ich versuche ihn auf dem DIYMORE zum Laufen zu bringen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|