![]() Startseite Downloads Geschichte(n) Hardware FPGA-Board Prozessor Instruktionssatz Peripherie XBus-Referenz PS/2-Board Soundboard USB-MMC-Board PC-Software HaCom HoAsm, HLink Emulator Connectivity Embedded Software HAL Dateimanager Tetris PacMan 3D-Engine Pong PacMan 3D Kontakt |
HaDes XP - Die XBus Komponenten |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Dies ist eine Referenz aller XBus-Komponenten, die in der aktuellen Version HaDes Pro vorhanden sind und ihrer verfügbaren Port-Adressen. XBus-Komponenten, die in früheren Hardware-Versionen vorhanden waren, aber inzwischen ersetzt wurden, sind unter Alte XBus-Komponenten aufgeführt. XTimerPro:Der XTimerPro ersetzt XTimerXT und XTickClock und ist hierbei besonders genau und dabei sehr ressourcensparend (auf dem FPGA). Um den Timer zu starten, muss ein TickCount-Wert angegeben werden (auf Port 17). Das Timeout-Ereignis tritt ein, wenn der laufende Zähler diesen Wert erreicht. Um also eine bestimmte Zeit zu warten, wird zunächst der aktuelle Zählerstand geholt, die entsprechende Zeit addiert und die errechnete Summe anschließend als Timeout-Wert angegeben (Port 17). Der Timer kann jederzeit über das Bit 1 des Statusports deaktiviert werden (schreibe eine 0). Eine Aktivierung ist aber nur über Port 17 möglich. Zur Zeitmessung (XTickClock-Funktion) kann einfach Port 17 vor und nach einer Operation ausgelesen werden, die Differenz der Werte ist dann die Zeitdauer der Operation in µs. Interface:
XJtag:Überträgt Daten langsam und gemächlich über die bereitgestellte JTAG-Schnittstelle (Parallelport) zum PC. Interface:
XConsole:Steuert die Anzeige- und Bedienelemente, die auf dem TeBL Board angebracht sind. Grundlegend gilt: das höchste ("linkeste") Bit gilt immer für die/den am weitesten links angebrachten Schalter / LED / Segmentanzeige. Interface:
XPoison:Nur im Emulator: Diese XBus-Komponente wird nur vom Emulator implementiert. Kann benutzt werden, um gezielt Speicheradressen zu "vergiften", so dass jeder Zugriff zu einer Programmunterbrechung (impliziter Breakpoint) führt. Interface:
XPS2:Stellt ein einfaches Interface zur Kommunikation mit einem PS/2-Gerät bereit. Zu beachten ist, dass beim Start und nach jedem Resetvorgang die Bits ungültig sind und das Interface noch nicht benutzt werden darf. Es muss zunächst in einer Pollingschleife Bit 5 von Adr. 128 abgefragt werden, solange bis dieses 1 wird. Dann ist die Geräteinitialisierung abgeschlossen und es kann abgefragt werden, ob überhaupt ein funktionsfähiges Gerätangeschlossen ist (Bit 6) bzw. um welche Art von Gerät es sich handelt (Bit 7). Die XPS2 ist zweimal im XBus eingebunden (einmal für jeden PS/2-Port), und zwar an den Adressen 128-130 für Port 1 sowie 144-146 für Port 2. Interface:
XPix:Steuert die Grafikmodus-Ausgabe auf dem angeschlossenen VGA-Monitor. Dabei wird die Auflösung 640x480 Pixel mit den 16 Standard-VGA-Farben verwendet. Beachte, dass der Textmodus-Grafikspeicher in den XPix-Videospeicher bei den Adressen 1015808 (220 - 215) bis 1048575 (220-1) eingeblendet ist. Zugriffe auf diese Adressen durch den XPix sollten vermieden werden. Interface:
XSound:Erzeugt Mono-Sound in 8-bit Samplequalität mit variabler (einstellbarer) Samplerate. Die Ausgabe erfolgt als ein einziges Bit (sigma-delta DAC), das durch einen Tiefpass in eine Analogspannung gewandelt werden muss. Solange Eingabedaten vorhanden sind (diese werden in einem Puffer zwischen- gespeichert), wird auch Sound produziert. Der Status des Puffers kann über das Statusregister abgefragt werden, alternativ können auch Interrupts ausgelöst werden, wenn der Puffer langsam leerläuft (ca. 1/4 Füllstand). Interface:
XMMC:Liest und schreibt Daten von einer MultiMedia-Flash-Speicherkarte. Die XMMC ermöglicht einen wahlfreien Zugriff auf einzelne Bytes der Speicherkarte. Da MMC-Karten aber blockorientiert arbeiten (wobei ein Block aus 512 Byte besteht), enthält sie einen Cachhe für einen Block. Immer wenn die MMC-Adresse (Port 209) den gecachten Block verlässt, wird dieser auf die Karte geschrieben, falls er verändert wurde, Achtung: Die XMMC ist nicht hotplug-fähig. Nach dem Einstecken einer Speicherkarte ist der Prozessor (und der XBus) neuzustarten. Achtung: Die XMMC stellt keine Informationen über die Größe der eingelegten Speicherkarte bereit. Diese muss vom Anwender angegeben werden. Greift man auf Bytes der Karte zu, die über der realen Größe liegen, treten Command-Fehler auf. Interface:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |