A number of microcontroller and microprocessor products now include an embedded analog to digital converter (ADC). This means that there is an ADC on the same semiconductor chip as the rest of the microcontroller's circuitry. For example, the COP888CF single chip CMOS controller made by National Semiconductor has an embedded ADC. In fact, that particular microcontroller has eight ADC channels (i.e., eight separate analog signal input connections). The development of such microcontrollers is a continuation of the trend toward putting all the circuitry needed for a programmable controller onto a single chip.
While complex semiconductor circuits with embedded circuits are convenient when building a product that needs a simple controller, such as a microwave oven controller, the presence of such embedded circuits makes it difficult to fully test the operation of the circuit.
Previous methods of testing embedded ADCs on digital VLSI test systems perform one conversion at a time. In other words, one analog signal is sent to the device under test, and the converted digital value is then read by the tester. The device under test is programmed to perform a conversion and then send the results of the conversion to the tester. Testing each possible output code of the ADC typically requires dozens of conversion and read sequences. Since the number of conversions typically used to test an eight bit ADC is in the range of 20,000 to 200,000, this testing method is very slow.
Another major disadvantage of the prior art methods of testing embedded ADCs is that the testing conditions do not match normal operating conditions. More specifically, when an embedded ADC is used in an actual application, the microcontroller will be performing many other operations, including computations, reading and writing data to and from registers and memory, and so on, all of which generate electromagnetic noise in the microcontroller. Standard prior art testing methods do not create the electromagnetic noise which is encountered during normal microcontroller operation.