Computers and modern gadgets

Testing faulty motherboards, be it desktop PCs or laptops, is unthinkable without POST cards. Unfortunately, at the moment the mini PCI bus in laptops is already gone, and there are no honest POST cards that work directly with the PCIe bus yet. All known testers actually use the LPC bus, which some manufacturers output to the free contacts of the mni PCIe connector. If the LPC bus is not routed there, repairmen have to solder to some microcircuits on the board using a fairly large number of wires. No, of course, there are not very many of them, but I would still like there to be even fewer. Is it possible? It turns out that in many cases - yes!

Mysterious connector

Let's look at the photo of the first laptop motherboard we came across. To do this, the author opened his own (the article is being written during the New Year holidays, so the evil watchmen are not allowed to work).

Let's take a closer look at the connector marked with an arrow.

What is this? Unfortunately, there was no schematic for this particular board in the collection (a shoemaker without boots), but here is a fragment of a schematic from a similar motherboard:

It turns out that this is nothing more than a two-wire POST! And it is available on many motherboards manufactured by COMPAL (which are found in laptops from many manufacturers). True, on some, it is hidden under a sticker, but finding it is not so difficult, if you would like to.

The abbreviation "P80" in the name of the circuits means nothing more than "PORT 80", that is, the classic POST port.

Conclusion

Based on this, the new BVG Group POST testers have added the ability to receive codes not only from the traditional mini PCI and LPC buses, but also from this two-wire bus. At the same time, the tester itself is still installed in the mini PCIe connector, from where it receives power (without this, the bus would be four-wire, and you would also have to run the ground and +3.3V), and two additional wires are connected to a similar connector. After turning on the power, the tester detects the presence of a two-wire bus and begins diagnostics using it. Otherwise, the operation is completely identical to the classic modes of operation with a POST tester, you just need to solder less. In addition, you need to solder not to the microcircuit contacts with a small pitch, but to the slot for the connector, where the pitch is much larger. True, it is impossible to say that “this connector is standardized”; there are also alternative pinouts, for example, the one given below, but still, there are only two variations, and the error will not lead to any fatal consequences. Just change the wires and everything will work.

I needed a high-quality interface for a CNC machine.
I’ll say right away that the parallel port does not suit me. because the quality of its implementation is questionable, there are few contacts (only 16 I/O, I don’t remember how many I and how many O) and the maximum operating frequency is up to 50 kHz, with questionable indicators for interference, steepness of edges, delays, etc.
To interface with a 6-axis machine, you will need 24 differential pairs of contacts (6 differential pairs for DIR signals, 6 differential pairs for PULSE signals).
In addition, I provided 12 TTL digital outputs (up to 50mA) and 12 opto-isolated general purpose digital inputs.
And all this stuff barely fit into a 50 pin SCSI connector, which I really like.


I discarded the first option, because then the implementation would depend entirely on this chip, its glitches or lack thereof.
those. we will rely entirely on someone to teach them the specification, figure out what driver is needed, how to write it, etc.

The second option is a little more labor-intensive initially, but then it gives more benefits, because FPGAs are probably the most universal devices in the world, and with their help you can make almost any interface, with any device, you can implement almost any circuit, etc.

Let's start with the most difficult one, the PCI bus. Everything is complicated by the fact that the specification is closed, there is not a lot of information on the Internet, but there is a way to get around the bourgeoisie.
Many FPGA manufacturers also have a set of standard implementations of various interfaces for an additional fee. a board (which sane people, of course, won’t pay), it’s all called IP Core (Xilinx for others may be different, but the idea is the same)
what it is? Well, it's like a library for linking code.
IP Core can be supplied as direct code (Verilog or VHDL) or as a special closed netlist (something like EDIF, but encrypted, each vendor has its own format and allows you to link them only using their development tools)
Thanks to the craftsmen who clearly hacked the Xilinx ISE 10.1 package, which allows you to access all IP Core absolutely free and at the source code level (which is the most useful for learning)
Everyone can find the distribution themselves on a well-known torrent tracker.

Further, there is a website fpga4fun.com where it talks as concisely as possible about all the features of the FPGA and there is no point in duplicating this information here. The site talks about FPGAs from two market leaders: Xylinx and Altera.
You will also need to learn Verilog, but if you have already programmed in some language, then this will not be more difficult.

Which chip to choose??
I settled on Xylinx Spartan xxx
There are several pitfalls here.
1) Compatible with PCI32 5V bus
2) The number of outputs that can be switched simultaneously (called SSO simultaneously switching outputs)
3) Case type: BGA or PQ (BGA is more difficult to solder, you will need an oven, or a good hair dryer and good luck)
4) Built-in flash or in a separate chip?
5) Maximum boot time before receiving the first signals from PCI

PCI32 5V bus compatible

This is probably the most responsible of all. You have to make a choice whether to use signal level conversion chips for all I/O buses (about 50) or use a modern FPGA (1.25V, 2.5V, 3.3V no 5V tolerant).
Or use an old FPGA.
For my project, I chose an old FPGA (Spartan II) and have not regretted it yet.
It should be noted that the use of level conversion chips introduces additional complications to the SSO problem, because
Such chips generate voltage overshots and undershots and can lead to errors.
Problem with SSO, power and maximum FPGA boot time for PCI32 3.3V:
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
The best Bus Switch connection for 5V PCI compatibility (which is the standard for home PCs):
http://www.xilinx.com/support/documentation/application_notes/xapp646.pdf
The problem with overshot and undershot is solved here by shifting the ground level for the level converter chips.
It should be especially noted that to increase the number of SSOs (also called Ground bounce), a shunt resistor is used to power the chip, setting the no-load current to 50mA (34 ohm resistor, for 3.3V power supply)
I saw such a resistor, or low-resistance feedback for LDO, in ALL pci boards that I managed to get.

The number of outputs that can be switched simultaneously (called SSO: simultaneously switching outputs)

This parameter is different for each chip and case type and is given in the datasheet.
For example, in my case with the PQ208 case type and the Spartan II model for the PCI standard, it is allowed to use up to 4 SSOs per power group, of which there are 16 in total in the device (two per bank, of which there are 8)

Next, I took the constants that came with IP Core PCI (version 3.199) (*.ucf file User Constants file)
And it turned out that they distributed all PCI signals into 4 banks (it turns out that 32 SSO signals are allowed, while the pci bus requires about 40 signals with steep edges):
http://www.xilinx.com/support/documentation/application_notes/xapp457.pdf
AD CBE PAR IRDY#, FRAME# REQ#
In addition, the jars are filled unevenly, which also violates the Acceptable SSO.
On the other hand, IP Core was tested in this configuration and I was afraid to change anything here.
at the risk of not investing in PCI bus timings due to the peculiarities of the internal FPGA architecture.
So I made extra efforts to increase SSO. I installed a shunt (120 ohm) at the output of each supply voltage regulator, good bypass capacitors, a multilayer PCB with a separate layer for ground, etc.
You should also think here about a convenient arrangement of pins for tracing the printed circuit board!

Package type: BGA or PQ

I chose PQ208, BGA has a greater advantage (twice the SSO), but there is a risk of not soldering at home, some contact may also be short-circuited due to the displacement of the chip, which is dangerous for your motherboard!.

Built-in flash or in a separate chip? and Maximum boot time before receiving the first signals from PCI

This is where I regretted for the first time that I had stuck with the old line of chips and not chosen the new Spartan 3AN (with built-in flash)
It turned out that each Spartan II model has its own chip programmable via JTAG.
It turned out to be quite expensive, and it seems that they will soon stop selling it.
XC18V01 (1 megabyte of flash in my case)
How to connect it to the Spartan II FPGA is in the datasheet.
It is possible either a serial interface or a parallel one, controlled by an internal FPGA clock or an external one!, I chose a serial one controlled by an FPGA, i.e. The stake signal is generated by the FPGA itself and after loading is completed it goes into operating mode.
The configuration loading frequency is 66MHz, for PCI32 5V this is enough to take 1.1 seconds (PCI32 5V 32Mhz) to load the full configuration. however, my project will only use a small portion of the configuration space.

Well, that seems to be all, I’ll soon post the printed circuit board and circuit in the next part.
Then the software will be ready and our PCI card will be ready.

Greetings, dear residents of Khabrovsk!

This is not the first year that I have been engaged in the diagnosis and resuscitation of desktops and laptops, mainly at the client’s home. Over time, the conclusion arises that you need to have a suitcase with you, and perhaps even a suitcase with components for diagnosing a faulty piece of hardware. Some may object to me - “You can do without components! Experience allows us to perform diagnostics without them!” This is partly true, but it does not give one hundred percent accuracy; it is a fact.

Rely on speaker POST codes? It's not always possible specifically determine what he is swearing at. For example, one long and two short beeps from the speaker indicate a malfunction of the video system, but this does not always mean a malfunction of the video card itself. There are, for example, problems with additional power supply to this same video card, and this is already a malfunction of the power supply.

Here I will stop and tell dear readers what speaker signals are.

When you turn on the computer, the BIOS (basic input/output system) starts - a fact known to everyone, but it would be worth mentioning. The BIOS contains a program called POST (power on self testing). As the name suggests, the program is designed for initial diagnostics of devices and ports of the motherboard.

The POST initialization procedure is accompanied by displaying an image on the monitor:

After passing POST we see:

During execution, POST generates a so-called POST code, which is written to a special diagnostic register.

Actually, the speaker signals are error codes when performing POST; if POST is performed without errors, we hear one short signal.

Let's move on to the subject.

POST cards.

A POST card is an expansion card; the most common are PCI cards:

There are also miniPCI format cards (for laptops):

And there are cards for LPT (require additional power via USB):

Having a desktop with a wonderful diagnosis “won’t turn on” (not to be confused with “won’t start”), most often the non-critical peripherals are first turned off in sequence - audio, tuner, network, hard drives, drives.
Then, if no faults are identified during the process, the replacement of components begins: RAM, video card, processor (yep, that same suitcase with hardware).

But now we have a POST card in our hands instead of a suitcase with hardware; saving time, we bypass the above-described procedure of replacing/disabling hardware (we save on average 40 minutes, I note that after disconnecting one piece of hardware, at least one on-off cycle is performed).

Actually, we insert our wonderful map and watch what happens.
And the following happens - on the map board we have post codes that indicate to us what is being tested at the moment. Having reached the faulty element, the POST procedure stops and the code remains on the display; in fact, the subject is most often accompanied by a manual with POST codes (they vary depending on the manufacturer and BIOS version).

By comparing the error code with its decoding, we most often get the final diagnosis, such as: faulty memory, processor, or component on the motherboard.

I plan to write a series of articles on diagnostics, if the topic is interesting to Khabrovsk residents.

Good day %habrauser%!

Just recently I wrote a post about POST cards, is that a good tautology?;-)?
In it, I promised to write a continuation if the topic is interesting, and since the topic really turned out to be interesting to Khabrovsk residents, I continue!

Actually the subject

As I mentioned in the comments, for my first article, I ordered cards for myself - this one for laptops and this one for desktops.

The order was placed on the twentieth of January (I can’t indicate the exact dates; I was not involved in the order, tracking and receipt). The other day this card arrived, it’s a laptop card, but I have to wait for a desktop one. Here I want to express some indignation -
1) The cards were ordered as one order, they are coming differently (I hope that the second one is still coming and not lost);
2) Delivery times! Of course, I can understand that they had Chinese New Year, but a month (judging by the date on the parcel) is too much, especially considering the fact that there were three of them ( THREE) weeks!
3) Dilextreem charges about 200 rubles for issuing a parcel track, the track itself is free and is assigned to each parcel, so the verdict is hucksters!
At these points my indignation ends and I begin the review.

The card came in a parcel, the inside of the parcel is glued with a peace of mind generator, the card itself is packed in it and in anti-static, so the Chinese approach packaging issues thoroughly. In anti-static we have the card itself, a USB cable and a User Manual.

This card is designed for mini PCI and also has ( not intended why read further) port for LPT, USB is needed to power the card. The first thing I wanted to do was test it, of course! But I don’t have a laptop at hand, so with pure intentions I decided to test it on the LPT port.

Actually stuck the card

When power is applied, the card shows "--" and "FF".

Turn on the car

Then the card changes the image several times, and again “FF00” the system boots. A reasonable question and the desire to find out what kind of codes flashed by, leads to a simple conclusion that the only two buttons allow you to scroll through the codes, and voila! So it is, we press the button, we see

Now on the left panel is the serial number of the POST code, on the right is the code itself. (not in order because it repeats at the beginning)

Poke the button

Poke the button

Poke the button

Poke again

Poke again

Once again

And a little more

Here's the last one

Here we come to one interesting point and not the most impressive conclusion.
An interesting point is the User manual, at the very beginning of the manual we have the designation of LEDs

“+5 volts” lights up all the time while the mother is turned on, it’s quite logical because it’s USB ;-)

“+3.3 volts” is the same power indicator as “+5 volts” and does not light up when there is no power on the PCI slot (or the mother does not support it, the couple did not understand the exact translation, in the original )

"FRAME" lights up when the "FRAME" signal is active.

FRAME (I/O)
Contact A34

The FRAME signal is issued by the current PCI bus master. FRAME transition to low, i.e. active, the level initiates the addressing phase. To indicate the last data phase that completes the bus cycle, the master must deactivate FRAME again.

"CLK" lights up when the "CLK" signal is active.

CLK(O)
Contact B16

This pin transmits the PCI timer signal that accompanies all PCI operations. In accordance with technical requirements, its frequency lies in the range from 0 to 33 MHz.

"RSET" lights up during reboot

"+12" enable formal logic

"-12" enable formal logic

"-5" is the same as "+3.3 volts"

Decoding codes

BIOS on Phoenix mother.

FF in my cases is the presence of +5 on USB

A5 is not listed in the manual (it’s just empty)

AA wait pressing F2 key

55 enable USB devices

04 get CPU type

The photos show "+5 volts"

So “an interesting point, in the manual there is a table with all the codes for the Finks, AMI Avardav BIOSes, “not the most impressive conclusion” is that the card drives complete nonsense over LPT!

Speaking of the manual - 28 pages of A6 format with the purest information on POST codes, designations of speaker signals and CMOS operation. I’ll do the translations in the near future and present them to the habro community, but I’m thinking of waiting for the desktop map to make a consolidated manual.

I'm waiting for the second card and laptop martyr for full tests and reviews. I'm translating and smoking the manual.

P.S. It’s six o’clock in the morning on Sunday, maybe I missed something. Questions in the comments, I will add if necessary.

P.P.S the article was written in real time, “on the fly” while I was writing, I rebooted and took a photo.

Two quotes were used in preparing the article

Greetings, dear residents of Khabrovsk!

This is not the first year that I have been engaged in the diagnosis and resuscitation of desktops and laptops, mainly at the client’s home. Over time, the conclusion arises that you need to have a suitcase with you, and perhaps even a suitcase with components for diagnosing a faulty piece of hardware. Some may object to me - “You can do without components! Experience allows us to perform diagnostics without them!” This is partly true, but it does not give one hundred percent accuracy; it is a fact.

Rely on speaker POST codes? It's not always possible specifically determine what he is swearing at. For example, one long and two short beeps from the speaker indicate a malfunction of the video system, but this does not always mean a malfunction of the video card itself. There are, for example, problems with additional power supply to this same video card, and this is already a malfunction of the power supply.

Here I will stop and tell dear readers what speaker signals are.

When you turn on the computer, the BIOS (basic input/output system) starts - a fact known to everyone, but it would be worth mentioning. The BIOS contains a program called POST (power on self testing). As the name suggests, the program is designed for initial diagnostics of devices and ports of the motherboard.

The POST initialization procedure is accompanied by displaying an image on the monitor:

After passing POST we see:

During execution, POST generates a so-called POST code, which is written to a special diagnostic register.

Actually, the speaker signals are error codes when performing POST; if POST is performed without errors, we hear one short signal.

Let's move on to the subject.

POST cards.

A POST card is an expansion card; the most common are PCI cards:

There are also miniPCI format cards (for laptops):

And there are cards for LPT (require additional power via USB):

Having a desktop with a wonderful diagnosis “won’t turn on” (not to be confused with “won’t start”), most often the non-critical peripherals are first turned off in sequence - audio, tuner, network, hard drives, drives.
Then, if no faults are identified during the process, the replacement of components begins: RAM, video card, processor (yep, that same suitcase with hardware).

But now we have a POST card in our hands instead of a suitcase with hardware; saving time, we bypass the above-described procedure of replacing/disabling hardware (we save on average 40 minutes, I note that after disconnecting one piece of hardware, at least one on-off cycle is performed).

Actually, we insert our wonderful map and watch what happens.
And the following happens - on the map board we have post codes that indicate to us what is being tested at the moment. Having reached the faulty element, the POST procedure stops and the code remains on the display; in fact, the subject is most often accompanied by a manual with POST codes (they vary depending on the manufacturer and BIOS version).

By comparing the error code with its decoding, we most often get the final diagnosis, such as: faulty memory, processor, or component on the motherboard.

I plan to write a series of articles on diagnostics, if the topic is interesting to Khabrovsk residents.

If you notice an error, select a piece of text and press Ctrl+Enter
SHARE:
Computers and modern gadgets