I've run into a dilly of a pickle using the MAX5494 Digital Potentiometer from Maxim. Its a simple two pot per chip IC which has a rated full resistance value of 10k with 1024 steps, or so the datasheet says. The relationship between wiper to ground resistance (Rwl) is suppose to follow this formula, Rwl = D/1023*Rtot + Rz where D is the digital value being sent, Rtot is the total resistance (10k), and Rz is an error offset. So I have this thing integrated into a project for work and much to my surprise it doesn't seem to work! The pot only seems to be linear in the first 1k to 4k region and after that its resistance goes all over the place. For example, sending it a value of 512 should give a resistance of around 5.5k but its actually about 6.5k. A value of 750 gives a resistance of 16k. A value of 900 gives 11k (way over 10k!), but a value of 1023 gives 7.5k. I thought it might be code being screwy but I've scoped the SPI bus and double counted the bits and my code is solid. I just can't figure out what the problem is and I'm suppose to be testing this thing tomorrow. Any idea what it could be? Do you think the manufacturer just may have screwed up a batch of chips (I've got several, they all do it but with random values).