Empfangen von POST-Codes in Laptops über einen Zweidrahtbus. Ein Gerät zum Reparieren und Testen von Computern - POST Card Die einfachste Do-it-yourself-Postkarte für compal

Ich brauchte eine hochwertige Schnittstelle für eine CNC-Maschine.
Ich muss gleich sagen, dass mir der Parallelport nicht liegt. da die Qualität der Implementierung zweifelhaft ist, es nur wenige Kontakte gibt (nur 16 I / O, ich erinnere mich nicht, wie viele I und wie viele O) und die maximale Betriebsfrequenz bis zu 50 kHz beträgt, mit zweifelhaften Anzeichen für Interferenzen, Flankensteilheit, Verzögerungen etc.
Um eine Schnittstelle mit einer 6-Achsen-Maschine herzustellen, benötigen Sie 24 Differential-Pin-Paare (6 Diff-Paare für DIR-Signale, 6 Diff-Paare für PULSE-Signale).
Darüber hinaus habe ich 12 digitale TTL-Ausgänge (bis zu 50 mA) und 12 opto-isolierte Allzweck-Digitaleingänge bereitgestellt.
Und all diese Dinge passen kaum in den 50-poligen SCSI-Anschluss, was ich wirklich mag.


Ich habe die erste Option abgelehnt, da die Implementierung dann vollständig von diesem Chip, seinen Störungen oder deren Abwesenheit abhängt.
diese. Wir werden uns vollständig auf jemanden verlassen, der ihnen die Spezifikation beibringt, analysiert, welche Art von Treiber benötigt wird, wie man ihn schreibt usw.

Die zweite Option ist anfangs etwas arbeitsintensiver, bietet dann aber mehr Vorteile, denn FPGAs sind wahrscheinlich die vielseitigsten Geräte der Welt, und mit ihrer Hilfe können Sie fast jede Schnittstelle, mit jedem Gerät, das Sie fast implementieren können irgendeine Schaltung usw.

Beginnen wir mit dem Schwierigsten, dem PCI-Bus. Alles wird durch die Tatsache kompliziert, dass die Spezifikation geschlossen ist, es nicht viele Informationen im Internet gibt, aber es gibt einen Weg, um die Bourgeoisie zu umgehen.
Viele FPGA-Hersteller haben gegen Aufpreis auch eine Reihe von Standardimplementierungen verschiedener Schnittstellen. eine Gebühr (die natürlich vernünftige Menschen nicht zahlen werden), alles heißt IP Core (Xilinx kann für andere anders sein, aber die Idee ist dieselbe)
Was ist das? Nun, es ist wie eine Bibliothek zum Verlinken von Code.
IP Core kann als direkter Code (Verilog oder VHDL) oder als spezielle geschlossene Netzliste (etwas wie EDIF, aber verschlüsselt, jeder Anbieter hat sein eigenes Format und erlaubt Ihnen, sie nur mit seinen Entwicklungstools zu verknüpfen) bereitgestellt werden.
Danke an die Handwerker, die das Xilinx ISE 10.1-Paket eindeutig geknackt haben, das den Zugriff auf alle IP-Kerne absolut kostenlos und auf Quellcode-Ebene ermöglicht (was für das Lernen am nützlichsten ist).
Verteilung Jeder kann sich auf einem bekannten Torrent-Tracker wiederfinden.

Außerdem gibt es eine Seite fpga4fun.com, wo so knapp wie möglich über alle Features des FPGA berichtet wird und es keinen Sinn macht, diese Informationen hier zu duplizieren. Die Seite spricht über FPGAs von zwei Marktführern: Xylinx und Altera.
Sie müssen auch Verilog lernen, aber wenn Sie bereits in einer Sprache programmiert haben, ist dies nicht schwieriger.

Welchen Chip wählen?
Ich entschied mich für Xylinx Spartan xxx
Hier gibt es mehrere Fallstricke.
1) Kompatibel mit PCI32 5V-Bus
2) Die Anzahl der Ausgänge, die gleichzeitig geschaltet werden können (sogenannte SSO-Ausgänge gleichzeitig schaltend)
3) Gehäusetyp: BGA oder PQ
4) Eingebauter Blitz oder in einem separaten Chip untergebracht?
5) Maximale Bootzeit, bevor die ersten Signale von PCI empfangen werden

Kompatibel mit PCI32 5V-Bus

Dies ist wahrscheinlich das Wichtigste von allen. Sie müssen sich entscheiden, ob Sie für alle I / O-Busse (ca. 50) Signalpegel-Konvertierungschips verwenden und ein modernes FPGA verwenden (1,25 V, 2,5 V, 3,3 V, keine 5 V-tolerant).
Oder verwenden Sie ein altes FPGA.
Ich habe mich für mein Projekt für ein altes FPGA (Spartan II) entschieden und es bis heute nicht bereut.
Es sollte beachtet werden, dass die Verwendung von Pegelumwandlungschips das SSO-Problem zusätzlich kompliziert, weil
solche Chips erzeugen Spannungsüberschreitungen und -unterschreitungen und können zu Fehlern führen.
Problem mit PCI32 3,3 V SSO, Stromversorgung und maximaler FPGA-Startzeit:
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
Beste Bus-Switch-Verbindung für 5-V-PCI-Kompatibilität (was der Standard für Heim-PCs ist):
http://www.xilinx.com/support/documentation/application_notes/xapp646.pdf
Das Problem mit Über- und Unterschwingern wird hier gelöst, indem das Masseniveau für die Pegelwandlerchips verschoben wird.
Es ist besonders zu beachten, dass zur Erhöhung der Anzahl von SSO (auch Ground Bounce genannt) ein Shunt-Widerstand verwendet wird, um den Chip mit Strom zu versorgen, wobei der "Leerlauf" -Strom auf 50 mA eingestellt wird (34-Ohm-Widerstand, um 3,3 V zu versorgen).
Ich habe einen solchen Widerstand oder ein niederohmiges Feedback für LDO in ALLEN PCI-Leiterplatten gesehen, die ich bekommen habe.

Die Anzahl der Ausgänge, die gleichzeitig geschaltet werden können (SSO genannt: gleichzeitig schaltende Ausgänge)

Dieser Parameter ist für jeden Chip- und Gehäusetyp unterschiedlich und wird im Datenblatt angegeben.
Beispielsweise dürfen in meinem Fall mit dem Gehäusetyp PQ208 und dem Spartan II-Modell für den PCI-Standard bis zu 4 SSOs pro Leistungsgruppe verwendet werden, von denen insgesamt 16 im Gerät vorhanden sind (zwei pro Bank, von das sind 8)

Als nächstes habe ich die Konstanten genommen, die mit dem IP Core PCI (Version 3.199) geliefert wurden (*.ucf User Constants-Datei).
Und es stellte sich heraus, dass sie alle PCI-Signale auf 4 Bänke verteilt haben (es stellt sich heraus, dass 32 SSO-Signale erlaubt sind, während der PCI-Bus etwa 40 Signale mit steilen Flanken benötigt):
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
AD CBE PAR IRDY#, FRAME# REQ#
Außerdem werden die Bänke ungleichmäßig gefüllt, was ebenfalls gegen das zulässige SSO verstößt.
Andererseits wurde IP Core in dieser Konfiguration getestet und ich hatte Angst, hier etwas zu ändern.
auf die Gefahr hin, aufgrund der Besonderheiten der internen FPGA-Architektur nicht in PCI-Bus-Timings zu investieren.
Also habe ich mich besonders bemüht, SSO zu erhöhen. Ich habe am Ausgang jedes Versorgungsspannungsreglers einen Shunt (120 Ohm), gute Bypass-Kondensatoren, eine mehrschichtige Leiterplatte mit einer separaten Schicht für Masse usw.
Denken Sie auch an die günstige Lage der Pins zum Abtasten der Leiterplatte!

Gehäusetyp: BGA oder PQ

Ich habe mich für PQ208 entschieden, BGA hat mehr Vorteile (doppelt so viel wie SSO), aber es besteht die Gefahr, dass Sie nicht zu Hause löten, einige Pins können aufgrund von Chipverschiebungen immer noch kurzgeschlossen sein, was für Ihr Motherboard gefährlich ist!

Eingebauter Blitz oder in einem separaten Chip untergebracht? und Maximale Boot-Zeit, bevor die ersten Signale von PCI empfangen werden

Hier habe ich zum ersten Mal bedauert, dass ich die alte Chiplinie kontaktiert und mich nicht für den neuen Spartan 3AN (mit eingebautem Blitz) entschieden habe.
Es stellte sich heraus, dass jedes Spartan-II-Modell einen eigenen Chip hat, der über JTAG programmierbar ist.
Es stellte sich als ziemlich teuer heraus und es wird angenommen, dass es bald nicht mehr verkauft wird.
XC18V01 (in meinem Fall 1 MB Flash)
Wie man es mit dem FPGA Spartan II verbindet, steht im Datenblatt.
Vielleicht entweder eine serielle Schnittstelle oder eine parallele, die von einem internen FPGA-Takt oder einer externen gesteuert wird! Ich habe mich für eine serielle Schnittstelle entschieden, die von einem FPGA gesteuert wird, d.h. das Aufrufsignal wird vom FPGA selbst generiert und geht nach Abschluss des Downloads in den Betriebsmodus.
Die Download-Frequenz der Konfiguration beträgt 66 MHz, für PCI32 5 V reicht es aus, innerhalb von 1,1 Sekunden (PCI32 5 V 32 MHz) zu bleiben, um die vollständige Konfiguration zu laden. In meinem Projekt wird jedoch nur ein kleiner Teil des Konfigurationsraums verwendet.

Nun, das ist alles, ich werde bald die Leiterplatte und die Schaltung im nächsten Teil auslegen.
Dann wird es Software geben und unsere PCI-Karte ist fertig.

Guten Tag %habrauser%!

Zuletzt habe ich einen Beitrag über POST-Karten geschrieben, gute Tautologie a ;-)?
Darin habe ich versprochen, eine Fortsetzung zu schreiben, wenn das Thema interessant ist, und da sich das Thema für die Chabroviten wirklich als interessant herausgestellt hat, fahre ich fort!

Eigentlich Thema

Wie ich in den Kommentaren erwähnt habe, habe ich für meinen ersten Artikel Karten für mich selbst bestellt - diese für Laptops und diese für Desktops.

Die Bestellung wurde am 20. Januar aufgegeben (ich kann die genauen Daten nicht angeben, ich war es nicht, der bestellt, verfolgt und erhalten hat). Neulich kam diese Karte, sagen sie, eine Laptop-Karte, Sie müssen auf eine Desktop-Karte warten. Hier möchte ich etwas Empörung zum Ausdruck bringen -
1) Die Karten wurden in einer Reihenfolge bestellt, sie gehen auf unterschiedliche Weise (ich hoffe, dass die zweite noch geht und nicht verloren geht);
2) Lieferzeiten! Natürlich kann ich verstehen, dass sie das chinesische Neujahr hatten, aber ein Monat (nach dem Datum auf der Verpackung zu urteilen) ist zu viel, besonders in Kombination mit der Tatsache, dass sie mit drei abgeschlossen wurden ( DREI) Wochen!
3) Diextreme nimmt etwa 200 Rubel für die Ausstellung einer Paketspur, die Spur selbst ist kostenlos und wird jedem Paket zugewiesen, also ist das Urteil Hucksters!
An diesen Punkten endet meine Empörung und ich beginne mit der Überprüfung.

Die Karte kam in einem Paket, innen ist das Paket mit einem Seelenfriedensgenerator verklebt, die Karte selbst ist darin verpackt und antistatisch, also gehen die Chinesen die Verpackungsprobleme gründlich an. In Antistatik haben wir die Karte selbst, USB-Kabel und Benutzerhandbuch.

Diese Karte ist für Mini-PCI ausgelegt und hat auch ( nicht beabsichtigt warum lesen wir weiter) Port für LPT, USB wird benötigt, um die Karte mit Strom zu versorgen. Als erstes wollte ich natürlich testen! Aber ich habe keinen Laptop zur Hand, also habe ich mich mit reinen Gedanken entschieden, es am LPT-Port zu testen.

Eigentlich steckte eine Karte

Wenn Strom angelegt wird, zeigt die Karte "--" und "FF" an.

Schalten Sie das Auto ein

Dann wechselt die Karte mehrfach das Image, und wieder „FF00“ fährt das System hoch. Eine vernünftige Frage und der Wunsch, herauszufinden, welche Art von Codes geflasht wurden, lässt uns zu dem einfachen Schluss kommen, dass Sie mit nur zwei Tasten durch die Codes scrollen können, und voila! So ist es, wir drücken auf den Knopf, wir sehen

Auf der linken Seite befindet sich nun die Seriennummer des POST-Codes, auf der rechten Seite der Code selbst. (nicht in der Reihenfolge, da es sich am Anfang wiederholt)

Tyk-Taste

Tyk-Taste

Tyk-Taste

Poke nochmal

Wieder stupsen

Noch einmal

Und noch ein bisschen mehr

Hier ist das letzte

Hier kommen wir zu einem interessanten Punkt und nicht zu der beeindruckendsten Schlussfolgerung.
Ein interessanter Punkt ist das Benutzerhandbuch, ganz am Anfang des Handbuchs haben wir die Bezeichnung von LEDs

"+5 Volt" leuchtet die ganze Zeit, während die Mutter eingeschaltet ist, ist ziemlich logisch, weil USB ;-)

"+3,3 Volt" die gleiche Stromanzeige wie "+5 Volt" leuchtet nicht auf, wenn der PCI-Steckplatz nicht mit Strom versorgt wird (oder die Mutter nicht unterstützt, das Paar hat die genaue Übersetzung im Original nicht herausgefunden )

„FRAME“ leuchtet, wenn das „FRAME“-Signal aktiv ist.

RAHMEN (E/A)
Wenden Sie sich an A34

Das FRAME-Signal wird vom aktiven Master am PCI-Bus ausgegeben. FRAME-Übergang auf niedrig, d.h. aktiv, leitet die Schicht die Adressierungsphase ein. Um die letzte Datenphase zu kennzeichnen, die den Buszyklus abschließt, muss der Hauptteilnehmer FRAME wieder deaktivieren.

„CLK“ leuchtet, wenn das „CLK“-Signal aktiv ist.

CLK(O)
Wenden Sie sich an B16

Dieser Pin trägt das PCI-Zeitgebersignal, das alle PCI-Operationen begleitet. Seine Frequenz liegt entsprechend den technischen Anforderungen im Bereich von 0 bis 33 MHz.

"RSET" leuchtet während des Neustarts

"+12" schaltet formale Logik ein

"-12" aktiviert formale Logik

„-5“ ist gleichbedeutend mit „+3,3 Volt“

Entschlüsselungscodes

BIOS auf Phoenix-Mutter.

FF ist in meinen Fällen das Vorhandensein von +5 auf USB

A5 ist nicht im Handbuch aufgeführt (nur leer)

AA wartet darauf, F2 zu drücken

55 USB-Geräte aktivieren

04 CPU-Typ erhalten

Die Fotos zeigen "+5 Volt"

Also “ein interessanter Punkt, das Handbuch enthält eine Tabelle mit allen Codes für die Phinks, AMI Avardavian BIOSes, “nicht die beeindruckendste Schlussfolgerung” ist, dass die Karte auf LPT kompletter Unsinn fährt!

Apropos Handbuch - 28 DIN-A6-Seiten mit reinsten Informationen zu POST-Codes, Lautsprechersignalbezeichnungen und CMOS-Betrieb. Ich werde mich in naher Zukunft um die Übersetzungen kümmern und es der Habrosociety präsentieren, aber ich denke, ich werde auf die Desktop-Karte warten, um ein konsolidiertes Handbuch zu erstellen.

Ich warte auf die zweite Karte und einen Märtyrer-Laptop für vollwertige Tests und Rezensionen, ich übersetze und rauche das Handbuch.

P.S. Sonntag um sechs Uhr morgens, vielleicht habe ich etwas verpasst. Fragen in den Kommentaren, werde ich bei Bedarf ergänzen.

P.P.S der Artikel wurde im Echtzeitmodus geschrieben, „on the fly“ während des Schreibens, neu gestartet und ein Foto gemacht.

Bei der Erstellung des Artikels wurden zwei Zitate verwendet

Grüße, liebe Chabroviter!

Nicht das erste Jahr, in dem ich mich mit der Diagnose und Wiederbelebung von Desktops und Laptops beschäftigt habe, hauptsächlich beim Kunden zu Hause. Mit der Zeit drängt sich der Schluss auf, dass man einen Koffer dabei haben muss, vielleicht sogar einen Koffer mit Zubehör für die Diagnose eines defekten Eisens. Manch einer mag mir einwenden: „Auf Bauteile geht es! Erfahrung ermöglicht es Ihnen, Diagnosen ohne sie durchzuführen! Das stimmt teilweise, aber es gibt keine hundertprozentige Genauigkeit, das ist eine Tatsache.

Auf die POST-Codes des Sprechers verlassen? Nicht immer möglich speziell feststellen, worüber er sich beschwert. Beispielsweise weisen ein langer und zwei kurze Lautsprechertöne auf eine Fehlfunktion des Videosystems hin, aber dies bedeutet nicht immer eine Fehlfunktion der Grafikkarte selbst. Es gibt zum Beispiel Probleme mit zusätzlichen Stromversorgung für genau diese Grafikkarte, und dies ist bereits eine Fehlfunktion der Stromversorgung.

Hier werde ich anhalten und den lieben Lesern sagen, was die Signale des Sprechers sind.

Wenn Sie den Computer einschalten, wird das BIOS (Basic Input / Output System) gestartet - eine Tatsache, die jedem bekannt ist, aber nicht überflüssig zu erwähnen ist. Als Teil des BIOS gibt es ein Programm namens POST (Power On Self Testing), das, wie der Name schon sagt, für die anfängliche Diagnose von Geräten und Anschlüssen auf dem Motherboard entwickelt wurde.

Die POST-Initialisierungsprozedur wird von der Anzeige des Bildes auf dem Monitor begleitet:

Nachdem wir den POST passiert haben, sehen wir:

Während der POST-Ausführung wird ein sogenannter POST-Code generiert, der in ein spezielles Diagnoseregister geschrieben wird.

Eigentlich sind die Lautsprechersignale Fehlercodes bei der Durchführung von POST, wenn POST ohne Fehler durchgeführt wird, hören wir ein kurzes Signal.

Wir gehen zum Thema über.

POST-Karten.

Die POST-Karte ist eine Erweiterungskarte, meistens gibt es Karten im PCI-Format:

Es gibt auch miniPCI-Karten (für Laptops):

Und es gibt Karten für LPT (benötigt zusätzliche USB-Stromversorgung):

Bei einem Desktop mit einer wunderbaren Diagnose „schaltet sich nicht ein“ (nicht zu verwechseln mit „startet nicht“) werden meist unkritische Peripheriegeräte zuerst nacheinander ausgeschaltet - Sound, Tuner, Netzwerkkarte, Festplatten, Laufwerke .
Wenn dabei keine Fehlfunktionen festgestellt werden, beginnt der Austausch von Komponenten: RAM, Grafikkarte, Prozessor (ja, derselbe Koffer mit Eisenstücken).

Aber jetzt haben wir eine POST-Karte anstelle eines Koffers mit Bügeleisen in der Hand. Wir sparen Zeit, indem wir das obige Verfahren mit dem Ersetzen / Ausschalten des Bügeleisens umgehen (wir sparen durchschnittlich 40 Minuten, ich stelle fest, dass nach dem Ausschalten eines Bügeleisens , wird mindestens ein Ein-Aus-Zyklus durchgeführt).

Eigentlich stecken wir unsere wunderbare Karte ein und beobachten, was passiert.
Und folgendes passiert - auf der Anzeigetafel der Karte haben wir Postleitzahlen, die uns anzeigen, was gerade getestet wird. Nach Erreichen des fehlerhaften Elements stoppt die POST-Ausführungsprozedur und der Code bleibt auf dem Display, meistens ist dem Thema ein Handbuch mit POST-Codes beigefügt (sie variieren je nach Hersteller und BIOS-Version).

Durch den Vergleich des Fehlercodes mit seiner Dekodierung erhalten wir meistens die endgültige Diagnose, z. B.: Fehlerhafter Speicher, Prozessor oder eine Komponente auf der Hauptplatine.

Ich denke, ich werde eine Reihe von Artikeln über Diagnostik schreiben, wenn das Thema für Chabroviten von Interesse ist.

Grüße, liebe Chabroviter!

Nicht das erste Jahr, in dem ich mich mit der Diagnose und Wiederbelebung von Desktops und Laptops beschäftigt habe, hauptsächlich beim Kunden zu Hause. Mit der Zeit drängt sich der Schluss auf, dass man einen Koffer dabei haben muss, vielleicht sogar einen Koffer mit Zubehör für die Diagnose eines defekten Eisens. Manch einer mag mir einwenden: „Auf Bauteile geht es! Erfahrung ermöglicht es Ihnen, Diagnosen ohne sie durchzuführen! Das stimmt teilweise, aber es gibt keine hundertprozentige Genauigkeit, das ist eine Tatsache.

Auf die POST-Codes des Sprechers verlassen? Nicht immer möglich speziell feststellen, worüber er sich beschwert. Beispielsweise weisen ein langer und zwei kurze Lautsprechertöne auf eine Fehlfunktion des Videosystems hin, aber dies bedeutet nicht immer eine Fehlfunktion der Grafikkarte selbst. Es gibt zum Beispiel Probleme mit zusätzlichen Stromversorgung für genau diese Grafikkarte, und dies ist bereits eine Fehlfunktion der Stromversorgung.

Hier werde ich anhalten und den lieben Lesern sagen, was die Signale des Sprechers sind.

Wenn Sie den Computer einschalten, wird das BIOS (Basic Input / Output System) gestartet - eine Tatsache, die jedem bekannt ist, aber nicht überflüssig zu erwähnen ist. Als Teil des BIOS gibt es ein Programm namens POST (Power On Self Testing), das, wie der Name schon sagt, für die anfängliche Diagnose von Geräten und Anschlüssen auf dem Motherboard entwickelt wurde.

Die POST-Initialisierungsprozedur wird von der Anzeige des Bildes auf dem Monitor begleitet:

Nachdem wir den POST passiert haben, sehen wir:

Während der POST-Ausführung wird ein sogenannter POST-Code generiert, der in ein spezielles Diagnoseregister geschrieben wird.

Eigentlich sind die Lautsprechersignale Fehlercodes bei der Durchführung von POST, wenn POST ohne Fehler durchgeführt wird, hören wir ein kurzes Signal.

Wir gehen zum Thema über.

POST-Karten.

Die POST-Karte ist eine Erweiterungskarte, meistens gibt es Karten im PCI-Format:

Es gibt auch miniPCI-Karten (für Laptops):

Und es gibt Karten für LPT (benötigt zusätzliche USB-Stromversorgung):

Bei einem Desktop mit einer wunderbaren Diagnose „schaltet sich nicht ein“ (nicht zu verwechseln mit „startet nicht“) werden meist unkritische Peripheriegeräte zuerst nacheinander ausgeschaltet - Sound, Tuner, Netzwerkkarte, Festplatten, Laufwerke .
Wenn dabei keine Fehlfunktionen festgestellt werden, beginnt der Austausch von Komponenten: RAM, Grafikkarte, Prozessor (ja, derselbe Koffer mit Eisenstücken).

Aber jetzt haben wir eine POST-Karte anstelle eines Koffers mit Bügeleisen in der Hand. Wir sparen Zeit, indem wir das obige Verfahren mit dem Ersetzen / Ausschalten des Bügeleisens umgehen (wir sparen durchschnittlich 40 Minuten, ich stelle fest, dass nach dem Ausschalten eines Bügeleisens , wird mindestens ein Ein-Aus-Zyklus durchgeführt).

Eigentlich stecken wir unsere wunderbare Karte ein und beobachten, was passiert.
Und folgendes passiert - auf der Anzeigetafel der Karte haben wir Postleitzahlen, die uns anzeigen, was gerade getestet wird. Nach Erreichen des fehlerhaften Elements stoppt die POST-Ausführungsprozedur und der Code bleibt auf dem Display, meistens ist dem Thema ein Handbuch mit POST-Codes beigefügt (sie variieren je nach Hersteller und BIOS-Version).

Durch den Vergleich des Fehlercodes mit seiner Dekodierung erhalten wir meistens die endgültige Diagnose, z. B.: Fehlerhafter Speicher, Prozessor oder eine Komponente auf der Hauptplatine.

Ich denke, ich werde eine Reihe von Artikeln über Diagnostik schreiben, wenn das Thema für Chabroviten von Interesse ist.