1.2.2011 14:58, Peter Stuge kirjoitti:
Juhana Helovuo wrote:
unit that can administer testing of one or even better several mainboards. I have plenty of design and implementation ideas if you'd like to go into that.
I started building a tester device to hook up a mainboard into an automated test host.
Nice.
Thanks for your supportive comments. I think I was a bit unclear on some points, so you misunderstood some details.
The basic plan is as follows: The host computer is connected to tester device via USB.
This certainly makes the device itself simpler. But it requires *another* system to be monitoring all these devices.. I can't seem to let go of the thought that I would prefer a tester device to be connected directly to the internet, and work autonomously. Ethernet is simple enough with something like an LM3S6965 ARM. WiFi would be a nice option, but will also increase the unit cost..
That would be another design strategy. However, I wanted to make the tester device to be just a simple interface between USB and the target mainboard. That makes it easier to design and fabricate with hobbyist methods and budget.
A design constraint for me is e.g. using only components that I can solder into a self-designed, self-made PCB. Using small pitch SMD devices or a components requiring reflow soldering seems a bit too much right now.
Also the tester device firmware will be simpler this way. I discovered that flashrom utility alone is quite a complicated piece.
The tester is connected to the target mainboard so that it can take control of the BIOS ROM and reprogram it regardless of the state of the target mainbaord.
Yes. A flash emulator would of course be ideal, but also requires some programmable logic, ie. either one more component, or a larger component. In some cases board size is critical, e.g. to fit a tester inside a tight case.
Flash emulator would be nice, but emulating a SPI flash ROM would require single clock cycle response times for ordinary read commands. There is very little time for the ROM from receiving the last address bit to start transmitting the data. I do not have a document at hand, but I recall that for the AMD SB7x0 this should be done at 16...33 MHz clock rate. Some SPI controllers could do it even faster, since many ROM chips are rated to operate up to 60 MHz or more.
The tester device can also connect to the serial port of the target mainboard, so it can act as a serial-over-USB-device.
Right. Either the tester just has a UART, or if it is networked then it will itself do the checkpointing. As for the USB device, it's fairly important to use a generic USB hardware. The ATmega U chips
I am currently working with AT90USB162. The choice was also influenced by easy availability and ease of soldering.
The tester also has two FET switches for controlling the reset and ATX power buttons on the target mainboard.
Yep. I've also been thinking that the power good signal could be used. One problem with FETs is that they must be plugged in to the mainboard the right way. It would be significantly simpler to use the device if it had a solid state switch instead, but that's also more expensive.
The FET switch device I am using is this: http://focus.ti.com/docs/prod/folders/print/sn74cbt3306.html
I believe it should work with the terminals plugged either way around. It should also work regardless of the voltage used in the mainboard switch sensing pins. E.g. in my test mainbaord the reset and atx power switch pins have different operating voltages (5V and 3.3V).
The actual AC power control of the target mainboard is not included and should be done by another device, such as this: http://www.gembird.nl/default.aspx?op=products&op2=item&id=3234
Do you know where these units can be purchased, with the various voltage ratings and power plugs that are needed around the world?
I haven't tried internationally. In Finland, Jimm's PC claims to have them in stock a total of 4 pcs.
http://www.jimms.fi/tuote/SIS-PMS
No idea about different plug types, but I believe this one would work at least in Finland, Sweden, and Germany.
With USB connectivity I think it is important to really take advantage of the simplicity and efficiency of USB, rather than emulating a serial port on top of it. Also, having a serial port over USB both for target connectivity, *and* for flash programming, is IMO unneccssarily confusing. For the flashing we will simply implement the serprog protocol properly using native USB concepts. It should be very easy.
Yes, communication from flashrom program to SPI ROM should go over native USB, no serial emulation needed.
I used serial port only for testing that I can actually talk to the SPI ROM from the microcontroller. The test setup was based on Arduino Uno, which can do only serial-over-USB.
Best regards, Juhana Helovuo