FAQ |
Oft
gestellte Fragen - hier die Antworten
FAQ steht für "frequently
asked questions"
Was macht der PCI-Dekoder?
Unsere PCI-Dekoder-Programmierung (core) wurde zur Umsetzung des 32-bit PCI-Busses gem. PCI-spec.2.1 (2.3) auf einen 16-bit breiten I/O-User-Bus entwickelt, damit die Anbindung von einfachen Schaltungen unter PCI generell ermöglicht wird. Der Chip basiert auf einem 5 Volt PLCC84-IC (ispLSI1032E) und verarbeitet Bus-Geschwindigkeiten bis zu 33 MHz. Er unterstützt ausschließlich den 8/16-bit Zugriff auf die I/O-Ebene mittels Port-Access und bietet somit keine Interrupts, kein DMA und keinen MEMORY-Zugriff.
Was empfehen Sie, wie man den Chip hinsichtlich Recycling einsetzen sollte?
Wir empfehlen den Chip zu sockeln, da die Pin-Kapazitäten ohnehin mit in das PCI-Design bzw. Bus-Timing eingeflossen sind. Somit kann bei einer späteren Entsorgung eine recyclingfähige Demontage und Wiederverwendung des Bauteils stattfinden.
Wie hoch sind die max. Löt-Temperaturen?
Lt.
Hersteller sind die ICs in zwei "max. peak"-Stufen für MSL1 wie folgt
eingestuft:
Bei
RoHS-konformen Bauteilen mit grüner Etikette max. 245 +0/-5°C
Grad Celsius. (-70LJN)
Bei
RoHS-konformen Bauteilen mit gelber Etikette max. 225 +0/-5°C Grad
Celsius. (-100 LJ)
Bei
bleihaltigen Bauteilen ohne Etikette max. 225 +0/-5°C Grad Celsius.
(-70 LJ, -100LJ)
Wie kann ich den Hersteller von diesem IC erreichen?
In dringenden Fragen wenden Sie sich bitte direkt an die Firma Lattice: techsupport@latticesemi.com
Sollte man den PCI-Dekoder jetzt noch für Neuentwicklungen einsetzen?
Da wir seitens des Herstellers keine bindende Auskunft zu einer nachhaltigen Fertigung erhalten, ist eine Zusage zur Lieferfähigkeit leider nicht möglich. Einen 100%igen Ersatztyp wird und kann es nicht geben, da Nachfolge-ICs der ISP-Familie nicht über die gleichen Eigenschaften verfügen bzw. sich technisch und physikalisch zum ispLSI1032E unterscheiden. Neue Entwicklungen halten wir mit diesem Dekoder nicht mehr für zeitgemäß, da bereits ein neuer PCI-Bus von der PCISIG (PCI-Express) vorgestellt wurde. Dieser serielle PCIe-Bus ist zu unserer, parallelen Bus-Technik leider inkompatibel (gilt nicht für Rechner, die neben dem PCI-Express auch noch einen normalen, 32-bit 5Volt PCI-Slot auf dem Mainboard anbieten).
Wird KOLTER ELECTRONIC an dem jetzigen PCI-Dekoder/Design weiter festhalten?
Ja, so lange es geht. Um etwas Ruhe und Kontinuität in den Ab- und Ankündigungswahn der selv-made-Spezifikationsspezialisten zu bekommen, ist es manchmal dienlich, an älteren, aber dafür sicher etablierten Dingen festzuhalten und sich nicht dem technologischen Übereifer sowie der marktstrategisch verordneten Gier zu unterwerfen. Solange es die rechtliche Lage zulässt und es den CPLD-Chip von Lattice noch gibt, werden wir diesen Chip als PCI-Dekoder weiterhin anbieten können. Da unser Dekoder in über 99,95% aller Rechnermodelle und Mainboards keinerlei Probleme verursacht, werden wir an der jetzigen 3.0 Revision festhalten. Eine Designänderung ist weder notwendig, noch geplant.
Gibt es eine allumfassende Webseite zu PCI?
Ja, hier: http://www.pcisig.com
Unterstützt der PCI-Dekoder auch die PCI 3.0 Spezifikation ?
Nein. PCI 3.0 ist hauptsächlich eine Erweiterung bzw. Änderung auf 66 MHz Bus-Clock, bei gleichzeitiger Abkündigung der 5 Volt Versorgung auf 3,3 Volt. Da unser PCI-Dekoder Chip nur mit 33 MHz und 5 Volt betrieben werden kann, ist für dessen Einsatz die PCI 2.1 Spezifikation weiterhin elektrisch maßgebend. Ob sich die PCI 3.0 Spezifikation in Zukunft durchsetzen wird, gestaltet sich zunehmend schwierig und bleibt abzuwarten. Fest steht, dass dieser Bus-Typ auf EMV-Störungen empfindlicher reagiert, da der Störabstand von 5 zu 3,3 oder gar 1,5 Volt Signalen entsprechend kleiner ausfällt. Das dürfte für viele industielle Anwendungen (bei 10 V/m beaufschlagter Störfeldstärke) ein zusätzliches k.o.-Kriterium darstellen und auch bei schnellen Transienten (sog. Bursts) einige Probleme bei der EMV-Abnahme aufwerfen.
Private Anmerkung: Der Verwirrung nicht genug, wird bereits mit PCI-X 2.0a (Mode 2) und PCI 3.0 ein weiterer Standard mit 3,3 und 1,5 Volt Bus-Technologie vorgestellt. Wie man in der Kürze von Ab- & Neuankündigungen überhaupt noch Geld verdienen kann, ist mir schleierhaft, zumal die PCISIG jetzt weitere Busse vorstellt, die sich technisch und physikalisch von der bisherigen Linie völlig unterscheiden.
Wo finde ich ein gutes Forum, wo PCI-Probleme behandelt werden?
Hier: http://www.heise.de/newsticker/foren...
Unterstützt der PCI-Dekoder auch die neue PCI-Express (PCIe) Technologie?
Das kommt ganz darauf an, wie diese Frage gemeint ist. Unser PCI-Dekoder unterstützt weder 64-bit breite 3,3 Volt Busse, noch serielle Busse, oder die 4- bis 16-fache PCI-Geschwindigkeit. So können beispielsweise der PCI-Dekoder, oder unsere PCI-Karten, nicht in Systemen oder auf Mainboards betrieben werden, deren PCI-Slot-Taktung von derzeit 33 MHz (Standard lt. PCI 2.1 Spezifikation) überschritten wird. Manche Mainboard-Hersteller haben dies erkannt und bieten neben den hochgetakteten PCIe-Bus (bsp. für neue Grafikkarten...) auch normale PCI-Busse mit 32-bit in 5-Volt Technik an. Bei diesen Systemen sollte man sich jedoch zuvor genau vergewissern, ob und wie Einsteckkarten darauf reagieren und ob diese Slots auch wirklich 100% abwätskompatibel zu PCI 2.x sind. Siehe auch: http://www.heise.de/newsticker/result...
Was ist PCI-Express ?
PCI-Express ist ein erweiteter, neuer PCI-Bus-Standard für Peripheriekarten, insbesonders für zukünftig entwickelte Grafikkarten. Es ist quasi ein "vor- und zwischen- geschaltetes" Bus-System, dass sowohl hochgetaktete PCI-Busse (x16-Variante), lokale I/O-Busse, normale 33 MHz Standard-PCI-Busse, oder auch serielle Hochgeschwindigkeitsschnittstellen mit Punkt-zu-Punkt-Verbindung mit einem Switcher zur Vergügung stellt. PCI-Express taktet derzeit mit 2,5 GHz. Da die Übertragung aus "technischen Verwaltungsgründen" mit nunmehr 10-bit-Paketen erfolgt, ergibt sich eine theoretische Netto-Datenrate von ca. 2 Gbit/s. Mehr dazu unter: http://www.heise.de/newsticker...
Je nach Mainboard habe ich unterschiedliche Zugriffsgeschwindigkeiten am PCI-Dekoder. Kann es bei manchen Boards auch Timing-Probleme auf dem PCI-Bus geben?
Ja, natürlich. Diese z.T. merkwürdigen Phänomene sind mit großer Wahrscheinlichkeit auf fehlerhafte oder zu kritisch eingestellte Hardware zurückzuführen. Der Grund hierfür ist, daß manche Mainboards bereits Probleme mit dem eigenen Bus-Timing haben, BIOS-Parameter falsch gewählt wurden, oder die Hardware teilweise bzw. komplett übertaktet ist. Diese Probleme werden beispielsweise durch Fehler bei schnell aufeinanderfolgenden I/O-Zugriffen auffällig - soll heißen - wenn der PCI-Bus mit der hierzu angesprochenen (adressierten) Hardware in einer Schleife permanent frequentiert wird. Auch wenn die Hardware unter DOS oder Windows scheinbar sauber läuft, sagt dies nichts über die tatsächliche Stabilität der Rechner-Hardware und/oder deren Konfiguration aus. Um Anfängerfehler zu vermeiden, stellen Sie bitte die allgemeinen BIOS-Setup-Einstellungen auf die (konservativen) BIOS-Defaults. Bei einem fehlerhaften oder veralteten PCI-BIOS hilft möglicherweise ein aktuelles Update. Fragen Sie bitte Ihren Händler oder den Board-Hersteller nach neuen BIOS-Updates für Ihr System und sichern Sie sich zuvor die alte Version samt Datenstamm auf einen anderen, systemunabhängigen Datenträger, bevor Sie ein Update vornehmen. Doch Vorsicht: Auch ein scheinbar funktionstüchtiges Betriebssystem, daß mit fehlerhafter oder potentiell fehlerhafter Hardware scheinbar störungsfrei betrieben wird, stellt auf Dauer ein erhebliches Sicherheitsrisiko dar. Um hier die Zuverlässigkeit nachweisbar zu erhöhen, müssen diese Systeme einem langanhaltenden Stress-Test mit großen Temperaturschwankungen bei verschiedenartigen Konfigurationen mit diversen Betriebssystemen und Prüfprogrammen unterzogen werden.
Unterstützt der PCI-Dekoder auch die BIOS-Einstellung: "PCI Bus Parity Checking"?
Nein. Dieses Flag muss im BIOS vor der Inbetriebnahme abgeschaltet werden. Im Untermenue "Advanced" bzw. "Advanced System Configuration" muss dazu das "PCI Bus Parity Checking" auf DISABLED umgestellt werden, da ansonsten ein schwerer Hardwarefehler (gefolgt von einem Systemabsturz bzw. Systemhalt) beim Zugriff auf das pci-device ausgegeben wird.
Der PCI-Dekoder wird nicht erkannt bzw. installiert. Gibt es eine Lösung?
Bitte sehen Sie dazu erst unter "Installation, BIOS, ESCD oder Betriebssystem" nach.
Welche BIOS-Einstellungen sind als kritisch zu betrachten?
Insbesonders werden folgende BIOS-Einstellungen als kritisch gewertet: Plug & Play Aware OS oder Plug & Play O/S oder PnP-Mode, PCI 2.1 Compilance, PCI Arbiter Mode oder PCI Arbit. Rotate Priority, PCI Burst, PCI Burst Write, PCI Bus Parity, PCI Byte Merge, PCI Clock Frequency, PCI Delayed Transaction, PCI Latency Timer, PCI Dynamic Bursting, PCI Dynamic Decoding, PCI Parity Checking, PCI Read Burst WS...
Wo finde ich Informationen, was die BIOS-Einstellungen bedeuten?
Hier:
http://www-user.tu-chemnitz.de/~mad/BiosKompendium
und
hier: http://www.pchilfe.org/bios.htm
Wo finde ich eine einfache Einweisung zu PCI?
Hier: http://www.fh-augsburg.de/multimedia/vorlesungen/dvs/fachbericht/Pci.PDF
Ich habe nun einen Rechner, auf dem der PCI-Dekoder nicht funktioniert. Ist das möglich?
Ja, auch das ist prinzipiell möglich, da es immer wieder Konstellationen in Rechnern gab und geben wird, die inkompatibel sind, oder teilweise nicht der konventionellen PCI-Spezifikation entsprechen, Bus-labil (bsp. Konflikte bei der Busarbitrierung) und/oder falsch getaktet bzw. übertaktet sind, oder im BIOS noch erhebliche Ungereimtheiten im PnP- und PCI-Mechanismus aufzeigen, die dann später mit div. BIOS-Updates z.T. behoben werden können. Ich selber kenne keinen vergleichbaren PCI-Target-Chip, der mit allen, auf der Welt hergestellten Mainboards 100%ig funktioniert. Inkompatibilitäten (insbesonders für zukünftige Systeme, deren Mainboards und PCI-Chipsätze noch niemand kennt) müssen somit leider akzeptiert werden. Lesen Sie dazu den ct´ Bericht zum Fehler in der PCIe- ICH6-Southbridge. In diesen Fällen empfehle ich den Einsatz eines anderen, funktionierenden Systems, da sich eine Designänderung des PCI-Dekoders negativ auf bestehende Systeme und Serien auswirken würde. Diese "heißgestrickte" Revision wäre dann wiederum zu allen Vorgängermodellen möglicherweise inkompatibel. Die Folge wäre ein unendliches Revisions-Chaos, dass niemandem dient. Weitere Informationen finden Sie hierzu unter: http://www.pci-card.com/pciboards.html
Wo finde ich weitere Informationen in Bezug auf PCI, PCIe (PCI Express) und PCI-X?
Hier: http://www.elektronik-kompendium.de/sites/com/0310091.htm
Ist PCI Express wirklich schneller ?
Diese Frage fällt nicht mehr in Bereich von KOLTER ELECTRONIC und ist für unsere spezielle MSR-Technik völlig unerheblich. Oft ist in der vielversprechenden Werbung wiedermal "Schein" mehr als "Sein": Nachzulesen in einem Testbericht der PCWELT.
Kann es mit PCI-Express Probleme geben ?
Ja. Mit einer Neuanschaffung würde ich desshalb noch mindestens 1-2 Jahre abwarten, bis die massiven Kinderkrankheiten von den Chip-Set- und Mainboard-Herstellern behoben wurden. Zum Glück gibt es ja noch genügend normale Rechner, deren Busse heute ausgereift sind und dem üblichen 32bit-5Volt-33MHz PCI-Standard entsprechen. Ob möglicherweise bei einer Fehleinschätzung des Massenmarktes der PCI-Express später wieder durch einen AGP-Express o.ä. abgelöst wird, kann ich leider nicht vorhersehen. >>> Kristallkugel fragen!
Wo finde ich mehr zu PCI-Express?
Bitte lesen Sie hier: http://www.idgverlag.de/index...
Kann es mit Hyper-Threading-Technologie und PCI-Bussen Probleme in der Datenübertragung geben?
Ja, alles kann, aber nichts muss müssen.
Wo finde ich ein Hilfe-Forum, wenn es um PCI-Probleme geht?
Hier: http://powerforen.de/forum/archive/index.php/f-29-p-66.html
Wo finde ich eine ausführliche Beschreibung, was PCI eigentlich ist?
Hier: http://www.weblearn.hs-bremen.de/risse/RST/SS01/PCI_Bus/Presentation.pdf
Wie kann ich eine Erweiterung
am PCI-Decoder selber vornehmen?
Welche Lizenzen sind
dazu nötig?
Der PCI-Core umfasst die Synario-Lattice-Dateien (vers. 7.01) für den ispLSI1032E, so wie wir ihn auf der Proto3-PCI Karte einsetzen. Wenn Sie unseren klibdrv-Treiber nutzen möchten, müssen Sie sich beim Hersteller Entech Taiwan zusätzlich registrieren lassen. Wenn Sie den Core kaufen, erhalten Sie alle Core-Schaltpläne, die im PCI-Design zu unserem Decoder verwendet wurden. Insgesamt wurden 28 Unter-Schaltpläne entwickelt, die den gesamten PCI-Core ausmachen. Einen Support zum Design bieten wir jedoch aus Zeitgründen nicht an, würden Ihnen aber in unseren Räumen bei der Installation Ihres Rechners helfen, damit Sie den Core mit Synario bearbeiten und compilieren können. Alle Rechte am Core verbleiben auch nach einem Verkauf des Cores bei Kolter Electronic. Ein Wiederverkaufsrecht des Cores an Dritte wird nicht eingeräumt, Sie können aber den Core verwenden und/oder abändern sofern Sie ihn nur für eigene Produkte verwenden. Zusätzlich muss eine rechtsgültige Geheimhaltungserklärung unterschrieben werden.
Kann der PCI-Dekoder-Chip auf einen anderen CPLD umgestellt werden?
So einfach ist es leider nicht: Das Timing des 1032 PCI-Core ist von uns aus produktspezifisch angelegt, sodass eine Umstellung auf einen anderen Chip noch nachhaltige Designänderungen verlangen. Wieviel Zeit und Geld für eine Umstellung benötigt wird, ist im Vorhinein nicht kalkulierbar. Beispielsweise hat Lattice einmal den Herstellungsprozess geändert (der Chip ist teilweise um ca. 7% intern schneller geworden), und ich hatte einen sehr grossen Aufwand von ca. 180 Arbeitsstunden, um das Design wieder anzupassen. Wie Sie sehen, ist eine Zeitanalyse nur sehr schwer vorhersagbar. Mit etwas Glück hätte es auch in ein paar Stunden erledigt sein können, aber das weiss man bei Entwicklungen vorher nie.
Können weitere Funktionen in den PCI-Decoder integriert werden?
Der jetzige Chip ist zu 98,6% ausgelastet. Natürlich kann man in einem anderen, komplexerern CPLD-Chip (bsp. ispLSI1048) noch eine Reihe zusätzlicher Erweiterungen implementieren. Das setzt jedoch voraus, dass Sie eine Lizenz zum PCI-Core kaufen und diese Änderungen selbst vornehmen.
Darf der ispLSI1032E PCI-Dekoder-Chip gesockelt werden?
Ja, der PCI-Dekoder muss sogar mit einem kapazitätsarmen AMP-PLCC84 Sockel (Bestellnummer der Fa. Tyco: 822473-7) gesockelt werden, da die Pinkapazitäten und Laufzeiten der Leiterbahnlängen mit in das PCI-Design eingeflossen sind. Würde man die IC-Fassung weg lassen, stimmt eventuell das Timing nicht mehr. Aus diesem Grund ist es auch ratsam, nur das von uns freigegebene PCI-Layout zu verwenden.
Was ist beim PCB-Design des PCI-Decoders zu beachten?
Bitte beachten Sie bei Ihrem Schaltungsdesign, dass laut PCI-Spezifikation pro Signal-Pin am PCI-Bus nur eine TTL-Last mit max. 10pF Leitungskapazität verwendet werden darf. Da bereits eine IC-Fassung Verwendung findet, was eigentlich nicht ganz der Spezifikation entspricht, ist es umso wichtiger, dass unser Schaltungs-Design zu 100% eingehalten wird, da es sich in dieser Form bestens bewährt hat und bisher keine nennenswerten Kompatibilitätsprobleme auf dem PCI-Bus verursacht. Ausser dem PCI-Dekoder dürfen keine weiteren Leitungen unmittelbar an den PCI-Bus angeschlossen werden. Auch unser PCI-Referenz-Layout (als PROTEL-Datei im Lieferumfang der PROTO-3 enthalten) ist nach Möglichkeit beizubehalten, da Änderungen in der Leiterbahnführung oder in der Leiterbahnlänge zu Fehlfunktionen im Timing führen können. Sie können Erweiterungen somit nur an den dafür vorgesehenen User-Bus aufschalten.
Benötige ich eine Bus-Terminierung für meine Folgeschaltung?
Wo die Schulweisheit aufhört, beginnt die Praxis. Die passive Bus-Terminierung hat zur Aufgabe, User-Bus-Signale am Leiterbahnenende gegen Masse oder Vcc ähnlich wie bei SCSI-Schnittstellen abzuschließen. Ohne diese Maßnahme bilden sich Signalreflexionen und Überschwinger an den Siganlflanken aus, die das Bus-System instabil werden lassen. Durch die hohe Busgeschwindigkeit können höhere Datenraten zwischen User-Bus und PCI-Dekoder erzielt werden, wenn die Terminierung entsprechend eingehalten wird. In der Regel wird am Ende jeder Datenleiterbahn ein 2k2 Widerstand nach GND gelegt (siehe PROTO-3). Je nach Layout muss der Widerstandswert verändert werden, da Leiterbahnkapazitäten- und Induktivitäten das Signalverhalten beeinflussen. Bei Verwendung mehrerer Peripherie-Controller (bsp. µPD8255), sind schnelle Bus-Treiber vorzusehen. Interessanter Link zum Thema: http://www.elektronik-kompendium.de...
Wofür gibt es den DIP-Schalter Nr.4 neben dem PCI-Dekoder?
In den neueren PCI-Spezifikationen 2..1 bzw. 2.3 wurden lt. PCISIG diverse Ungereimtheiten geklärt, die bei Version 2.0 ein Hauptgrund für das häufige Versagen von Plug&Play waren. Die PCI-Version 2.1 bzw. 2.3 ist abwärtskompatibel zur Version 2.0, jedoch nicht umgekehrt. Mainboards nach PCI 2.0 oder 2.1 Standard können zum Teil neuere PCI-Karten nicht ordnungsgemäß zuordnen. Dies liegt u.a. daran, dass eine der PCI-Konfigurationstabellen (pci-class-codes) im BIOS ständig erweitert wird, um neue Karten-Familien mit in die automatische Erkennung aufzunehmen. Beispielsweise gibt die <Base-Class 11h> an, dass es sich um ein <Data acquisition and signal processing controller> handelt (wie beim Kolter Electronic PCI-Dekoder verwendet). Diesen Eintrag gab es unter PCI2.0 nicht und das BIOS bzw. Betriebssystem hat in diesem Fall eventuell Probleme, die PCI-Karte richtig zuzuweisen. Die Palette reicht hier von "funktioniert reibungslos" über "läuft instabil" bis "funktioniert überhaupt nicht". Mit dem DIP-Schalter 4 kann das Problem umgangen werden: Steht er auf OFF, ist PCI2.0 - steht er auf ON, ist PCI2.1/2.3 angesagt.
Wofür sind die DIP-Schalter 1...3?
Diese "Unart" habe ich mir zur einstellbaren Vergabe der Device-Identität (kurz DID) erlaubt, da ich der Überzeugung bin, dass es durchaus Sinn macht, einen PCI-Controller für bis zu 8, oder mehr, Device-Nummern variabel einsetzen zu dürfen. Normalerweise werden diese DID-bits intern "hart-verdrahtet" und sind durch den Anwender nicht zugänig bzw. abänderbar. Die DID trägt zur besseren Unterscheidung von verschiedenen Geräten der Treiberinstallation bei.
Was sind Device-ID und Vendor-ID?
Diese spezifischen Register dienen in erster Linie zur Unterscheidung von PCI-Einheiten. Die IDs bilden eine eindeutige Kennung für ein PCI-Gerät, die es z.B. dem Betriebssystem ermöglichen soll, ein Gerät mit einem passenden Treiber zu verknüpfen. Die gleichen Identitätsangaben finden sich auch im Installationsscript (INF-Dateien) für den Windows-Gerätetreiber wieder. Ausschliesslich die PCISIG-Group (www.pcisig.com) ist für eine weltweite Eintragung einer Vendor-ID zuständig bzw. befugt. Die Eintragung ist kostenpflichtig und liegt zur Zeit bei 3000,- US$ pro Jahr. Nach der Erkennung werden die Geräte während des bootens als PCI Device auf der Konsole im Listing angezeigt und in die ESCD-Tabelle (Extended System Configuration Data) eingeschrieben.
Warum werden die Adressleitungen A0 und A1 nicht verwendet?
Bei unserem PCI-Decoder wird nur ein 16-bit User-Bus zur Verfügung gestellt. A1 gibt es nicht, da von einem 32-bit Datenwort immer nur die unteren 16-bit adressiert werden können. A0 wird durch zwei PCI-Decoder-Signale nachgebildet: CSL und CSH. Das hat den Vorteil, das sowohl 8-bit als auch 16-bit Zugriffe mit einem I/O-Port-Befehl erzeugt werden können. ADR2 und ADR3 können quasi als A0 und A1 herangezogen werden, um Ihren Baustein zu adressieren, nur die Adressen sind dann nicht mehr kontinuierlich fortgeführt bzw. immer um 1 fortlaufend inkrementiert. Die 128 möglichen I/O-Adressen, die sich daraus ergeben, sind innerhalb des vergebenen Adressraums (xxxx0 - xxFF hex) indirekt ansteuerbar. Sie müssen die Adressen wie beim ISA-Bus über ein PAL noch ausdekodieren. Dazu ist in den PROTO-3 Unterlagen ein Beispiel mit einem GAL22V10 samt JEDEC-Quellcode (Lattice Synario-5.01 Projekt) aufgeführt. Die Adresslage der ausdekodierten CS-Signale betreffen ausschliesslich das zu programmierende GAL22V10 und nicht den PCI-Decoder. Bei der Bus-Dekodierung werden vorhande Adressbereiche unterteilt um mehrere Zusatzbausteine ansprechen zu können. Die hier verwendete GAL-Gleichung dient nur als Experiment-Beispiel und muss je nach Anforderung Ihrer Harware bzw. Adressvergabe noch selber angepasst werden.
Was heisst Daten/Adressen Multiplex-Prinzip?
Theoretisch besitzt der 32-bit PCI-Bus 2x 32 = 64 Leitungen. Er benötigt jeweils 32-bit für die Daten- und 32-bit für den Adressbus. Durch Multiplex-Betrieb (PCI-ALE Signal) werden 32 Leitungen eingespart. Die Datenpakete werden hintereinander übertragen: zuerst die Adresse und in einem zweiten Taktzyklus das Datenwort.
Wir haben jetzt einen PC, der offensichtlich keinen weiteren Adressraum für neue Karten mehr zulässt. Ist es möglich, den Adressraum des PCI-Dekoders zu verkleinern?
Nein, dieser ist bereits schon sehr klein gewählt, sodass sich viele Einheiten diesen Bereich aufteilen können. Eine Reduktion bzw. Veränderung der Ressourcenbereiche ist zudem aus Kostengründen (sehr hoher Zeitaufwand) nicht sinnvoll. Die Blockgröße beträgt fest 255 Bytes (0FFh) und ist aus technischen Gründen leider nicht veränderbar bzw. würde einer Neuentwicklung gleichkommen. Wenn Ihr PC die Karte beipielsweise bei Cxxx anlegt, so gilt zu vermuten, dass weitere Ressourcen oberhalb dieser Adresse (bsp. Dxxx) noch frei verfügbar sind, da das PCI-BIOS alle Devices hintereinander automatisch anordnet (enum). Das PCI-BIOS ist grundsätzlich für die Zuteilung von Ressourcen, zu denen auch die I/O-Adressräume gehören, zuständig. Dazu muss in den PCI-BIOS-Einstellungen des PCs das PnP-Flag auf NO gestellt sein (default), damit die Vergabe von Ressourcen durch den PCI-Bus mittels Scan-Vorgang stattfinden kann und entsprechende Bereiche auf die jeweiligen Devices (config-space der PCI-Karten) zurückgeschrieben werden können. Erst nach diesem Scan-Vorgang sind gültige Adressräume auf den Karten verfügbar. Sollte das PCI-BIOS beim Stand von Cxxx hier keine I/O-Adressbereiche mehr freigeben wollen, gilt ehr ein Fehler im PCI-BIOS zu vermuten, oder das alle verfügbaren Ressourcen bereits vergeben sind. Letzteres habe ich in der Praxis noch nie erlebt. Bitte beachten Sie, dass sich Speicherbereiche von PCs in MEM-Space und I/O-Space aufteilen, so das quasi zwei Adressbereiche parallel in einem System zur Verfügung stehen. Unterschieden werden diese lediglich durch das chip-select-Signal. Unser PCI-Dekoder hingegen unterstützt ausschließlich nur den I/O-Adressraum (0000-FF00h) und somit kein MEM-Space o.a. Bereiche.
Warum gibt es keinen Interrupt-Eingang am PCI-Dekoder?
Leider sind für die I/O-Dekodierung bereits 98,6% der ispLSI1032E-Resourcen verbraucht worden, sodass die Serialisierung der Interruptverarbeitung nicht mehr in den Chip passt. Eine Interruptverarbeitung würde weitere 30% benötigen.
Kann ich mit dem PCI-Dekoder neben I/O auch MEM und DMA verwalten?
Nein. Der PCI-Dekoder ist nur für reines Port-I/O-handling ausgelegt.
Gibt es eine kurze Beschreibung der Anschlüsse bzw. Signale?
Ja, hier: pcintern.html
Ich möchte den PCI-Bus um weitere Steckplätze erweitern. Haben Sie einen Tip?
Ja, von INTEL®. Sehen Sie hier: http://www.intel.com/design/bridge
Wo finde ich das JTAG-Kabel um den JED-File in den ispLSIxxxx zu laden?
Sie können den JED-File mit einer Lattice® Download-Software direkt über die LPT-Schnittstelle zum ispLSI-Chip laden. Das Hersteller-Manual finden Sie dazu hier: isp_dlcable.pdf
Ich möchte einen 8255 Port-Baustein am PCI-Dekoder anschliessen. Muss die Reset-Leitung angeschlossen werden?
Ja, der 8255 (bzw. µPD71C55) benötigt einen Reset, damit die interen Register bei Stromzufuhr entsprechend zurückgestellt werden (siehe 8255 Datenblatt). Da der PCI-Reset (vom Rechner-Bus) aber schon mit dem gesamten FANOUT des PCI-Dekoders belastet ist und kein zusätzliches Eingangsgatter laut PCI-Spezifikation mehr zulässt, muss eine eigene Reset-Schaltung dafür Sorge tragen, bei einem Power-Up einen Reset auf der Karte zu erzeugen. Über ein RC-Glied wurde dazu ein Eingang am GAL22V10 genutzt, um in dem Fall, wo ein 8255 angeschlossen wird, einen Ausgang mit Synario umzuprogrammieren und den Reset-Ausgang anzuschliessen. Beispielsweise kann man dann CS3 in RESET-OUT umtaufen - und/oder andersweitig benutzen. Der RESET-OUT sollte am Besten noch mit VCC vom GAL intern verknüpft werden und dann erst zum 8255 (geBuffert) geleitet werden. Die Kondensatoren C6 und C7 können wahlweise bestückt werden, je nachdem, wechen Reset-Pegel man erzeugen möchte (bei Power-Up von low-nach-high oder high-nach-low). Im Schaltplan mussten dazu zwei Kondensatoren eingezeichnet werden, damit man im Layout eine entsprechende Auswahl zur Bestückung der Kondensatoren treffen kann. Hierzu können die Lade-/Entlade-Widerstände R1 und R2 entsprechend vertauscht werden bzw. mit anderen Werten längere oder kürzere RC-Ladezeiten einstellen.
Die GAL-Gleichung aus Ihrem PROTO3-Beispiel passt nicht zu meiner Hardware. Was muss ich tun?
Selbst ist der Mann. Das GAL ist nur als ein hypothetisches Beispiel zu verstehen. Bei der Entwicklung wurde davon ausgegangen, dass jeder etwas anderes mit der PROTO3 Karte entwickeln (dekodieren) möchte und es daher auch keine universelle Chip-Select-Generalschaltung geben kann. Im Prinzip hätte man das GAL auch leer lassen können. Da es aber schöner ist, wenn eine LED oder bereits fertige Chip-Selects zu Testzwecken zur Verfügung steht, wurde diese "Minimal-Logik" gewählt und einfach so als Beispiel belassen wie sie bei uns funktioniert hat. Es steht jedem Frei, diese Gleichungen für seine Zwecke abzuändern oder völlig neu zu programmieren.
Sollte der Buffer am 22V10-Ausgang der PROTO-3 nicht besser ein Inverter sein, da der 8255 Reset active high ist?
Je nach nachgeschaltetem Peripheriebaustein benötigt man einen LOW->HIGH oder HIGH->LOW Reset mit unterschiedlichen Zeiten. Aus diesem Grund wurde hier nichts von uns vordefniert und einen Inverter kann man schnell noch nachträglich in die GAL-Gleichung des 22V10 einbringen. Der Reset-Ausgang wurde nicht speziell für einen 8255 Chip entwickelt.
Wo finde ich die JEDEC-Files zu den verschiedenen PROTO3-GAL22V10 Beispielen?
Die 22V10 JEDEC-Files können Sie hier herunterladen: PROTO3-GALS.ZIP
Kann man eine allgemeine Aussage treffen, ob LS, HC oder besser AHCT oder F-Typen am User-Bus verwendet werden sollen?
Bei OUTPUT empfehlen wir den Einsatz von SN74HC374N (Ti) und bei INPUT empfehlen wir den Einsatz von SN74F245N (Ti). Zur CS-Erzeugung empfehlen wir den Einsatz eines ispLSI1016E mit 80 MHz. Beispiel: PCI-1616 Karte.
Kann man den Oki 82C55A-2VJS direkt am PCI-Decoder verwenden?
Theoretisch ja. Der Oki 82C55A-2VJS (8 MHz) ist aber wahrscheinlich etwas zu langsam, sodass das dekodierte CS-Signal des GAL22V10 bereits zu kurz ist und es zu Aussetzern oder fehlgeleiteten Daten kommen kann. Bei Verwendung eines ispLSI1016E ist man bei der CS-Erzeugung felxibler und kann ggf. den CS für ältere Bausteine künstlich mit Flip-Flops verlängern.
Wenn ich mit meiner Oszilloskop-Messprobe beipielsweise auf PCI_ALE messe, kann es sein, dass manche read/write Befehle nicht mehr ordnungsgemäß ausgeführt werden, oder mein PC stürzt ab, oder es passiert etwas anderers unvorhersehbares. Ist das normal?
Ja, dass kann passieren, da die Anschlüsse sehr empfindlich auf zusätzliche bzw. kapazitive Last der Messprobe reagiert (insbesonders bei billigen 1:1 / 1:10 Tastköpfen). Das anlegen einer Messprobe bzw. eines unterminierten Kabels, kann das Signal verschleifen, sowie Reflektionen verursachen, die dann als "Überschwinger" oder "Bananen-Rechteck" auf dem Oszilloskop sichtbar werden. Bei der nachfolgenden Dekodierung werden somit Timing-Fehler verursacht, da keine Synchonität der zeitlichen Abläufe der einzelnen Singnale untereinander mehr gegeben ist. Diese Timing-Fehler können dann bei ungünstigen Signal-Konstellationen nicht nur read/write-Befehle "verschlucken" oder auf dem PCI-Bus wirre Daten absetzen, sondern auch einen PC-Absturz verursachen.
Wenn ich mit einem Finger auf die Anschlusspins des PCI-Dekoders während des Betriebs lange, stürzt mein PC ab. Ist das normal?
;-)) Gegenfrage: Finden Sie es normal, dass Sie mitten im Betrieb auf der Platine herumfingern? Trotzdem: Bei uns konnte dieses Phänomen nicht provoziert werden; selbst dann nicht, wenn mit mehreren, fettigen oder naßen Fingern zugleich auf verschiedenen bzw. allen Pins des Dekoders herumgelangt wurde. Wenn allerdings mit der Berührung des Fingers eine statische Entladung stattfindet, kann nicht nur der PC abstürzen, sondern zudem der PCI-Dekoder und/oder das Mainboard zerstört werden. Auf diese Art "Fehlersuche" sollte also im eigenen Interesse besser ganz verzichtet werden.
Ich habe mir die Entwicklung mit dem PCI-Dekoder leichter vorgestellt. Gibt es noch einfachere Bausteine?
Nein. Noch einfachere PCI-Bausteine kenne ich nicht. Es gibt sie nur noch komplexer. Entwicklungsarbeiten an PCI-Schaltungen sind nunmal alles andere als trivial. Ein IT-Studium sowie eine 10-jährige Praxis in der PC- und Digitaltechnik sollte für Entwicklungen am PCI-Bus mindestens vorhanden sein.
Wo finde ich eine super einfache PCI-Beispielschaltung?
Einfacher geht es wirklich nicht mehr. Sehen Sie hier: http://www.pci-card.com/proto3test.html
Kann man als Kunde den PCI-Chip mit einer eigenen Vendor-ID (Subvendor-ID?) und anderen Device-IDs programmieren lassen?
Eine Vendor-ID (VID) können und dürfen wir nicht vergeben. Das kann nur die PCISIG®. Die Vergabe bzw. Eintragung kostet Sie jedes Jahr ca. 3000 US$ und ist an die PCISIG® direkt abzuführen. Alles weitere, wie, was und wo Sie alles eintragen lassen können, finden Sie unter: http://www.pcisig.com
Ist die Umprogrammierung der VID im ispLSI1032 nur einmal für alle folgenden Bestellungen zu bezahlen, oder für jede Bestellung erneut zu zahlen?
Ist eine echte VID durch die PCISIG® vergeben, kommen nochmals (einmalig) 250,- EURO für die Änderung im Chip hinzu. Da der Chip fortan mit Ihrer eigenen VID programmiert wird, müssen Sie die xxx.INF Dateien für Ihre Anwendungen und Treiber noch selber anpassen, da unsere Treiber und Installationsscripte auf die 0x1001h KOLTER ELECTRONIC VID fest ausgerichtet sind. KlibDrv-Treiberanpassungen zu Ihrer VID sind im Preis nicht enthalten und ausserdem durch uns nicht möglich. Hierzu müssen Sie dann direkten Kontakt mit dem Hersteller des Treiber aufnehmen. Siehe: http://www.entechtaiwan.com
Wo bekomme ich gute Literatur zu PCI?
Hier: http://www.mindshare.com/pci/pci_overview_main.html
Wo finde ich allgemeine Informationen zum PCI-Dekoder?
Allgemeine
Informationen Teil 1
Allgemeine
Informationen Teil 2
Kann ein inkompatibler Rechner Schaden durch den PCI-Dekoder nehmen?
Nein, dass ist jedenfalls bisher noch nicht vorgekommen. Da es sich bei einer Inkompatibilität i.d.R. um einen Timing-Fehler und nicht um Überlastungen im klassischen Sinn handelt, ist ein möglicher Schaden durch unseren PCI-Dekoder (dem logischen Verständnis nach) ausgeschlossen. Die Chip-Anschlüsse des ispLSI1032E besitzen eine Eingangskapazität von nur 8pf, sodass eine Bus-Überlastung (im Normalbetrieb bei 33 MHz) ebenfalls ausgeschlossen werden kann. Mögliche Schäden sind wohlmöglich auf andere Ursachen zurückzuführen, so zum Beispiel: ESD-Entladung beim Einsetzen der Karte durch den Kunden, Nichtbeachtung der PCI-Spezifikation bzw. der 5 Volt und 33 MHz Vorgaben durch den Mainboard-Hersteller, Nichtbeachtung des PROTO3 Referenz-Layouts, o.a. Design-Fehler in Schaltung und Layout...
Folgende Fehlerbilder weisen
i.d.R. auf Inkompatibilitäten im PCI-Bus-Timing des Rechners hin:
- Rechner bootet nicht mehr
oder stürzt beim Booten bzw. später ab
- Vendor und/oder Device-ID
werden nicht richtig erkannt, folglich schlägt die Treiberinstallation
fehl
- Rechner bootet, aber es
ist kein Zugriff auf das Device möglich (gültige I/O-Adresse
fehlt)
- Zugriffe sind nur zeitweise
richtig bzw. erfolgen in unregelmäßigen Abständen mit Fehlern
Mögliche Lösung:
- vor Verwendung Default-Einstellung
im BIOS vornehmen und PnP-Flag auf "NO" stellen
- anschließend ESCD-Reset
durchführen und Ressourcenvergabe prüfen
- CPU und FSB keinesfalls
übertakten (33 MHz PCI-Bus Takt einhalten)
- Netzteil mit ausreichender
Stromversorgung verwenden und auf Kurzschlüsse achten
- ggf. benachbarte PCI-Karten
entfernen und/oder einen anderen PCI-Slot ausprobieren
- Hyperthreading ausschalten
und/oder andere "Bus-Beschleuniger" im BIOS abschalten
- wenn nichts geht: Rechnermodell
wechseln, da vermutlich eine Inkompatibilität vorliegt
Achtung:
Bei Übertaktung des
Rechners bzw. PCI-Busses kann jedoch der PCI-Dekoder Schaden nehmen. In
diesem Fall könnte ein anschließend defekter PCI-Dekoder wiederum
Teile im Rechner beschädigen. -> Ursache -> Wirkung -> Folge-Ursache
-> Folge-Wirkung...
Ich benötige das Timing der read-Zyklen. Gibt es dazu ein Diagramm?
Leider nein. Das Timing der I/O-read-Zyklen wird letztendlich durch das jeweilige Mainboard, bzw. dessen PCI-South-Bridge vorbestimmt. Da es hier große Unterschiede gibt, wann und wie lange ein data-valid nach dem CS-Signal herrscht, ist ein Diagramm nicht mehr sinnvoll. Falls Sie das generelle Timing vom PCI-Bus benötigen, müssen wir Ihnen diese Informationen leider aus lizenztechnischen Gründen vorenthalten. Die PCI-Dokumentation (inkl. PCI-Timing) können Sie nur bei der www.pcisig.com erwerben und herunterladen. Abzüge (auch nur auszugsweise) sind strafbar und werden von uns abgelehnt.
Wie schnell ist die Repitiergeschwindigkeit von I/O-Zugriffen?
Dies hängt maßgeblich vom Mainboard ab, dessen Chipsatz den PCI-Bus physikalisch zur Verfügung stellt. Neben dem Mainboard spielen aber auch noch PCI-BIOS, Betriebssystem und Programmiersprache eine wesendlichen Rolle.
Gibt es Grenzen bezüglich der Repitiergeschwindigkeit von I/O-Zugriffen?
Ja. Die Repitiergeschwindigkeit sollte keinesfalls unter 400ns liegen, da ansonsten Überschneidungen von Daten (sog. Datenfragmente) möglich werden.
Wie lange ist ein I/O-read-Zyklus?
Ein 33MHz PCI-Takt entspricht etwa 30ns. Bei 12 Takten ist der I/O-read-Zyklus bei unserem Dekoder abgeschlossen. 12 x 30ns = 360ns.
Besitzt der PCI-Dekoder eine Wait-State-Schaltung?
Nein. Der PCI-Dekoder ist permanent im "Free-Run"-Modus und besitzt keine eigene Wait-State-Schaltung, die den Prozess von schnellen, repitierenden Datenpaketen automatisch synchronisiert. Der Anwender wird hier aufgefordert, selbst Vorsorge zu treffen. Es gilt beispielsweise darauf zu achten, dass kein Burst-Modus für den access-cycle aktiviert wurde. Die Folge wäre ein lawinenartiges Überladen von Daten, die der Dekoder zeitlich nicht mehr zuordnen kann.
Kann man eine Wait-State-Schaltung nachträglich implementieren?
Nein. Dafür sind leider keine ausreichenden Ressourcen und Flip-Flops mehr vorhanden. Unser PCI-Dekoder wurde aus Kostengründen beim Design lediglich auf die notwendigste Minimal-Schaltung reduziert.
Kann der PCI-Dekoder auch als PCI-Master betrieben werden?
Nein. Der Dekoder arbeitet ausschließlich als PCI-Target.
Kann durch Umlegen der IO- und MEM-Leitungen der PCI-Dekoder auch für Memory-Zugriffe verwendet werden?
Nein, auf gar keinen Fall. Bus-Technologie und Protokoll lassen solche wagemutigen Änderungen einfach nicht zu.
Wecher CS (chip-select) Baustein eignet sich am besten zum ausdekodieren von I/O-Adressen am PCI-Dekoder?
Hierzu empfehle ich den ispLSI1016E-80LJ von Lattice®.
Gibt es Probleme mit neuen GALs oder cPLDS... bei der Ausdekodierung von CS-Signalen?
Möglicherweise ja. Falls schnellere GALs, cPLDs oder FPGAs in Folgeschaltungen verwendet werden, muss eventuell das Timing zwischen PCI-Dekoder und CS-Dekoder neu angepasst werden (bsp. 33pF an PCI-ALE gegen GND und 1k gegen Vcc... o.ä.). Dies hängt im wesendlichen davon ab, wie groß die Eingangskapazitäten der Folgeschaltungen sind. Sind diese sehr klein, muss eine Parallelkapazität angebracht werden, damit die zeitliche Zuweisung zwischen Daten, CSL, CSH, RDWR und ALE wieder synchon verläuft.
Was muss man bei Layout beachten?
Beachten Sie bitte bei Ihrem Design, dass alle Signalpegel zwischen den einzelnen Bauteilen stimmig sind und das Leiterbahnen (insbesonders von Bussen) möglichst kurz und parallel verlaufen (ohne unterschiedliche Laufzeiten). Ein EMV-verträgliches Layout-Design ist selbstredend. Nutzen Sie bitte nur unser Proto-3-Layout als Vorlage.
Last,
but not least:
Fehler
& defekte Links bitte direkt an KOLTER ELECTRONIC mailen. Vielen Dank.
Wenn
etwas konkret nicht stimmt, weisen Sie mich bitte freundlich darauf hin:
Ich
bin nicht unfehlbar und gelobe Besserung sowie Korrektur.
Wer
einen Tippfehler gefunden hat, darf ihn gerne behalten.