Tuesday, December 30, 2014

10MSPS ADC with a BeagleBoneBlack

I wanted to revisit the ADC board used previously with a BBB for SDR and instrumentation work. The first version used a serial ADC with a PRU.  It produced acceptable SDR results (and here and here )  However, for instrumentation work the SFDR was less than desired due to amplifier selection (saga described here).

The first goal was to increase the sample rate without resorting to an FPGA.  Previous measurements and benchmarks indicated that 10MSPS should be possible.  Additional bits of resolution was also a goal.  Most serial ADCs at 14+ bits do not have sample and hold bandwidths high enough for use in the intended subsampling application.  In addition, getting to just 2.5MSPS using a serial interface is challenging using only a PRU to clock the data. I decided to start simple and use a parallel part with a differential input.  The LTC2225 was selected as it supports the desired sampling rate, has a large SH bandwidth, is reasonably priced, readily available, and has a 12 and 14 bit variants.

Another goal was to stack the new ADC board with an existing IO board thus allowing a single BBB to control mixers, gain and filter boards.  The led to PRU1 being used to interface with the parallel ADC.

The following is a block diagram:
BeaglBoneBlack 10MSPS ADC board
There were some errors and difficulty involving the power on reset circuitry (PRU1 R31 uses pins that are shared with the system boot mode selection).   The following is a picture of the updated and functional assembly (white wires and all).  Given the changes I will post a schematic once the PCB has been updated.
10MSPS ADC mounted on BBB.
TCXO upper left, LTC2225 upper right, LTC6406 bottom right, regulator and power-on circuitry lower left.
Even though it can't be stacked yet, its good enough to take some measurements and work on the software for higher sample rate processing.


  1. thanks for sharing your interesting work.
    could you tell us more about your pcb design techniques
    especially on the prj134 board and its ground separation plane ?
    perhaps you can share your gerber file too ?
    thanks in advance

    1. Tom, I hope to have an update on the ADC board published with a better write up of the schematic in a week or so. I use KiCad with a two layer PCB fab'ed by OSHPark. The separate ground planes are just isolated copper pour regions in KiCad. I add a wide mask trace on top of this to provide the clear copper edge. I tried to split the analog and digital planes at the ADC. They are tied together at a single point (in lower left of the analog ground plane in the picture you can see the choke). In the updated version I use a choke on the supply feed which enters the analog section.

      With respect to the Gerbers... I haven't found a good way to share this kind of material with Google Code (where the software resides). I will be migrating this to GitHub and just need to take the time to figure out how to decently share KiCad files with libraries I use. In the interim I can email you a zip of the material. I can be reached at jim kleiner (all one word, all lower case and adding two 0's after that) at gmail dot com.