Artikel
Highspeed Controller-Board
Arbeitsgeschwindigkeiten bis 33 MIPS!
Die Hardware des neuen Elektor-Highspeed-Controller-Boards erscheint auf den ersten Blick wenig sensationell. Das Board ist ein Standard-Mikrocontroller-System auf der Basis des 8051, bei dem nur auffällt, dass die EPROM-Fassung fehlt. Ersetzt wird das EPROM durch einen Flash-Programm-Speicher auf dem Chip, eine Eigenschaft, die in der Mikrocontroller-Welt schon längst nicht mehr als Novität gilt. Doch der DS89C420 von Dallas hat es buchstäblich in sich: Er ist bei gleicher Takt-Frequenz bis zu 12 mal schneller als der originäre 8051. Bei seiner maximalen Takt-Frequenz 33 MHz erreicht er eine Arbeitsgeschwindigkeit von 33 MIPS!In der Elektor-Ausgabe vom Dezember 2001 wurde ein Mikrocontroller-Board veröffentlicht, das mit einem Flash-Mikrocontroller von Atmel arbeitet. Das hier vorgestellte neue Controller-Board hat damit nur eins gemeinsam: Der DS89C420 von Dallas Semiconductor stammt ebenfalls vom Urvater 8051 ab. Dallas beschritt einen ähnlichen Weg wie Atmel und entwickelte einen Controller, der auf der Architektur des 8051 aufbaut, jedoch durch Ausbau der Funktionalität und Steigerung der Geschwindigkeit keinen Vergleich mit der moderner konzipierten 16-bit-Konkurrenz zu scheuen braucht.
Extra-Info / Update
Leserbrief:
Bei dem im Juni und September 2002 veröffentlichten High-Speed-Controller mit 33-MHz-Takt ist es mir nicht gelungen, den Quarz auf dieser Frequenz zum Oszillieren zu bringen. Er ließ sich nur auf der Grundton-Frequenz von 11 MHz zum Schwingen anregen. Das Problem habe ich jetzt durch Verwendung des Multiplizierers im DS89C420 gelöst, der die Quarzfrequenz mit dem Faktor 2 oder 4 multipliziert. Momentan läuft mein Controller daher sogar mit 44 MHz. Für die Aktivierung des Multiplizierers benötigt man bei der Initialisierung ein Stück Maschinenkode:
; Set multiplier for the clock to 4 times
; Go to default no multiplier
MOV PMR, #080H
; Wait for ring modulator to stop
wait_rgmd:
MOV A, EXIF
JB ACC.2, wait_rgmd
; Clear the CTM bit
MOV PMR, #080H
; Use Crystal multiplier
MOV PMR, #88H
; Enable CTM, crystal multiplier
MOV PMR #98H
; Poll for the CKRY, EXIF.3 to get set
wait_ckry:
MOV A, EXIF
JNB ACC.3, wait_ckry
; enable CTM, crystal multiplier of 4
MOV PMR, #18H
Ich hoffe, dass dieser Tipp vielleicht auch für andere Anwender von Nutzen ist.
Rob van der Ouderaa (rouderaa@xs4all.nl)
Danke für den Hinweis! Mit dem richtigen Obertonquarz sollte dieses Problem zwar nicht auftreten, aber falls man es doch bekommt, braucht man mit dieser Lösung nicht lange nach einem besser geeigneten Quarz zu suchen.
Bei dem im Juni und September 2002 veröffentlichten High-Speed-Controller mit 33-MHz-Takt ist es mir nicht gelungen, den Quarz auf dieser Frequenz zum Oszillieren zu bringen. Er ließ sich nur auf der Grundton-Frequenz von 11 MHz zum Schwingen anregen. Das Problem habe ich jetzt durch Verwendung des Multiplizierers im DS89C420 gelöst, der die Quarzfrequenz mit dem Faktor 2 oder 4 multipliziert. Momentan läuft mein Controller daher sogar mit 44 MHz. Für die Aktivierung des Multiplizierers benötigt man bei der Initialisierung ein Stück Maschinenkode:
; Set multiplier for the clock to 4 times
; Go to default no multiplier
MOV PMR, #080H
; Wait for ring modulator to stop
wait_rgmd:
MOV A, EXIF
JB ACC.2, wait_rgmd
; Clear the CTM bit
MOV PMR, #080H
; Use Crystal multiplier
MOV PMR, #88H
; Enable CTM, crystal multiplier
MOV PMR #98H
; Poll for the CKRY, EXIF.3 to get set
wait_ckry:
MOV A, EXIF
JNB ACC.3, wait_ckry
; enable CTM, crystal multiplier of 4
MOV PMR, #18H
Ich hoffe, dass dieser Tipp vielleicht auch für andere Anwender von Nutzen ist.
Rob van der Ouderaa (rouderaa@xs4all.nl)
Danke für den Hinweis! Mit dem richtigen Obertonquarz sollte dieses Problem zwar nicht auftreten, aber falls man es doch bekommt, braucht man mit dieser Lösung nicht lange nach einem besser geeigneten Quarz zu suchen.
Diskussion (0 Kommentare)