Hallo,
ich habe ein paar Probleme mit der PLL-Konfiguration meines STR911FAM44.
Ich kann die PLL problemlos bis 62.5 MHz hochtakten, doch darüber hinaus
bewegt sich der Controller überhaupt nicht mehr, obwohl bei einem 25MHz
Quarz eigentlich 96MHz möglich sein sollten.
Offenbar liegt es auch nicht direkt an der PLL, sondern eher an der
Reference Clock (RCLK), welche auch die CPUClK bestimmt, denn wenn ich
zwischen PLL und RCLK noch einen Teiler setze, gehts auch.
Ich möchte aber gern die CPU mit 96MHz takten.
Kann mir jemand helfen?
Gruß,
Rumkugel
96MHz geht beim STR9 durchaus, aber Busse und Flash müssen dafür
entsprechend konfiguriert werden (Teiler/Waitstates). Und zwar bevor der
Systemtakt auf die PLL geschaltet wird.
Da du nicht schreibst, was du tust, lässt sich auch nicht sagen, was du
falsch machst.
Ich bin hier offenbar auf eine kleine Hardwareeigenart getroffen.
http://www.keil.com/support/docs/3306.htm
also demnach BRCLK und FMICLK halbieren.. und das funktioniert sogar :)
Gruß,
Rumkugel
Rumkugel schrieb:
> http://www.keil.com/support/docs/3306.htm
Trifft hier nicht zu. Das bezieht sich nur auf Anfangsrevisionen des
etwas glücklosen STR911F, nicht auf die spätere Version davon und schon
garnicht auf den deutlich verbesserten STR911FA.
Wenn das dein Problem löst, dann weil du was anderes falsch gemachst
hast. Das Flash-Timing wäre der erste Verdacht.
Du wirst zwar auch bei vollen 96MHz fast jedes Rennen gegen 70-100MHz
CM3 verlieren, aber mit halben Flashtakt erst recht.
Ist auch wirklich ein bischen fies von ST, sowas im Flash Programming
Manual zu verstecken ;-). Aber irgendwo logisch, denn das Flash ist ja
ein separater Chip. Gibt dort auch noch etwas mehr zu beachten als die
Waits.
Schau mal dort rein, und dann unter den FMI_xxx Funktionen der Lib.
Besten Dank erstmal soweit.
hab dies noch in meiner startup912.s gefunden:
[avrasm]
/*; --- wait states Flash confguration */
LDR R6, = 0x00080000 /*;Write a Write Flash
Configuration */
LDR R7, =0x60 /*;Register command (60h) to any
word*/
STRH R7, [R6] /*;address in Bank 1.*/
LDR R6, = 0x00083040 /*;Write a Write Flash
Configuration */
LDR R7, = 0x3 /*;Register Confirm command (03h)*/
STRH R7, [R6] /*;2Wstaites in read,PWD,LVD
enabled, */
/*;High BUSCFG.*/
[avrasm]
sagt mir erstmal garnix.
Aber ich schau mal in das Flash Programming Manual
Gruß,
Rumkugel
Die Zeile habe ich hinter dem PLL Disable und vor dem PLL Enable
platziert, aber leider hilft es nichts. Ohne FMICLK Divisor läuft gar
nichts.
Steht die Zeile nun an der falschen Stelle, habe ich noch mehr
vergessen, oder stimmt die Konfiguration nicht?
Gruß,
Rumkugel