Om de zoveel jaar krijg ik de kriebels te pakken om wat met m'n labvoeding te prossen. Dit jaar is het zoiets geworden:

Ditmaal geen R2R-ladders, maar echte DAC's. Die zitten op de printjes, die je vertikaal in het centrum ziet staan. Dat maakt het eenvoudig, ze te vervangen moest dat wenselijk zijn.
Helemaal tevreden ben ik niet. De uitgangsspanning is heel netjes, maar wel temperatuur-afhankelijk. Bij een uitgangsspanning van 30V krijg ik een spanningsverschil van bijna 100mV, als de temperatuur 10°C schommelt.
Een eerste poging om dat tegen te gaan, bestond er in de temperatuur constant te houden. Zoiets is eenvoudig, als je enkele komponenten op een blok koper of ALU kunt schroeven, die je dan verwarmt en omgeeft met thermische isolatie. Zoiets, dus.
Met een boel IC's, verspreid over de print, en onvoldoende ruimte voor een deugdelijke isolatie, is het niet zo eenvoudig.
Ik heb even overwogen, een 22-bits ADC in te zetten. Daarmee kan de µC de uitgangsspanning meten, en zonodig aanpassen. Maar zo'n ADC is óók temperatuurgevoelig, zodat het probleem enkel verschoven wordt.
Er is nog een andere mogelijkheid: een tweedimensionaal array, waar de CPU aan de hand van de gewenste uitgangsspanning en de omgevingstemperatuur kan terugvinden met hoeveel bits hij de normale DAC-instelling moet bijstellen. Een array van 126x256 chars volstaat, en daarvoor heeft de AVR (een ATmega644) wel ruimte.
Momenteel loopt er dan ook een scriptje, dat het array met data vult. Ik hoop op koude nachten en warme dagen, zodat het snel volledig is... 
De onderkant mag uiteraard niet ontbreken:

Daar zie je wat soldeereilandjes die onbezet zijn. Hier kan nog een opsteekprintje naar wens geplaatst worden.