Shop OBEX P1 Docs P2 Docs Learn Events
Reading multiple ADCs in parallel — Parallax Forums

Reading multiple ADCs in parallel

asid61asid61 Posts: 6
edited 2014-05-29 20:09 in Propeller 1
I am looking into reading data from 21 different ADCs at once (MCP3008) and porting the data to a computer using the propeller. I was wondering how fast I would be able to read data from the 21 ADCs if I use one cog per 3 ADCs. Will it read as if there is 80MHz per ADC, or will it read like if I just used a single 80MHz microcontroller?
Also, what would be the best way to store the data before the 8th cog sends out all the data? I need to store the data from all 21 ADCs (168 channels, 12-bit frequency reading per channel) and send it out in one packet to a computer using USB. I want to keep the 8th cog open, so that it can port the data quickly.

I'm not using the ADC data directly. I am doing calculations in each cog to find the frequency of each channel, not the amplitude of the voltage. I was thinking about just using a byte to store the data, then have it write to a common variable array if the 8th cog is not currently sending out the data, but I am not sure if there is a way to make sure the USB communication remains uninterrupted.

The MCP3008 is the same as the MCP3208, but it has only a 10-bit precision. The SPI protocol is the same.

Any input would be appreciated.

Comments

  • kwinnkwinn Posts: 8,697
    edited 2014-05-29 20:09
    It would not be as fast as 80MHz per ADC, but it could be faster than the maximum speed the ADC's can handle with some careful design. The limiting factor may be how fast you can output the data. A bit more information is needed.

    How fast/often do you want to read the data from all the ADC's?

    Do you want to read the data continuously or do you read in short bursts?

    This is a 10 bit ADC so you will loose 2 bits if you store it in a byte. Do you only need 8 bit precision?

    A better description of what you are trying to do will get you more help.
Sign In or Register to comment.