Hjemmelaget postkort via skriverport.

Systemadministrasjon

Hilsen, kjære innbyggere i Khabrovsk!

Dette er ikke det første året jeg har vært involvert i diagnostisering og gjenoppliving av stasjonære og bærbare datamaskiner, hovedsakelig hjemme hos klienten. Over tid kommer konklusjonen at du må ha med deg en koffert, og kanskje til og med en koffert med komponenter for å diagnostisere en defekt maskinvare. Noen vil kanskje protestere mot meg - "Du kan klare deg uten komponenter! Erfaring lar oss utføre diagnostikk uten dem!» Dette er delvis sant, men det gir ikke hundre prosent nøyaktighet det er et faktum. Stole på høyttalerens postkoder? Det er ikke alltid mulig spesifikt

finne ut hva han sverger til. For eksempel indikerer et langt og to korte pip fra høyttaleren en funksjonsfeil i videosystemet, men dette betyr ikke alltid en funksjonsfeil på selve skjermkortet. Det er for eksempel problemer med tillegg strømforsyning til det samme skjermkortet, og dette er allerede en feil i strømforsyningen.

Her vil jeg stoppe opp og fortelle kjære lesere hva høyttalersignaler er.

Når du slår på datamaskinen, starter BIOS (grunnleggende input/output system) - et faktum kjent for alle, men det ville være verdt å nevne. BIOS inneholder et program kalt POST (power on self testing) Som navnet antyder, er programmet designet for innledende diagnostikk av enheter og porter på hovedkortet.

POST-initialiseringsprosedyren er ledsaget av visning av et bilde på skjermen:

Etter å ha bestått POST ser vi:

Under utførelse genererer POST en såkalt POST-kode, som skrives til et spesielt diagnoseregister.

Faktisk er høyttalersignalene feilkoder når du utfører POST hvis POST utføres uten feil, hører vi ett kort signal.

La oss gå videre til emnet.

POST-kort.

Et POST-kort er et utvidelseskort, det vanligste er PCI-kort:

Det finnes også kort i miniPCI-format (for bærbare datamaskiner):

Og det er kort for LPT (krever ekstra strøm via USB):
Å ha et skrivebord med en fantastisk diagnose "vil ikke slå seg på" (ikke å forveksle med "vil ikke starte"), blir oftest ikke-kritiske periferiutstyr først slått av i rekkefølge - lyd, tuner, nettverk, harddisker , kjører.

Men nå har vi et POST-kort i hendene i stedet for en koffert med maskinvare og sparer tid, vi omgår den ovenfor beskrevne prosedyren for å erstatte/deaktivere maskinvare (vi sparer i gjennomsnitt 40 minutter, jeg merker at etter å ha koblet fra ett stykke maskinvare, minst én av-på-syklus utføres).

Faktisk setter vi inn vårt fantastiske kart og ser på hva som skjer.
Og følgende skjer - på karttavlen har vi postnumre som indikerer for oss hva som testes for øyeblikket. Etter å ha nådd det defekte elementet, stopper POST-prosedyren og koden forblir på skjermen, faktisk er emnet oftest ledsaget av en manual med POST-koder (de varierer avhengig av produsenten og BIOS-versjonen).

Ved å sammenligne feilkoden med dens dekoding får vi oftest den endelige diagnosen, for eksempel: feil på minne, prosessor eller komponent på hovedkortet.

Jeg planlegger å skrive en serie artikler om diagnostikk, hvis emnet er interessant for innbyggerne i Khabrovsk.

God dag %habrauser%!

Jeg skrev nylig et innlegg om POST-kort, er det en god tautologi?;-)?
I den lovet jeg å skrive en fortsettelse hvis emnet er interessant, og siden emnet virkelig viste seg å være interessant for innbyggerne i Khabrovsk, fortsetter jeg!

Egentlig emnet

Som jeg nevnte i kommentarene, for min første artikkel, bestilte jeg kort til meg selv - dette for bærbare datamaskiner og dette for stasjonære datamaskiner.

Bestillingen ble lagt inn den tjuende januar (jeg kan ikke angi de nøyaktige datoene; jeg var ikke involvert i bestillingen, sporingen og mottaket). Her om dagen kom dette kortet, det er et bærbart kort, men jeg må vente på et skrivebordskort. Her vil jeg uttrykke litt indignasjon -
1) Kortene ble bestilt som én ordre, de kommer annerledes (jeg håper at det andre fortsatt kommer og ikke går tapt);
2) Leveringstider! Selvfølgelig kan jeg forstå at de hadde kinesisk nyttår, men en måned (etter datoen på pakken å dømme) er for mye, spesielt med tanke på at det var tre av dem ( TRE) uker!
3) Dilextreem tar rundt 200 rubler for å utstede et pakkespor, selve sporet er gratis og tilordnes hver pakke, så dommen er hucksters!
På disse punktene slutter min indignasjon og jeg begynner anmeldelsen.

Kortet kom i en pakke, innsiden av pakken var limt med en sjelefredsgenerator, selve kortet var pakket i den og i antistatisk, så kineserne nærmer seg emballasjespørsmål grundig. I antistatisk har vi selve kortet, en USB-kabel og en brukermanual.

Dette kortet er designet for mini PCI og har også ( ikke ment hvorfor lese videre) port for LPT, USB er nødvendig for å drive kortet. Det første jeg ville gjøre var å teste den, selvfølgelig! Men jeg har ikke en bærbar datamaskin for hånden, så med rene hensikter bestemte jeg meg for å teste den på LPT-porten.

Har faktisk satt fast kortet

Når strømmen kobles til, viser kortet "--" og "FF".

Slå på bilen

Deretter endrer kortet bildet flere ganger, og igjen "FF00" starter systemet. Et rimelig spørsmål og ønsket om å finne ut hva slags koder som blinket av, fører til en enkel konklusjon om at de eneste to knappene lar deg bla gjennom kodene, og vips! Så det er, vi trykker på knappen, ser vi

Nå på venstre panel er serienummeret til POST-koden, til høyre er selve koden. (ikke i rekkefølge fordi den gjentas i begynnelsen)

Stikk på knappen

Stikk på knappen

Stikk på knappen

Pike igjen

Pike igjen

Og nok en gang

Og litt til

Her er den siste

Her kommer vi til ett interessant punkt og ikke den mest imponerende konklusjonen.
Et interessant poeng er brukermanualen, helt i begynnelsen av manualen har vi betegnelsen på lysdioder

"+5 volt" lyser hele tiden mens moren er slått på, det er ganske logisk fordi det er USB ;-)

"+3,3 volt" er den samme strømindikatoren som "+5 volt" og lyser ikke når det ikke er strøm på PCI-sporet (eller moren ikke støtter det, paret forsto ikke den nøyaktige oversettelsen, i opprinnelig )

"FRAME" lyser når "FRAME"-signalet er aktivt.

RAMME (I/O)
Ta kontakt med A34

FRAME-signalet utstedes av gjeldende PCI-bussmaster. FRAME overgang til lav, dvs. aktivt, starter nivået adresseringsfasen. For å indikere den siste datafasen som fullfører busssyklusen, må masteren deaktivere FRAME igjen.

"CLK" lyser når "CLK"-signalet er aktivt.

CLK(O)
Ta kontakt med B16

Denne pinnen overfører PCI-timersignalet som følger med alle PCI-operasjoner. I samsvar med tekniske krav ligger frekvensen i området fra 0 til 33 MHz.

"RSET" lyser under omstart

"+12" aktiverer formell logikk

"-12" aktiverer formell logikk

"-5" er det samme som "+3,3 volt"

Dekoding av koder

BIOS på Phoenix mor.

FF i mine tilfeller er tilstedeværelsen av +5 på USB

A5 er ikke oppført i manualen (den er bare tom)

AA vent ved å trykke på F2-tasten

55 aktivere USB-enheter

04 få CPU-type

Bildene viser "+5 volt"

Så "et interessant poeng, i manualen er det en tabell med alle kodene for Finks, AMI Avardav BIOSes, "ikke den mest imponerende konklusjonen" er at kortet driver fullstendig tull over LPT!

Apropos manualen - 28 sider i A6-format med den reneste informasjonen om POST-koder, betegnelser på høyttalersignaler og CMOS-drift. Jeg skal gjøre oversettelsene i nær fremtid og presentere dem for habro-fellesskapet, men jeg tenker på å vente på skrivebordskartet for å lage en konsolidert manual.

Jeg venter på det andre kortet og laptop-martyren for fullstendige tester og anmeldelser. Jeg oversetter og røyker manualen.

P.S. Klokken er seks om morgenen på søndag, kanskje jeg gikk glipp av noe. Spørsmål i kommentarene, jeg vil legge til om nødvendig.

P.P.S artikkelen ble skrevet i sanntid, "i farten" mens jeg skrev, jeg startet på nytt og tok et bilde.

To sitater ble brukt i utarbeidelsen av artikkelen

Systemadministrasjon

Hilsen, kjære innbyggere i Khabrovsk!

Dette er ikke det første året jeg har vært involvert i diagnostisering og gjenoppliving av stasjonære og bærbare datamaskiner, hovedsakelig hjemme hos klienten. Over tid kommer konklusjonen at du må ha med deg en koffert, og kanskje til og med en koffert med komponenter for å diagnostisere en defekt maskinvare. Noen vil kanskje protestere mot meg - "Du kan klare deg uten komponenter! Erfaring lar oss utføre diagnostikk uten dem!» Dette er delvis sant, men det gir ikke hundre prosent nøyaktighet det er et faktum. Stole på høyttalerens postkoder? Det er ikke alltid mulig spesifikt

finne ut hva han sverger til. For eksempel indikerer et langt og to korte pip fra høyttaleren en funksjonsfeil i videosystemet, men dette betyr ikke alltid en funksjonsfeil på selve skjermkortet. Det er for eksempel problemer med tillegg strømforsyning til det samme skjermkortet, og dette er allerede en feil i strømforsyningen.

Her vil jeg stoppe opp og fortelle kjære lesere hva høyttalersignaler er.

Når du slår på datamaskinen, starter BIOS (grunnleggende input/output system) - et faktum kjent for alle, men det ville være verdt å nevne. BIOS inneholder et program kalt POST (power on self testing) Som navnet antyder, er programmet designet for innledende diagnostikk av enheter og porter på hovedkortet.

POST-initialiseringsprosedyren er ledsaget av visning av et bilde på skjermen:

Etter å ha bestått POST ser vi:

Under utførelse genererer POST en såkalt POST-kode, som skrives til et spesielt diagnoseregister.

Faktisk er høyttalersignalene feilkoder når du utfører POST hvis POST utføres uten feil, hører vi ett kort signal.

La oss gå videre til emnet.

POST-kort.

Et POST-kort er et utvidelseskort, det vanligste er PCI-kort:

Det finnes også kort i miniPCI-format (for bærbare datamaskiner):

Og det er kort for LPT (krever ekstra strøm via USB):
Å ha et skrivebord med en fantastisk diagnose "vil ikke slå seg på" (ikke å forveksle med "vil ikke starte"), blir oftest ikke-kritiske periferiutstyr først slått av i rekkefølge - lyd, tuner, nettverk, harddisker , kjører.

Men nå har vi et POST-kort i hendene i stedet for en koffert med maskinvare og sparer tid, vi omgår den ovenfor beskrevne prosedyren for å erstatte/deaktivere maskinvare (vi sparer i gjennomsnitt 40 minutter, jeg merker at etter å ha koblet fra ett stykke maskinvare, minst én av-på-syklus utføres).

Faktisk setter vi inn vårt fantastiske kart og ser på hva som skjer.
Og følgende skjer - på karttavlen har vi postnumre som indikerer for oss hva som testes for øyeblikket. Etter å ha nådd det defekte elementet, stopper POST-prosedyren og koden forblir på skjermen, faktisk er emnet oftest ledsaget av en manual med POST-koder (de varierer avhengig av produsenten og BIOS-versjonen).

Ved å sammenligne feilkoden med dens dekoding får vi oftest den endelige diagnosen, for eksempel: feil på minne, prosessor eller komponent på hovedkortet.

Jeg planlegger å skrive en serie artikler om diagnostikk, hvis emnet er interessant for innbyggerne i Khabrovsk.

Jeg trengte et grensesnitt av høy kvalitet for en CNC-maskin.
Jeg vil si med en gang at parallellporten ikke passer meg. fordi kvaliteten på implementeringen er tvilsom, det er få kontakter (bare 16 I/O, jeg husker ikke hvor mange I og hvor mange O) og den maksimale driftsfrekvensen er opptil 50 kHz, med tvilsomme indikatorer for interferens, bratthet av kanter, forsinkelser osv.
For å koble til en 6-akset maskin trenger du 24 differensialpar med kontakter (6 differensialpar for DIR-signaler, 6 differensialpar for PULSE-signaler).
I tillegg ga jeg 12 TTL digitale utganger (opptil 50mA) og 12 opto-isolerte digitale innganger for generell bruk.
Og alle disse tingene passer knapt inn i en 50-pinners SCSI-kontakt, noe jeg virkelig liker.


Jeg forkastet det første alternativet, for da ville implementeringen avhenge helt av denne brikken, dens feil eller mangel på den.
de. vi vil stole helt på at noen lærer dem spesifikasjonen, finner ut hvilken driver som trengs, hvordan den skal skrives osv.

Det andre alternativet er litt mer arbeidskrevende i utgangspunktet, men så gir det flere fordeler, fordi FPGA-er sannsynligvis er de mest universelle enhetene i verden, og med deres hjelp kan du lage nesten hvilket som helst grensesnitt, med hvilken som helst enhet, kan du implementere nesten hvilken som helst krets osv.

La oss starte med den vanskeligste, PCI-bussen. Alt kompliseres av det faktum at spesifikasjonen er lukket, det er ikke mye informasjon på Internett, men det er en måte å komme seg rundt i borgerskapet.
Mange FPGA-produsenter har også et sett med standardimplementeringer av ulike grensesnitt mot en ekstra avgift. et brett (som fornuftige mennesker selvfølgelig ikke vil betale), det hele kalles IP Core (Xilinx for andre kan være annerledes, men ideen er den samme)
hva er dette? Vel, det er som et bibliotek for å koble kode.
IP Core kan leveres som direkte kode (Verilog eller VHDL) eller som en spesiell lukket nettliste (noe som EDIF, men kryptert, hver leverandør har sitt eget format og lar deg koble dem kun ved å bruke deres utviklingsverktøy)
Takk til håndverkerne som tydelig hacket Xilinx ISE 10.1-pakken, som lar deg få tilgang til all IP Core helt gratis og på kildekodenivået (som er det mest nyttige for læring)
Alle kan finne distribusjonen selv på en kjent torrent-tracker.

Videre er det et nettsted fpga4fun.com der den snakker så kortfattet som mulig om alle funksjonene til FPGA, og det er ingen vits i å duplisere denne informasjonen her. Nettstedet snakker om FPGA-er fra to markedsledere: Xylinx og Altera.
Du må også lære deg Verilog, men hvis du allerede har programmert på et eller annet språk, blir ikke dette vanskeligere.

Hvilken brikke å velge??
Jeg slo meg på Xylinx Spartan xxx
Det er flere fallgruver her.
1) Kompatibel med PCI32 5V buss
2) Antall utganger som kan byttes samtidig (kalt SSO som samtidig bytter utganger)
3) Sakstype: BGA eller PQ (BGA er vanskeligere å lodde, du trenger en ovn eller en god hårføner og lykke til)
4) Innebygd blits eller i en egen brikke?
5) Maksimal oppstartstid før mottak av de første signalene fra PCI

PCI32 5V busskompatibel

Dette er sannsynligvis den mest ansvarlige av alle. Du må velge om du vil bruke signalnivåkonverteringsbrikker for alle I/O-busser (ca. 50) eller bruke en moderne FPGA (1.25V, 2.5V, 3.3V ingen 5V tolerant).
Eller bruk en gammel FPGA.
For prosjektet mitt valgte jeg en gammel FPGA (Spartan II) og har ikke angret ennå.
Det skal bemerkes at bruken av nivåkonverteringsbrikker introduserer ekstra kompleksitet til SSO-problemet, fordi
Slike brikker genererer spenningsover- og underskudd og kan føre til feil.
Problem med SSO, strøm og maksimal FPGA-oppstartstid for PCI32 3.3V:
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
Den beste Bus Switch-tilkoblingen for 5V PCI-kompatibilitet (som er standarden for hjemme-PCer):
http://www.xilinx.com/support/documentation/application_notes/xapp646.pdf
Problemet med over- og underslag løses her ved å forskyve bakkenivået for nivåomformerbrikkene.
Det bør spesielt bemerkes at for å øke antallet SSOer (også kalt Ground Bounce), brukes en shuntmotstand for å drive brikken, og setter tomgangsstrømmen til 50mA (34 ohm motstand, for 3,3V strømforsyning)
Jeg så en slik motstand, eller lav-motstand feedback for LDO, i ALLE pci-kort som jeg klarte å få.

Antall utganger som kan byttes samtidig (kalt SSO: samtidig bytte utganger)

Denne parameteren er forskjellig for hver brikke og kassetype og er gitt i dataarket.
For eksempel, i mitt tilfelle med PQ208-kassetypen og Spartan II-modellen for PCI-standarden, er det tillatt å bruke opptil 4 SSOer per strømgruppe, hvorav det er 16 totalt i enheten (to per bank, av som det er 8)

Deretter tok jeg konstantene som fulgte med IP Core PCI (versjon 3.199) (*.ucf-fil User Constants-fil)
Og det viste seg at de distribuerte alle PCI-signaler i 4 banker (det viser seg at 32 SSO-signaler er tillatt, mens pci-bussen krever ca. 40 signaler med bratte kanter):
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
AD CBE PAR IRDY#, RAMME# REQ#
I tillegg er glassene fylt ujevnt, noe som også bryter med akseptabel SSO.
På den annen side ble IP Core testet i denne konfigurasjonen og jeg var redd for å endre noe her.
med fare for å ikke investere i PCI-busstider på grunn av særegenhetene til den interne FPGA-arkitekturen.
Så jeg gjorde en ekstra innsats for å øke SSO. Jeg installerte en shunt (120 ohm) ved utgangen til hver forsyningsspenningsregulator, gode bypass-kondensatorer, et flerlags PCB med et eget lag for jord, etc.
Du bør også tenke her på et praktisk arrangement av pinner for å spore kretskortet!

Pakketype: BGA eller PQ

Jeg valgte PQ208, BGA har en større fordel (dobbelt SSO), men det er en risiko for å ikke lodde hjemme, noe kontakt kan også kortsluttes på grunn av forskyvningen av brikken, noe som er farlig for hovedkortet ditt!.

Innebygd blits eller i en egen brikke? og Maksimal oppstartstid før mottak av de første signalene fra PCI

Det var her jeg angret for første gang på at jeg hadde holdt meg til den gamle serien med sjetonger og ikke valgt den nye Spartan 3AN (med innebygd blits)
Det viste seg at hver Spartan II-modell har sin egen chip som kan programmeres via JTAG.
Det viste seg å være ganske dyrt, og det ser ut til at de snart slutter å selge det.
XC18V01 (1 megabyte flash i mitt tilfelle)
Hvordan koble den til Spartan II FPGA er i dataarket.
Det er mulig enten et serielt grensesnitt eller et parallelt, kontrollert av en intern FPGA-klokke eller en ekstern!, jeg valgte en seriell en kontrollert av en FPGA, dvs. Innsatssignalet genereres av selve FPGAen, og etter at lasting er fullført, går den inn i driftsmodus.
Koner 66MHz, for PCI32 5V er dette nok til å ta 1,1 sekunder (PCI32 5V 32Mhz) å laste hele konfigurasjonen. prosjektet mitt vil imidlertid bare bruke en liten del av konfigurasjonsplassen.

Vel, det ser ut til å være alt, jeg vil snart legge ut kretskortet og kretsen i neste del.
Da vil programvaren være klar og PCI-kortet vårt er klart.

Å teste defekte hovedkort, det være seg stasjonære PC-er eller bærbare datamaskiner, er utenkelig uten POST-kort. Dessverre, for øyeblikket er mini-PCI-bussen i bærbare datamaskiner allerede borte, og det er ingen ærlige POST-kort som fungerer direkte med PCIe-bussen ennå. Alle kjente testere bruker faktisk LPC-bussen, som noen produsenter sender ut til de ledige kontaktene til mni PCIe-kontakten. Hvis LPC-bussen ikke rutes dit, må reparatører lodde til noen mikrokretser på brettet ved hjelp av et ganske stort antall ledninger. Nei, det er selvfølgelig ikke så veldig mange av dem, men jeg skulle likevel ønske at det ble enda færre. Er dette mulig? Det viser seg at i mange tilfeller – ja!

Mystisk kontakt

La oss se på bildet av det første bærbare hovedkortet vi kom over. For å gjøre dette åpnet forfatteren sin egen (artikkelen blir skrevet i løpet av nyttårsferien, så de onde vekterne har ikke lov til å jobbe).

La oss se nærmere på kontakten merket med en pil.

Hva er dette? Dessverre var det ingen skjema for akkurat dette brettet i samlingen (en skomaker uten støvler), men her er et fragment av et skjema fra et lignende hovedkort:

Det viser seg at dette ikke er noe mer enn en to-leder POST! Og det er tilgjengelig på mange hovedkort produsert av COMPAL (som finnes i bærbare datamaskiner fra mange produsenter). Riktignok på noen er det skjult under et klistremerke, men å finne det er ikke så vanskelig, hvis du vil.

Forkortelsen "P80" i navnet på kretsene betyr ikke noe mer enn "PORT 80", det vil si den klassiske POST-porten.

Konklusjon

Basert på dette har de nye BVG Group POST-testerne lagt til muligheten til å motta koder ikke bare fra de tradisjonelle mini PCI- og LPC-bussene, men også fra denne totrådsbussen. Samtidig er selve testeren fortsatt installert i mini PCIe-kontakten, hvorfra den mottar strøm (uten dette ville bussen vært fireleder, og du må også kjøre jord og +3,3V), og to ekstra ledninger er koblet til en lignende kontakt. Etter å ha slått på strømmen, oppdager testeren tilstedeværelsen av en totrådsbuss og begynner diagnostikk ved å bruke den. Ellers er operasjonen helt identisk med de klassiske driftsmodusene med en POST-tester, du trenger bare å lodde mindre. I tillegg må du ikke lodde til mikrokretskontaktene med en liten stigning, men til sporet for kontakten, hvor stigningen er mye større. Riktignok er det umulig å si at "denne kontakten er standardisert" det er også alternative pinouts, for eksempel den som er gitt nedenfor, men likevel er det bare to varianter, og feilen vil ikke føre til noen fatale konsekvenser. Bare bytt ledninger og alt vil fungere.