MCP3901 looks like a neat chip... Anyone have experience with it?

Hi all,

Just wondering if any of you have used the MCP3901 before or not? It's an analog front end for energy measurements that looks like a neat intermediary chip between dedicated energy IC's like the AD7753 from Analog Devices and general-purpose dual-channel ADC's like the ADC122 series from National Semi/TI, for example. The device is interesting in multiple ways that I find quite intriguing:

  1. It doesn't feature a bazillion internal registers and impossible (for a hobbyist, IMO) calibration routines like the AD7753. Just a few internal control registers that mere mortals can handle.
  2. It does feature a PGA for each channel (up to 32x gain), a Voltage Ref In and Out, a phase compensation register, up to 256x oversampling, an external clock, dithering, and a data ready pin (for interrupt-driven data sampling).
  3. The analog end runs on 4.5-5.5V, the digital end can handle everything from 2.7-5.5V. This makes interfacing with the chip a lot simpler, regardless of MCU used.
  4. It uses SPI, which I dislike, but there is a library available to make configuring / listening to the chip easier.

The data sheet suggests that if you put a 8MHz crystal on this thing, set up the PRE/OSR registers appropriately, and you'll allegedly get 7812 samples per second for both channels with 14 ENOB... and if you can live with 3.9ksps per channel, up to 14.9 ENOB... all in a chip that costs less than $2.5 ea in single quantities. Seems like a pretty awesome solution, wonder why not more people are talking about / using this chip?

Along similar lines, the MCP3911 offers 3.3V-only operation but a much wider latitude re: oversampling, gain calibration, offset calibration, etc.

Hi!

I am also interested in using this chip. Indeed it is strange that so few people are trying to use it.

Were you able to port the library from your link to Arduino? If yes, could you please share the ported Arduino library? It would be very kind of you since I can't port it myself.

It uses SPI, which I dislike

Why? Is it due to SPI being up to 20 times faster than I2C?
Or you don't like giving up 2 pins for all that speed?

I haven't done any 24bit data collection, the 12bit 8-channel MCP3208 has been enough for me so far.

CrossRoads:

It uses SPI, which I dislike

Why? Is it due to SPI being up to 20 times faster than I2C?
Or you don't like giving up 2 pins for all that speed?

Neither. Unlike I2C, I have never ever had any good luck dealing with SPI devices other than memory cards. Presumably, a lot has to do with the devices in question, my inability to decipher the relevant datasheets, and my inexperience. Perhaps I2C is simply more tolerant for hamfisted beginners like myself.