Help in trying to send parallel 8 bit output from an ADC to a computer

Discussion in 'General Electronics Chat' started by c1rcu1ts, Feb 13, 2016.

  1. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    Hello all,

    I need a bit of help sending data to a computer. Please note that i am open to other methods of doing so. My situation is as follows,

    My circuit sweeps frequency between 1-25MHz. I have an ADC ( 8bit parallel output) which samples at a fixed 50MHz. I am thinking of a method involving the use of a bluetooth module to send the samples to the computer (hopefully i could retrieve it in the form of a text file or csv or any form that i can easily manipulate). I know i need to use a parallel to serial shift register between the ADC and the bluetooth module. Is this a viable option?

    I am honestly not sure how to conduct calculations to determine if the bluetooth module can really do this. Can someone help?

    My other questions are as follows,
    Do you know of any other method of sending data to the computer from a parallel 8bit output ADC which samples at a rate of 50MHz that you think would work easier?
    How do i compensate for the propagation delay from the shift register if i was using the method above?
     
  2. shteii01

    AAC Fanatic!

    Feb 19, 2010
    3,387
    497
    Datasheets?
     
  3. DickCappels

    Moderator

    Aug 21, 2008
    2,653
    632
    I suspect that you are planning to write your own software to deal with the incoming stream. If that is the case then you might want to consider using a serial disk drive protocol such as SATA (serial ATA).

    If you do not plan to write your own software, start with the package you plant to use and work you way toward the I/O avalilabe on your computer.
     
  4. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    I have attached a pdf showing the entire schematic of my system. The question that i am asking revolves around the sampling circuitry. I am not sure how to work past the ADC and get data back to the computer.

    Additional information: The computer initial purpose is to configure the AD5930 via the microcontroller to tell it what waveform to sweep and what frequencies.The impedance meter system is basically an auto-balancing bridge (detailed info could be found: http://cp.literature.agilent.com/litweb/pdf/5950-3000.pdf). I am taking two important parameters (Vin and Vout) and sending it to the computer to determine the impedance (while knowing the feedback resistance of course). The Devices Under Test are different concentrations of a solution. The amplifier i would more than be likely using is the THS4505.

    Shteii01,

    The data sheet for the ADC: http://www.ti.com/lit/ds/symlink/adc1175-50.pdf
    The data sheet for the waveform generator:http: //www.analog.com/media/en/technical-documentation/data-sheets/AD5930.pdf
    I am not too sure how to choose the shift register. I honestly think the most important spec is that it shifts the 8 parallel bits into the serial data at 50 MHz. Therefore 50 MHz is the important spec. The shift register i am looking at is: http://www.nxp.com/documents/data_sheet/74HC_HCT597.pdf
    The bluetooth module i am looking at using would be: http://www.amazon.com/Pass-Through-...&sr=1-2&keywords=bluetooth+module+for+arduino

    Tell me if you need any more

    DickCappels,

    I do not plan on writing my software. The previous plan i had in mind was to send the data from the ADC to the micro controller and then send that to the computer. However, the micro controller that i am using is the Arduino MEGA 2560. How can i send data in at 50MHz when the clock is about 16MHz on the microcontroller. I did not know how to get around this so i started to dig into areas i am not familiar with.

    ~Thanks both of you very much
     
  5. dannyf

    Well-Known Member

    Sep 13, 2015
    1,810
    362
    There isn't a good chance you can process that kind of a bit rate with most mcus. You are likely talking about fpga or a mcu with dma and lots of processing power

    Or you set more realistic goals.
     
  6. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    Hey dannyf,

    Thanks for the response. I did not think the MCU approach would have worked either way. Although i was thinking of using a buffer as a temporary storage for the incoming bits. From there the i would have send the data back to the computer.
     
  7. djsfantasi

    AAC Fanatic!

    Apr 11, 2010
    2,805
    833
    Buffers don't work when the processing rate is less than the data rate. Imagine a barrel, which is being filled with a five gallon bucket by a friend (the data rate). You have a five gallon bucket as a buffer, and you're filling it from the barrel with a coffee cup. Five gallons in; one coffee cup out. Somethings gotta give, and it will be the barrel which overflows and causes data, errr, water loss.

    A buffer is useful when performing an operation such as serial to parallel conversion.
     
  8. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    Thanks, i was avoiding that method anyway. What do you think of the bluetooth method?
     
  9. dannyf

    Well-Known Member

    Sep 13, 2015
    1,810
    362
    Your setup is quite similar to the front end of a digital scope - mostly done via adc + fpga.

    There are mcus that run in the 100Mhz+ range with DMA, both in and out. Those can be quite helpful to serve as a buffer, or as a controller during data collection, and then processor afterwards.
     
  10. AnalogKid

    Distinguished Member

    Aug 1, 2013
    4,539
    1,251
    50 MHz x 8 bits = 0.4 Gb/s, x 2 = 0.8 Gb/s, not counting coding, framing and error correction overhead. Moving gigahertz data over copper is hard enough; wirelessly is very difficult. Does the data path have to be wireless?

    ak
     
  11. djsfantasi

    AAC Fanatic!

    Apr 11, 2010
    2,805
    833
    Input data rate = 0.8Gb/s (thanks AK). 0.8Gb/s is equal to 819Mb/s.

    819 MB/s input
    25 Mb/s (maximum) out, per Bluetooth 4.0 specifications.


    Serious problem there!
     
  12. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    No it does not have to be wireless. I just want the data to reach my computer with minimal distortion as possible. As a last resort, i will have to reduce the bandwidth.
     
  13. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    How much data do you need to collect at a time?

    Perhaps if you buffer it you can send wirelessly at a much lower rate.
    E.g. collect 50 megabyte in 1 second, then stop collecting and take a minute to send on wifi at 1 megabyte per second which is easy to do.
     
  14. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    I dont mind waiting. Perhaps like 30 - 60 seconds for most. Could you tell me more?

    Thanks
     
  15. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    You would feed the high speed 8 bit data stream from the ADC directly into a buffer memory. A local Micro controller (Ardino?) Would trigger the start / stop and then after, read through the data collected, send via wifi or blue tooth to where ever you want using standard, inexpensive protocols and data rates. There are high speed ADC cards with memory included available. A digital storage scope is a good example of this process.

    Buy an off the shelf card that can capture at 1Gbs with as deep a capture memory as you need. 1 second at 50 megabyte/s is a lot. Can you get away with less collection time?

    Ifixit
     
  16. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    The only way i can get away with the collection time in this case would depend on the frequency right? That should mean that i would have to decrease the bandwidth. I do not mind dropping the bandwidth to like 10MHz.

    My post #4 has The parts i was looking at. Could the ADC i chose work for the application? Could you suggest me a buffer? Do you know parts that you think would work better than this theoretically?

    Thanks alot, i am beginning to feel a glimmer of hope in this method again.
     
    Last edited: Feb 15, 2016
  17. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    Your sample rate must stay at 50ms/s to sample signals at up to 25mhz. If you collect data 50ms/s then you will have 50 megabytes of data to store in high memory. The more memory you can afford then the more you can store. If you had only 10Mbyte of memory than your max sample time will be 200ms.

    Once a sample is collected then you have to read it out, usually at a much slower rate, process it and get ready for the next sample. So, how frequently you can do sample will depend on how long it takes to process the data.

    This not a quick simple design. A lot of planning needs to go into it.

    Here is an example of a hi speed FIFO buffer that may work with the ADC you... http://www.cypress.com/documentatio...2v-183672-mbit-programmable-multi-queue-fifos

    Can you use a pocket DSO scope module? The high speed design work is already done.

    Ifixit
     
  18. BobTPH

    Active Member

    Jun 5, 2013
    782
    114
  19. c1rcu1ts

    Thread Starter Member

    Oct 19, 2013
    62
    0
    Thanks Bob but i am developing circuitry to do this, not buy and oscilloscope. "You could not build it for 10 times that.". I still have to try even if it means reducing the bandwidth. I will do my best to get it to work! :)

    ifixit, this may work but seems to be very complex. I do not think that this is practical given that the deadline is 5 weeks from now (alot of other stuff to be done in parallel). I would have to lower the bandwidth (i understand that it may be significantly lower but hopefully still greater than 2MHz).

    I have an arduino Due (clock = 84MHz, https://www.arduino.cc/en/Main/ArduinoBoardDue) and an arduino MEGA 2560(clock=16MHz, https://www.arduino.cc/en/Main/ArduinoBoardMega2560). Maybe i could get one of this to work and it would not have to be wireless. This would mean that i would have to:
    • Use the Shift register to convert the Parallel into Serial Data (from the ADC, which in this case would be chosen based on the new bandwidth i am working with).
    • Send the Data into the Arduino.
    • Send the Data into the computer.
    I am not too sure how to calculate the new bandwidth based on the specifications and limitations of the arduino. Can you assist me?
     
  20. dannyf

    Well-Known Member

    Sep 13, 2015
    1,810
    362
    fat chance.

    Basically, you set the spec so high that there is no practical possibility for you to achieve it.

    Instead, it is far better for you to take a look at what you have and ask yourself what you can do with them.
     
Loading...