Ricezione di codici POST nei laptop tramite un bus a due fili. Un dispositivo per la riparazione e il test dei computer - POST Card La più semplice cartolina postale fai-da-te per compal

Avevo bisogno di un'interfaccia di alta qualità per una macchina CNC.
Devo dire subito che la porta parallela non fa per me. perché la qualità della sua implementazione è dubbia, ci sono pochi contatti (solo 16 I/O, non ricordo quanti I e quanti O) e la frequenza massima di funzionamento è fino a 50 kHz, con indicatori di interferenza dubbi, pendenza dei bordi, ritardi, ecc.
Per interfacciarsi con una macchina a 6 assi, avrai bisogno di 24 coppie di pin differenziali (6 coppie di differenziali per segnali DIR, 6 coppie di differenziali per segnali PULSE).
Inoltre, ho fornito 12 uscite digitali TTL (fino a 50 mA) e 12 ingressi digitali per uso generico optoisolati.
E tutta questa roba entra a malapena nel connettore SCSI a 50 pin, cosa che mi piace molto.


Ho rifiutato la prima opzione, perché l'implementazione dipenderà interamente da questo chip, dai suoi difetti o dalla loro assenza.
quelli. faremo completamente affidamento su qualcuno per insegnare loro le specifiche, analizzare che tipo di driver è necessario, come scriverlo, ecc.

La seconda opzione è inizialmente un po' più laboriosa, ma poi offre più vantaggi, perché gli FPGA sono probabilmente i dispositivi più versatili al mondo e con il loro aiuto puoi creare quasi tutte le interfacce, con qualsiasi dispositivo, puoi implementare quasi qualsiasi circuito, ecc.

Cominciamo con quello più difficile, il bus PCI. Tutto è complicato dal fatto che il disciplinare è chiuso, non ci sono molte informazioni su Internet, ma c'è un modo per aggirare la borghesia.
Molti produttori di FPGA hanno anche una serie di implementazioni standard di varie interfacce a un costo aggiuntivo. una quota (che, ovviamente, le persone sane non pagheranno), si chiama tutto IP Core (Xilinx potrebbe differire per gli altri, ma l'idea è la stessa)
Cos'è? Bene, è come una libreria per collegare il codice.
IP Core può essere fornito come codice diretto (Verilog o VHDL) o come una speciale netlist chiusa (qualcosa come EDIF, ma crittografato, ogni fornitore ha il suo formato e ti consente di collegarli solo usando i loro strumenti di sviluppo)
Grazie agli artigiani che hanno chiaramente craccato il pacchetto Xilinx ISE 10.1, che consente l'accesso a tutti gli IP Core in modo assolutamente gratuito e a livello di codice sorgente (che è il più utile per l'apprendimento)
Distribuzione tutti possono ritrovarsi su un noto tracker torrent.

Inoltre, esiste un sito fpga4fun.com in cui vengono raccontate nel modo più conciso possibile tutte le funzionalità dell'FPGA e non ha senso duplicare queste informazioni qui. Il sito parla degli FPGA di due leader di mercato: Xylinx e Altera.
Dovrai anche imparare Verilog, ma se hai già programmato in qualche lingua, non sarà più difficile.

Quale chip scegliere??
Ho optato per Xylinx Spartan xxx
Ci sono diverse insidie ​​qui.
1) Compatibile con bus PCI32 5V
2) Il numero di uscite che possono essere commutate contemporaneamente (denominate uscite di commutazione simultanea SSO)
3) Tipo di caso: BGA o PQ
4) Flash integrato o inserito in un chip separato?
5) Tempo massimo di avvio prima di ricevere i primi segnali da PCI

Compatibile con bus PCI32 5V

Questo è probabilmente il più importante di tutti. Devi scegliere se utilizzare chip di conversione del livello del segnale per tutti i bus I/O (circa 50) e utilizzare un moderno FPGA (1.25V, 2.5V, 3.3V no 5V tolerant).
Oppure usa un vecchio FPGA.
Per il mio progetto ho optato per un vecchio FPGA (Spartan II) e non me ne sono ancora pentito.
Va notato che l'uso di chip di conversione di livello aggiunge ulteriore complessità al problema SSO, perché
tali chip generano sbalzi e cali di tensione e possono causare errori.
Problema PCI32 3.3V SSO, alimentazione e tempo di avvio massimo FPGA:
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
La migliore connessione Bus Switch per la compatibilità PCI 5V (che è lo standard per i PC domestici):
http://www.xilinx.com/support/documentation/application_notes/xapp646.pdf
Il problema con overshot e undershot viene risolto qui spostando il livello del suolo per i chip del convertitore di livello.
Va notato in particolare che per aumentare il numero di SSO (chiamato anche Ground bounce), viene utilizzato un resistore shunt per alimentare il chip, impostando la corrente "inattiva" a 50 mA (resistenza da 34 ohm, per l'alimentazione a 3,3 V)
Ho visto un tale resistore, o feedback a bassa resistenza per LDO, in TUTTI i circuiti stampati pci che sono riuscito a ottenere.

Il numero di uscite che possono essere commutate contemporaneamente (denominato SSO: uscite di commutazione simultanee)

Per ogni tipo di chip e di custodia, questo parametro è diverso ed è riportato nella scheda tecnica.
Ad esempio, nel mio caso con il tipo di custodia PQ208 e il modello Spartan II per lo standard PCI, è consentito utilizzare fino a 4 SSO per gruppo di alimentazione, di cui 16 in totale nel dispositivo (due per banco, di che ci sono 8)

Successivamente, ho preso le costanti fornite con IP Core PCI (versione 3.199) (file *.ucf User Constants)
E si è scoperto che hanno distribuito tutti i segnali PCI in 4 banchi (si scopre che sono consentiti 32 segnali SSO, mentre il bus pci richiede circa 40 segnali con fronti ripidi):
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
AD CBE PAR IRDY#, FRAME# REQ#
Inoltre, le banche vengono riempite in modo non uniforme, il che viola anche l'SSO consentito.
D'altra parte, IP Core è stato testato in questa configurazione e avevo paura di cambiare qualcosa qui.
con il rischio di non investire in temporizzazioni bus PCI, a causa delle peculiarità dell'architettura FPGA interna.
Quindi ho fatto uno sforzo in più per aumentare l'SSO. Ho messo uno shunt (120 ohm) sull'uscita di ciascun regolatore di tensione di alimentazione, buoni condensatori di bypass, un PCB multistrato con uno strato separato per la massa, ecc.
Dovresti anche pensare alla comoda posizione dei pin per tracciare il circuito stampato!

Tipo di pacchetto: BGA o PQ

Ho scelto PQ208, BGA ha un vantaggio maggiore (il doppio dell'SSO), ma c'è il rischio di non saldare a casa, alcuni contatti potrebbero essere ancora in corto a causa dello spostamento del chip, il che è pericoloso per la tua scheda madre!.

Flash integrato o inserito in un chip separato? e Tempo massimo di avvio prima di ricevere i primi segnali da PCI

Qui mi sono pentito per la prima volta di aver contattato la vecchia linea di chip e di non aver scelto il nuovo Spartan 3AN (con flash integrato)
Si è scoperto che ogni modello Spartan II ha il proprio chip programmabile tramite JTAG.
Si è rivelato piuttosto costoso e si ritiene che presto cesserà di essere venduto.
XC18V01 (1 MB di flash nel mio caso)
Come collegarlo all'FPGA Spartan II è nel datasheet.
Forse un'interfaccia seriale o una parallela, controllata da un clock FPGA interno o esterno!, ho scelto una seriale controllata da un FPGA, cioè il segnale di chiamata viene generato dall'FPGA stesso e al termine del download va in modalità operativa.
La frequenza di download della configurazione è 66MHz, per PCI32 5V è sufficiente mantenersi entro 1,1 secondi (PCI32 5V 32Mhz) per caricare la configurazione completa. tuttavia, nel mio progetto verrà utilizzata solo una piccola parte dello spazio di configurazione.

Bene, questo è tutto, presto stenderò il circuito stampato e il circuito, nella parte successiva.
Poi ci sarà il software e la nostra scheda PCI è pronta.

Buona giornata% habrauser%!

Più recentemente, ho scritto un post sulle carte POST, buona tautologia a ;-)?
In esso, ho promesso di scrivere un seguito se l'argomento è interessante e poiché l'argomento si è rivelato davvero interessante per i Khabroviti, continuo!

In realtà soggetto

Come ho detto nei commenti, per il mio primo articolo, ho ordinato le schede per me stesso: questa per laptop e questa per desktop.

L'ordine è stato effettuato il 20 gennaio (non riesco a specificare le date esatte, non sono stato io a ordinare, rintracciare e ricevere). L'altro giorno è arrivata questa scheda, dicono, una per laptop, devi aspettare una desktop. Qui voglio esprimere un po' di indignazione -
1) Le carte sono state ordinate in un ordine, vanno in modi diversi (spero che la seconda vada ancora e non vada persa);
2) Tempi di consegna! Certo, posso capire che hanno avuto il capodanno cinese, ma un mese (a giudicare dalla data sul pacco) è troppo, soprattutto se combinato con il fatto che sono stati completati con tre ( TRE) settimane!
3) Diextreme impiega circa 200 rubli per l'emissione di una traccia pacchi, la traccia stessa è gratuita ed è assegnata a ciascun pacco, quindi il verdetto è mercante!
Su questi punti finisce la mia indignazione e inizio la rassegna.

La carta è arrivata in un pacco, all'interno del pacco è incollato con un generatore di tranquillità, la carta stessa è imballata al suo interno e in antistatico, quindi i cinesi affrontano a fondo i problemi di imballaggio. In antistatico abbiamo la scheda stessa, il cavo USB e il manuale utente.

Questa scheda è progettata per mini PCI e ha anche ( non inteso perché leggiamo oltre) porta per LPT, è necessaria la USB per alimentare la scheda. La prima cosa che volevo fare era naturalmente testarlo! Ma non ho un laptop a portata di mano, quindi con pensieri puri ho deciso di testarlo sulla porta LPT.

In realtà ha bloccato una carta

Quando viene applicata l'alimentazione, la scheda visualizza "--" e "FF".

Accendi la macchina

Quindi la scheda cambia l'immagine più volte e di nuovo "FF00" il sistema si avvia. Una domanda ragionevole e il desiderio di scoprire che tipo di codici lampeggiavano, ci fanno trarre una semplice conclusione che gli unici due pulsanti ti consentono di scorrere i codici, e voilà! Così è, premiamo il pulsante, vediamo

Ora sul pannello di sinistra c'è il numero seriale del codice POST, a destra il codice stesso. (non in ordine perché si ripete all'inizio)

Pulsante Tik

Pulsante Tik

Pulsante Tik

Colpisci di nuovo

Di nuovo colpisci

Di nuovo

E un po' di più

Ecco l'ultimo

Qui arriviamo a un punto interessante e non alla conclusione più impressionante.
Un punto interessante è il Manuale dell'utente, proprio all'inizio del manuale abbiamo la designazione dei LED

"+5 volt" si accende continuamente mentre la madre è accesa, è abbastanza logico perché USB ;-)

"+3,3 volt" lo stesso indicatore di alimentazione di "+5 volt" non si accende quando non c'è alimentazione allo slot PCI (o la madre non supporta, la coppia non ha capito la traduzione esatta, nell'originale )

"FRAME" si accende quando il segnale "FRAME" è attivo.

TELAIO (I/O)
Contattare A34

Il segnale FRAME viene emesso dal master attivo sul bus PCI. FRAME transizione a basso, cioè attivo, il livello inizia la fase di indirizzamento. Per indicare l'ultima fase dati che completa il ciclo del bus, l'utente principale deve disattivare nuovamente FRAME.

"CLK" si accende quando il segnale "CLK" è attivo.

CLK(O)
Contattare B16

Questo pin trasporta il segnale del timer PCI che accompagna tutte le operazioni PCI. In conformità con i requisiti tecnici, la sua frequenza è compresa tra 0 e 33 MHz.

"RSET" si illumina durante il riavvio

"+12" attiva la logica formale

"-12" abilita la logica formale

"-5" è lo stesso di "+3,3 volt"

Codici di decrittazione

BIOS su madre Phoenix.

FF nei miei casi è la presenza di +5 su USB

A5 non è elencato nel manuale (solo vuoto)

AA in attesa di premere F2

55 abilitare i dispositivi USB

04 ottieni il tipo di CPU

Le foto mostrano "+5 volt"

Quindi "un punto interessante, il manuale contiene una tabella con tutti i codici per i BIOS Phinks, AMI Avardavian, "non la conclusione più impressionante" è che la scheda guida una sciocchezza completa su LPT!

A proposito del manuale - 28 pagine A6 delle informazioni più pure sui codici POST, le designazioni dei segnali degli altoparlanti e il funzionamento CMOS. Mi occuperò delle traduzioni nel prossimo futuro, e lo presenterò all'abrosocietà, ma penso che aspetterò che la mappa del desktop faccia un manuale consolidato.

Sto aspettando la seconda carta e un laptop martire per test e revisioni a tutti gli effetti. Traduco e fumo il manuale.

P.S Domenica alle sei del mattino, forse mi sono perso qualcosa. Domande nei commenti, aggiungerò se necessario.

P.P.S l'articolo è stato scritto in modalità real-time, "al volo" durante la scrittura, riavviato e scattato una foto.

Nella preparazione dell'articolo sono state utilizzate due citazioni

Saluti, cari Khabroviti!

Non è il primo anno che mi occupo di diagnostica e rianimazione di desktop e laptop, principalmente a casa del cliente. Con il tempo, la conclusione si suggerisce che è necessario avere una valigia con sé, e forse anche una valigia con accessori per diagnosticare un pezzo di ferro difettoso. Alcuni potrebbero obiettare: "Puoi fare a meno dei componenti! L'esperienza ti consente di eseguire la diagnostica senza di loro! Questo è in parte vero, ma non fornisce una precisione al cento per cento, questo è un dato di fatto.

Fare affidamento sui codici POST degli altoparlanti? Non sempre possibile nello specifico determinare di cosa si lamenta. Ad esempio, un segnale acustico lungo e due brevi degli altoparlanti indicano un malfunzionamento del sistema video, ma questo non sempre significa un malfunzionamento della scheda video stessa. Ci sono, ad esempio, problemi con ulteriori alimentazione a questa stessa scheda video, e questo è già un malfunzionamento dell'alimentatore.

Qui mi fermerò e dirò ai cari lettori quali sono i segnali dell'oratore.

Quando si accende il computer, si avvia il BIOS (sistema di input / output di base), un fatto noto a tutti, ma non sarà superfluo menzionarlo. Come parte del BIOS, c'è un programma chiamato POST (power on self test).Come suggerisce il nome, il programma è progettato per la diagnostica iniziale dei dispositivi e delle porte sulla scheda madre.

La procedura di inizializzazione POST è accompagnata dalla visualizzazione dell'immagine sul monitor:

Dopo aver superato il POST, vediamo:

Durante l'esecuzione del POST viene generato un cosiddetto codice POST, che viene scritto in un apposito registro diagnostico.

In realtà, i segnali degli altoparlanti sono codici di errore durante l'esecuzione del POST, se il POST viene eseguito senza errori, si sente un breve segnale.

Passiamo ad un argomento.

Carte postali.

La scheda POST è una scheda di espansione, molto spesso ci sono schede in formato PCI:

Ci sono anche schede miniPCI (per laptop):

E ci sono schede per LPT (richiede alimentazione USB aggiuntiva):

Avendo a portata di mano un desktop con una diagnosi meravigliosa "non si accende" (da non confondere con "non si avvia"), molto spesso le periferiche non critiche vengono prima spente in sequenza: suono, sintonizzatore, scheda di rete, dischi rigidi, unità.
Quindi, se non vengono rilevati malfunzionamenti nel processo, inizia la sostituzione dei componenti: RAM, scheda video, processore (sì, la stessa valigia con pezzi di ferro).

Ma ora abbiamo tra le mani una POST card invece di una valigia con ferro, risparmiamo tempo bypassando la procedura sopra con la sostituzione/spegnimento del ferro (risparmiamo in media 40 minuti, noto che dopo aver spento un pezzo di ferro , viene eseguito almeno un ciclo di accensione e spegnimento).

In realtà, inseriamo la nostra meravigliosa mappa e guardiamo cosa succede.
E succede quanto segue: sul tabellone segnapunti della mappa abbiamo codici postali che ci indicano cosa viene testato in questo momento. Raggiunto l'elemento difettoso, la procedura di esecuzione del POST si interrompe e il codice rimane sul display, molto spesso viene allegato un manuale con i codici POST (variano a seconda del produttore e della versione del BIOS).

Confrontando il codice di errore con la sua decodifica, molto spesso otteniamo la diagnosi finale, come ad esempio: memoria difettosa, processore o un componente sulla scheda madre.

Suppongo di scrivere una serie di articoli sulla diagnostica, se l'argomento interessa ai Khabroviti.

Saluti, cari Khabroviti!

Non è il primo anno che mi occupo di diagnostica e rianimazione di desktop e laptop, principalmente a casa del cliente. Con il tempo, la conclusione si suggerisce che è necessario avere una valigia con sé, e forse anche una valigia con accessori per diagnosticare un pezzo di ferro difettoso. Alcuni potrebbero obiettare: "Puoi fare a meno dei componenti! L'esperienza ti consente di eseguire la diagnostica senza di loro! Questo è in parte vero, ma non fornisce una precisione al cento per cento, questo è un dato di fatto.

Fare affidamento sui codici POST degli altoparlanti? Non sempre possibile nello specifico determinare di cosa si lamenta. Ad esempio, un segnale acustico lungo e due brevi degli altoparlanti indicano un malfunzionamento del sistema video, ma questo non sempre significa un malfunzionamento della scheda video stessa. Ci sono, ad esempio, problemi con ulteriori alimentazione a questa stessa scheda video, e questo è già un malfunzionamento dell'alimentatore.

Qui mi fermerò e dirò ai cari lettori quali sono i segnali dell'oratore.

Quando si accende il computer, si avvia il BIOS (sistema di input / output di base), un fatto noto a tutti, ma non sarà superfluo menzionarlo. Come parte del BIOS, c'è un programma chiamato POST (power on self test).Come suggerisce il nome, il programma è progettato per la diagnostica iniziale dei dispositivi e delle porte sulla scheda madre.

La procedura di inizializzazione POST è accompagnata dalla visualizzazione dell'immagine sul monitor:

Dopo aver superato il POST, vediamo:

Durante l'esecuzione del POST viene generato un cosiddetto codice POST, che viene scritto in un apposito registro diagnostico.

In realtà, i segnali degli altoparlanti sono codici di errore durante l'esecuzione del POST, se il POST viene eseguito senza errori, si sente un breve segnale.

Passiamo ad un argomento.

Carte postali.

La scheda POST è una scheda di espansione, molto spesso ci sono schede in formato PCI:

Ci sono anche schede miniPCI (per laptop):

E ci sono schede per LPT (richiede alimentazione USB aggiuntiva):

Avendo a portata di mano un desktop con una diagnosi meravigliosa "non si accende" (da non confondere con "non si avvia"), molto spesso le periferiche non critiche vengono prima spente in sequenza: suono, sintonizzatore, scheda di rete, dischi rigidi, unità.
Quindi, se non vengono rilevati malfunzionamenti nel processo, inizia la sostituzione dei componenti: RAM, scheda video, processore (sì, la stessa valigia con pezzi di ferro).

Ma ora abbiamo tra le mani una POST card invece di una valigia con ferro, risparmiamo tempo bypassando la procedura sopra con la sostituzione/spegnimento del ferro (risparmiamo in media 40 minuti, noto che dopo aver spento un pezzo di ferro , viene eseguito almeno un ciclo di accensione e spegnimento).

In realtà, inseriamo la nostra meravigliosa mappa e guardiamo cosa succede.
E succede quanto segue: sul tabellone segnapunti della mappa abbiamo codici postali che ci indicano cosa viene testato in questo momento. Raggiunto l'elemento difettoso, la procedura di esecuzione del POST si interrompe e il codice rimane sul display, molto spesso viene allegato un manuale con i codici POST (variano a seconda del produttore e della versione del BIOS).

Confrontando il codice di errore con la sua decodifica, molto spesso otteniamo la diagnosi finale, come ad esempio: memoria difettosa, processore o un componente sulla scheda madre.

Suppongo di scrivere una serie di articoli sulla diagnostica, se l'argomento interessa ai Khabroviti.