parallel input speeds (external ADC)

09 Oct 2010

For a university class project, I'm thinking of making a networked oscilloscope (or similar) based on a mbed. How fast can the mbed read 8 bits of digital input? I have read somewhere that I will have to use assembly routines for that, as C++ would be too slow. Is that true? I need at least 5MHz sample rate (15MHz or above would be excellent) and need to do so in bursts of 8kB or so.

10 Oct 2010

I would assume that something like that would be a bit of a strech. From what I understand, the problem with the digital input is that for that kind of performance you need to use pins within the same port. Check out this post for some more info.

Do you have a specific ADC in mind? Maybe you can try a high speed SPI-based ADC instead?

10 Oct 2010

I'm planning to use 8 bits of an ADS800. (I once had to replace one on an old Dell HDTV card, so I have a few left over.)

15 Oct 2010 . Edited: 16 Oct 2010

I ended up designing an external data capture engine, good for 20MHz or so. So how fast is parallel input on the mbed? I only need about 1MB/s at 8 bits input to maintain about 15FPS (streamed over Ethernet) with a 64kB buffer.

16 Oct 2010

You can read the port value (32 bits) with one instruction, theoretically in a single clock. Not all bits of all ports are available; if you need 8 bits there are pins 4-11 of one port exposed on mbed pins.

16 Oct 2010

Do you have any examples of parallel input using DMA?