MCU Port Write Speed

Thread Starter

steve17

Joined Jun 4, 2010
2
Hi

Does anyone know which microcontroller has the fastest “port read” capability in 16 bits or greater? I want to use a microcontroller to read from an ADC, the ADC sample rate can vary from 20MHz to 160MHz. Is there any microcontroller that can come close to this sort of port reading speed?

Many Thanks

Steve
 

CVMichael

Joined Aug 3, 2007
419
WAW... why do you need it that fast ? what are you planning to make ?

Even PIC 32 which is the fastest microcontroller that microchip provides can theoretically produce 80MHz, but practically about 72MHz.

If you need 160MHz, and let's assume that you need to process 10 instructions per each I/O (for memory access, or other things), then you would need a microcontroller that is at least 1600 MIPS.
 

Thread Starter

steve17

Joined Jun 4, 2010
2
Thanks for your reply, I had a look at the PIC32 and the fastest speed to read data would be 26.6MHz. When running at 80 MHz the PIC requires 3 clock cycles to read in data.

What I hope to do with MCU is read frames of data from the ADC as the processing doesn't need to be real time or continuous. Once the data is on the MCU it can be processed at any speed, then a new data frame acquired.

The system will attempt to analyze lines of video data.
 

John P

Joined Oct 14, 2008
2,026
I wonder if you'd do better with a free-running external system to grab the data under processor control. So you might have a signal to say "Start" and another one to say "Stop". Or if it's video, you could maybe say "Grab next line" and the external hardware would run automatically and turn itself off when all the data had been captured. Meanwhile, the processor could be doing other things, like processing previous lines (assuming the memory isn't being tied up with all the new data coming in).
 

davebee

Joined Oct 22, 2008
540
You can start with a fast microcontroller, but once you factor in not only inputting the sample but moving the sample data to storage, incrementing the storage address, and testing for the halt-sampling condition, you can lose a surprising amount of speed.

If you just want to capture a burst of samples, you might be able to have a fast ADC take a sample, then write its data directly into a RAM chip. While the ADC is digitizing its next sample, a counter is incrementing to prepare and apply the next RAM address to the RAM.

That way, with just a few chips, you can capture a burst of samples as fast as the ADC can sample and the RAM can write, and you can grab as many as you have RAM space to hold.

Once the burst write is finished, your microcontroller can read back the RAM contents at a much slower rate, which would allow you much more flexibility in which microcontroller you decide to use.
 

GetDeviceInfo

Joined Jun 7, 2009
2,196
as mentioned above, you could use a dedicated ADC, or, google digital camera chipset and you'll find many devices that will give you plenty of functionality.
 

cyberfish

Joined Jun 3, 2010
10
For that kind of speeds, you'll need programmable logic (CPLD or FPGA).

I was faced with a similar problem recently (building a 100Msps USB oscilloscope), and also spent a great deal of time looking for microcontrollers.

None would come close to that speed. I ended up using an FPGA.
 
Top