Hi,
habe mal etwas Overclocking versucht.
Die CPU läuft bei mir bis 50MHz, darüber ist Schluss.
Was die interne Peripherie dazu sagt, oder wie lange der Chip das aushält , ist eine andere Frage.
Ausprobieren auf eigene Gefahr!

Es wird mit einem 4MHz Quarz ein 100MHz Takt über die PLL erzeugt und dann über den Prescaler C auf 50MHz CPU Takt geteilt.

Code:
$regfile = "xm128a1def.dat"
$crystal = 50000000                                         'Für Bascoms interne Berechnung der Wartezeiten, etc.

Ddre = &B11111111                                           'PortE alles auf Output konfigurieren

Dim A As Byte                                               '

' 4MHz Quarz an PortR0 und R1, PLL mit Multiplikationsfaktor 25
' ergibt 100MHz Takt für 2 x Speed tolerante Peripherie (clk2per)
' der CPU Takt wird mit Prescaler C DIV 2 auf 50MHz gebracht.

Out &H52 , &B01101011                                       ' Freq 2 bis 9 MHz, Startup Time 16K Takte, 32KHz Osc in low power Mode
Out &H50 , &B00001000                                       ' Externen Oszillator einschalten
Out &H55 , &B11011001                                       ' Takt für die Pll = externer Oszillator (die 4MHz) Multiplikator = 25
Out &H34 , &HD8                                             ' Register Schreibschutz für 4 Zyklen aufheben                                        '
Out &H41 , &B00000001                                       ' Prescaler A und B werden nicht verwendet (:1),  Prescaler C teilt durch 2
                                                            ' Vor dem Prescaler C 100 MHz Peripherietakt, dahinter 50 MHz CPU Takt
While A.3 = 0                                               ' Warte bis Ext Oszillator stabil
   A = Inp(&H51)
Wend
Out &H50 , &B00011000                                       ' jetzt die PLL dazuschalten

While A.4 = 0                                               ' und warten, bis sie stabil ist
   A = Inp(&H51)
Wend

Out &H34 , &HD8                                             ' Register Schreibschutz für 4 Zyklen aufheben        '
Out &H40 , &B00000100                                       ' PLL als Systemtakt auswählen
Out &H34 , &HD8                                             ' Register Schreibschutz für 4 Zyklen aufheben                                         '
Out &H42 , &B00000001                                       ' weitere Einstellungen sperren

Do                                                          ' Port toggeln,
                                                            ' (nur damit ich auf dem Frequenzzähler kontrollieren konnte, was sich verändert)
 Porte = 0                                                  ' 32 MHz CPU = ca. 3.5 MHz auf PortE
 Porte = 255                                                ' 50 MHz CPU = ca. 5.5 MHz auf PortE , scheint also zu funktionieren :)
Loop
End
Gruß
Christopher