DAC days, sleepless nights
| View as PDF |
A few years ago, I was working on a drive board for a thermal-radiation-sensor array that required testing. The serially multiplexed sensor output needed a multi-step closed-loop correction scheme to even out sensor nonuniformity.
To perform the test, I employed a design with a dual serial DAC. I coded the software for the correction scheme, and it was then time to check out the operation. I decided to look at the DAC chip and its operation independently of the other components. I hooked up a board with the DAC to the microcontroller controlling the operation. To verify the controller’s output, I used an oscilloscope that was monitoring the serial signal arriving at the DAC. It checked out fine and met all the parameters that the DAC manufacturer had set.
However, the analog output from the DAC was incorrect. At start-up, one DAC channel read 200 mV, and the other read 5V. After the DAC received the data packet, the outputs read 0 and 5V. Suspecting some software issue that I had overlooked, I spent an entire afternoon going over the details of the correction scheme and the serial data packet’s transmission to the DAC from the controller. I also checked the connections and wiring to the DAC and found everything to be correct.
| Read More|
Tales from the Cube
Sleep that night was elusive. I kept having visions of how the serial-packet transmission matched the timing diagram on the DAC manufacturer’s data sheet. The power supply checked out, the hardware wiring checked out, and the software checked out. What else was left to check? By all accounts, the DAC should have behaved correctly. Maybe it was a faulty chip after all. These thoughts occupied my sleepless night until the next morning, when I headed back to the lab.
I removed the DAC board from the controller and powered it up. The DAC had a power-on-reset feature that should have zeroed the DAC outputs at startup, but this feature did not seem to be working. One channel was still 5V, and the other was still about 200 mV. When the DAC received the serial packet of data from the controller, the 200-mV channel would drop to 0V, and the other one remained at 5V. I verified the serialpacket data again and found it to be correct. I carefully checked the wiring of the DAC and the serial connection and found nothing wrong. It looked indeed as if the chip was faulty.
Unfortunately, I seemed to have run out of parts to try a replacement. Loathing the thought of more sleepless nights until I solved the problem, I rummaged through my parts bin, hoping desperately to find another chip to test. Lo and behold, there at the corner of my bin was one last remaining DAC chip. Eagerly grabbing the part, I got ready to replace the chip on the board. This chip was a DIP, and I used an extractor to remove the suspicious chip from the board.
As I closely examined the chip and positioned the extractor on it, I was shocked to find that the faded partnumber marking showed that it was not a DAC chip at all but a dual op amp! I was doing all my testing with the wrong part in the socket! Cursing myself and thanking my lucky stars that I didn’t blow anything else, I wrenched it out and replaced it with the correct part, hooked up the controller, and found that everything worked like a charm.
As one version of Murphy’s Law states, “When you have removed the last of the 40 screws holding down an access door, you will find that you have removed the wrong access door.” My sleep that night was indeed satisfying.
Vinoo Narayanan is a mechatronics engineer with En’Urga Inc (West Lafayette, IN).