Anyone fronting Uno with external hardware ADC?

There are some threads regarding increasing the ADC sample rate for the Uno. Most of this is achieved via clever pre multiplication alterations to the ADC clock. Has anyone ever just shoved an external ADC chip in front of the Uno?

I’m suggesting something like the Maxim MAX166CCPP. It’s an parallel 8 bit /50kHz bandwidth flash converter. It has a simple connection protocol and there are enough pins on the Uno to interface it. It’s also available in a (proper) DIP package. It’s a little pricey at £10, but might save a lot of programming & debugging effort. The attachment is how it might connect. With some experimentation, you might even be able to eliminate the CS perhaps, which would mean that you can interface with only 9 pins.

Might this have traction?


I am currently happy with the MCP3202: 100 kHz sample rate, 12 bits/sample. Very easy to interface.

jremington: I am currently happy with the MCP3202: 100 kHz sample rate, 12 bits/sample. Very easy to interface.

Very interested. When you say 100kHz sample rate - is this what you can achieve with an Arduino? Can they read the serial port that quickly? That was the thinking behind the parallel port ADC. I assumed that it would be faster to read parallel rather than SPI. No?

I haven't figured out how fast the MCP3202 ADC can be read out on the Arduino. It has a simple bit-serial interface and a single conversion requires 16 bits total to be transferred.

On Arduino the highest transfer rate would require direct port manipulation. At 1 microsecond per bit the transfer rate would be about 62,500 12 bit samples/sec.

Hmm. So even with a theoretically perfect SPI transfer rate, we're already below 2/3 rds of the chip's rated speed... I wonder what practical rate could be achieved by a code bodger like me?

P.S. I've just been reading some data sheets (for fun) and they suggest that one reading model is to only transfer the first 8 bits (MSB) of the conversion. That way you can recover some speed.

The data transfer mechanism for the MCP3202 is not SPI. It is simple data/clock serial.

I am absolutely certain that with clever programming, you could reach the 100 kilosample/second maximum rate on an Arduino. But for example, digitalWrite() won’t work, because it takes more than 1 microsecond to execute. See