MCU Port Write Speed

Discussion in 'Embedded Systems and Microcontrollers' started by steve17, Jun 4, 2010.

  1. steve17

    Thread Starter New Member

    Jun 4, 2010

    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

  2. CVMichael

    Senior Member

    Aug 3, 2007
    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.
  3. steve17

    Thread Starter New Member

    Jun 4, 2010
    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.
  4. John P

    Senior Member

    Oct 14, 2008
    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).
  5. BMorse

    Senior Member

    Sep 26, 2009
    What kind of Video data are you processing at 160Mhz??
  6. CVMichael

    Senior Member

    Aug 3, 2007
  7. t06afre

    AAC Fanatic!

    May 11, 2009
  8. davebee

    Well-Known Member

    Oct 22, 2008
    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.
  9. GetDeviceInfo

    Senior Member

    Jun 7, 2009
    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.
  10. cyberfish

    New Member

    Jun 3, 2010
    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.