Skip to content

Latest commit

 

History

History
68 lines (36 loc) · 2.52 KB

HighSpeedBurstADC.md

File metadata and controls

68 lines (36 loc) · 2.52 KB

Idea: doing a 15Msps ADC for RPi0

Some inspiration from earlier

Brief

Getting a raspberry acquire a [0;3.3V] signal at 10Msps+, trigged.

Pins

  • 8 bits of ADC GPIO 7, 8, 9, 10, 11, 23, 24, 25

  • Clock : using GPIO-04 (GCLOCK)

  • PD : GPIO12

  • For the input, the input (after the rectifier) should also be connected to GPIO 5.

Some tracks

  • PWM for servo on GPIO 6 - and track P14

  • Pon 3.3 - Track P16 - trigger on GPIO 13

  • P12 is RPiN - connecteed to GPIO5

Step 1: DIP package

BOM

Some links, working with BiVi ?

Step 2: SMD?

Given RPi0 capabilities in terms of GPIOs - why not push it to 20Msps, 8 bits, for the cape?

Big ADC

Other ideas

wiringPi is a PIN based GPIO library, however it does have a couple of functions that let you read up to 8 bits at a time from 2 different sets of pin (which overlap). If you're on a Pi v1 then digitalReadByte() reads in the 32-bits of the first register and does some bit fiddling to give you an 8-bit value based on the inputs of the first 8 usable GPIO pins. On a 40-pin Pi, you also have digitlaReadByte2() which reads an 8-bit value from 8 consecutive pins which only involves a single shift. See the source code to work out the actual pins. (and there is writeByte too)

Running it and its taking about 0.94 seconds on a v1 Pi @ 900Mhz so that's a little over 10 million digitalWrites per second. I think that's fast enough for you