Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking for a microcontroller with at least 20 ADC pins. Most things I'm used to using like an Atmel or Arduino have only a handful of ADC. I need to decode 20 analog wave forms being used to drive a segmented LCD screen. Any suggestions of where to find such an MCU or an alternative approach to solve this problem?

Edit: The LCD screen I'm looking at doesn't have a part number and it is custom to the product it is in but I believe it is using a scheme like the one described as "multiplexed" in this blog http://www.circuitvalley.com/2012/02/pic16f917pic16f1907-7segmentlcddriverex.html with 16 SEG pins and 4 COM pins

share|improve this question
20 simultaneously? Nothing. – Ignacio Vazquez-Abrams Jun 4 '14 at 5:05
You can add your own analog multiplexer external to the micro. They are pretty cheap and commonplace and will open up a lot of choice in micro selection. – markrages Jun 4 '14 at 5:21
It's probably worth trying to capture what the signal look like. But if you're just trying to determine if a segment is on or off you might be able to do it using a digital input. – PeterJ Jun 4 '14 at 5:34
@Pete "How to capture signals going to segmented LCD?" would be a better question than "What μC has .. ?". μC picking questions are routinely closed here at EE.SE . (If somebody gave me a printout of all such closed questions, it could heat my place for a month.) – Nick Alexeev Jun 4 '14 at 5:58
The segmented LCD is almost certainly binary anyway. – pjc50 Jun 4 '14 at 12:02

Many PIC microcontrollers have a lot of ADC inputs.

PIC18F45K50 with 25 analog inputs

Here you can find other PIC microcontrollers:

All 8-bit PIC microcontrollers parametric table

You can sort this by "Total of A/D channels".

However you should know, that all these inputs are multiplexed. These microcontrollers have 2 or 3 converters connected with multiplexers, so your sampling rate will be at least 8x slower than ADC sampling rate.

Alternatively you can use multiple ATmega8 microcontrollers and sync them somehow.

If you need high sample rate - you can use some 16-bit dsPIC, some of them have more advanced ADC (500ksps in 12 bit mode, 1.1 Msps in 10-bit mode).

share|improve this answer

An alternative approach: an FPGA, reading 20 high-speed single-channel ADC's in parallel.

I suspect you're not going to have much choice about using the FPGA because if you really want to simultaneously read 20 ADC's at 16Msps each then that's 320Msps, or 5.12Gbps of throughput with 16-bit ADC's. That's a serious flow of data to deal with; capturing it is all very well, but then you have to do something with it, presumably store it for analysis. You'd need a very fast SATA disk array to have a hope of storing the stream in its entirety. Fortunately with the right FPGA that's not impossible.

In short, this is do-able but a significant challenge. If all you've deal with before is Arduino then you're out of your depth.

share|improve this answer

First off, have you looked into a monitor driver IC for your specific display? Most displays like that have ICs for such purposes. Look up the datasheet for the display.

One way is to add an external ADC onto your current microcontroller board via either an I2C or SPI bus. Its not too difficult. Here are a couple of tutorials that should get you going.

First things first, you need to find out what bit-depth you need for your ADCs, 10-bit should probably do becasue its probably just a byte being transmitted at a time. You don't want an 8-bit ADC though if you are decoding 8-bit values because you will get errors. You need at least one bit extra because your LSb is going to have some noise in it.

Second you need to find out how many ADCs are on you microcontroller development board. Most common ones have 2-channel 10-bit ADCs multiplexed out through 16-pins through an analox MUX like the 74HC4051. If you need more than 8 extra channels, you can always chain together multiple ADCs.

If you want to find some 8-channel ADCs, you can find them on either Mouser and Digikey. Just go to their website, and navagate through their index to find the mutli-channel ADCs.

Digikey website > Product Index > Integrated Circuits (ICs) > Data Acquisition - Analog to Digital Converters (ADC)

mouser website > All Products > Semiconductors > Integrated Circuits - ICs > Data Converter ICs > ADC / DAC Multichannel

share|improve this answer

The Cypress PSoC5LP might do what you're after. I just dropped a sequencing SAR ADC on to a test project and told it I wanted 50 single ended analog inputs... no problem. They're nice little devices: ARM Cortex-M3 with programmable digital and analog blocks. It's also got an LCD driver and capacitive switch hardware built in. I am pretty happy with both the PSoC4 (Cortex-M0, more restrictive digital/analog) and the 5LP and find myself dropping them into more and more projects.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.