I have a question that I hope someone on here can answer, or give me an insight:
Is there any way to do a quick check on a microprocessor to determine if it's "alive"? I realize manufacturers use million-dollar testers for functional testing, but is there a way to "generically" do a quick check on the bench using standard test equipment?
Ditto for speed? How can one determine if a microprocessor will run at its marked speed on a bench?
If there is a "generic" feature set that is common to most microprocessors, and what might that be?
How can one check for this - as far as hardware and software requirements?
I guess I am looking for a "generic" test setup that can do something like a bare-bones electrical QC on different microprocessor families.
Thanks for all the prompt replies I've seen so far.
I work for a reseller, and my company acts as the broker for large batches of different types of microprocessors bought on the "gray" market to meet production shortages. There is no longer any manufacturer's warranty, therefore there is a desire to screen out parts that are dead, slow, or counterfeit. It appears there are folks out there who are making a living remarking slow parts, or assembling parts that have been scrapped off the manufacturer's production line...
I've been told that after a microprocessor leaves the manufacturer, there is really no way to test it except on a motherboard/application board (or some kind of evaluation board). My customers are doing this after their assembly process. But it would be nice to have some kind of meaningful acceptance testing at my end before they get the part.
I've received suggestions that (1) maybe there is a way to see if the thing wiggles (the assumption is if you can wiggle it (maybe getting it in and out of reset?), it's probably good - or there is a live chip inside anyway), and (2) maybe there is a way to do something like adding 2 and 2 (or loop on something) to see if the thing can perform at the advertised speed.
Evidently I would need the services of an EE to attempt something like this. And if this "generic microprocessor checker" can be built, I suspect it's going to be a challenge mechanically, owing to all the different pin-outs and package types. I just wanted to know from the experts on here if this is something that is worth pursuing, or proposing to my management.
If so, you can probe around with an oscope and you will get some repeatible waveforms. Now go to your "bad" board and do an A-B comparison. With some trial and error you will find some waveforms (pins) that will give you a "state-of-health". And this without knowing anything about the processor or application.
Tough. The only crude way I have used in the past is a coil placed on top of it in a precisely repeatable position and looking at the spectrum. But that is crude and only comparative. I just needed it to see if something was running on it and to figure out if any of the spectrum would be synchronous to noise I was chasing.
Only via a full electrical test, since all its functions must keep up at the rated speed.
For me it is the noise spectrum emitted from the enclosure and the lines but that is different for every processor and circuit board. Kind of like submarine guys who are able to determine what kind of vessel is cruising above just from hearing its noise.
It'll be different for every processor and you would have to obtain the QC procedure from the manufacturer, if they are willing to share it for incoming QC purposes.
Just use a scope and look for square waves on various pins of the micro. That will tell you something is happening, maybe correct, maybe not. If you don't have a scope, use a DMM to measure the DC voltage on various pins. The DC voltage will vary from 0 to 5 volts or 0 to the power supply voltage indicating something is happening on that particular pin. But it's hard to tell exactly what is going on without knowing the program. And then it would be difficult to interpret the digital signals from the program. If you have a good micro, you can compare the waveforms of the test micros to the known good micro and usually identify the problems.
You probably need to use a external clock to drive the micro at the rated speed or greater.
A generic feature would be the number of I/O lines and internal program RAM and ROM available.
Is this a homework problem?
You need different tests for different processors. The pin assignments will be different, so you have to look at different pins for different activity of different processors.
If you're testing older processors such as the Z-80 and the 6502, you could buy some cheap PCs such as the TRS-80 (Z-80), an Apple II (6502), a Radio Shack Color Computer (6809) and/or an original Macintosh (68000) and use the sockets on the motherboards or install one if not already provided. Then just use each computer as a test bench.
You're right about a microcontroller like the 8051. But the common microprocessor has more than ten times the number of pins, and it's a lot more than rocket science to get it running without any support system.
Because of the diversity of types/pinouts I suspect you are chasing the unachievable unless you have a '70s NASA budget.
What you COULD do is consider moving the client testing into YOUR facility. If they can provide either end-product or a test jig for the specific micro they purchase, your outfit could do the testing before on-shipping the chip. That would relieve them of that burden and give your firm not only confidence in the shipped part but also a reputation for actually giving a stuff about the client.
It is not beyond feasible to build a test jig for each microprocessor family.
For example, I've been messing about learning the 8051 processor family. I have an EPROM / Flash programmer I bought new from ebay for about $45 which will program almost everything. My "Test Jig" consists of a prototyping breadboard into which I've plugged a simple power supply, the processor (with onboard flash memory), one crystal and 2 capacitors (for the clock) and a reset switch. You can write a trivial looping program to output a square wave, program the processor using your PC, use the maximum crystal frequency, and see if you get a square wave. For processors without onboard program space you can add an EPROM to the breadboard and blow that instead. This jig should work for all processors in the 8051 family of the same package (number of pins). This will indicate the processor can run a basic function at maximum rated speed. There could be other faults of course (falty onboard RAM) but it sounds like this simple test is what you need.
If all this sounds too daunting, get a Microprocessor Programming book and spend a few evenings reading it, and you may find it's well within your own capability. This isn't rocket science despite appearances.
Chances are you have something in your house from one of my customers. But rest assured their outgoing QC is 100%.
A lot of my inventory comes from OEMs in sealed, virgin condition so there is little that needs to be done. There is a huge market for excess and obsolete parts, and there is always a demand somewhere for them. Unfortunately, it is the stuff of questionable pedigree that's giving everybody headaches.
Most single chip micros will configure all the pins as inputs on Reset/POR. Early in the code the programmer has to configure the pins to be inputs or outputs. If you see all the pins floating or pulled hi/low by external components then it probably hasn't executed that early code. If we are talking about a new flash programmable part then it's also possible someone forgot to program it (eg it's still blank!).
Elektor magazine had a suggestion way back: fill a memory with NOP's suitable for the processor. If everything is working, you should see halving the frequency on every higher address line. And you may use a variable clock source to see when things start to go wrong.
Good reason to stay away from "independent" distributors - No warranty, suspicious circumstances re how they get their product. Stick with the "franchised" distributors. They get their parts directly from manufacturers. They also receive full technical support from manufacturers (as opposed to having to ask questions on Usenet)
What you have in mind is a real challenge! A semiconductor manufacturer is happy, if the test coverage exceeds 95% of all the nodes inside the chip. That means that roundabout 5% of the chip remains untested. And that is done with very sophisticated and expensive test equipment, which can access the internal test logic. In addition to the very fundamental IDDq test (measuring the qiescent current), this results in a failure rate of a few ppm at the customer.
Without access to the test structures inside the device and without thorough understanding of its design, you will hardly ever test more than a third of the device with any test software. The other simple tests which have been proposed here in other posts, will probably not cover more than just 5 to 10% of the device.
One can find about 70% of all possible failures by means of dedicated test software. We have done that for a 32-bit RISC CPU. It requires the RTL description of the device and many days of simulation time per iteration on expensive machines with even more expensive software.
The most simple test that you could do is the IDDq test (assuming the device is CMOS and fully static). Measure the current consumption of the device during Reset and then clock the device slowly. Measure the static current after each clock edge. If it is more than the specified leakage current, then discard the device. This test can find more than
50% of all possible bugs and therefore it is better than most test software (which would still increase the coverage though). The idea behind the IDDq test is that a failure will probably be caused by a gate that is stuck at high or stuck at low, i.e. a transistor that is constantly switched on or off. If the other transistor switches on, then a short circuit exists and the leakage current is increased. Note that such a short doesn't draw amps, but microamps...
Run the device at nominal conditions (specified voltage and room temperature) and use 1.5 times the specified clock frequency. That should assure that the device works at minimum voltage and maximum temperature at the specified speed.
Not always the case. Here in down-under-land, Maxim (as one example, also LinearTechnology) are officially distibuted by Arrow Electronics Australia, AFAIK a wholly owned subsidiary of Arrow Electronics in the U.S. Arrow Aus order through Arrow in U.S. who in turn order from the factory. While that distinction may sound minor, the US-based parent won't move until it has factory MOQ orders in hand from its downstream. That means we can wait an indefinite time for parts through "our" franchised distributor simply because of their organisational structure. We had to wait 14 weeks for a Maxim eval kit that was ex-stock Maxim throughout the entire waiting period because of this "food chain". We also have to order factory MOQ as this sytem does not warehouse or break down factory MOQ at any point.
As an alternative, there is a Maxim distributor next door (in N.Z.) who doesn't seem to have the same hangups. His delivery is typically a couple of weeks vs many months via the "official" chain - AND we get to order 20 chips instead of
500. So when we needed 20 chips for a pre-production run, guess which small distributor got the business.
Not with Arrow Aust. If it isn't on the chip manufacturer's website then you may as well forget it - or ask on usenet. Maybe they aren't representative of authorised/franchised distributors elsewhere, but they certainly don't support your model.