| etc | ||
| grc | ||
| images | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| LICENSE | ||
| README.md | ||
Pico PIO ADC
Sigma-delta ADC demo for Raspberry Pi Pico using PIO.
Building
- Clone with
git clone --recursiveto get the alternative stdio. - You need to have
PICO_SDK_PATHset. - Just run
cmake -B build srcto configure the project. - And then
cmake --build buildto build it. - Flash the firmware via
picotool load -f build/pico-pio-adc.uf2.
GNU Radio Companion
The GNU Radio Companion examples work with a FIFO that receives the stream from the serial. Build creates a simple tool to move the bytes around, so you can do this:
mkfifo samples.fifo
build/tools/serial /dev/ttyACM1 >samples.fifo
Then GRC can grab the samples.
If you tire of having to start the serial tool manually, you can do this:
watch -n1 'build/tools/serial /dev/ttyACM1 >samples.fifo'
This restarts it in a second once it quits.
Circuit
Click the image to open interactive version in Paul Falstad's excellent online simulator.
Screenshots
Please note that screenshots are with AMS-1117 linear voltage regulator bypassing the Picos RT6150 on-board switching regulator unless the caption says otherwise. This is done by jumpering 3V3_EN pin to GND, feeding VSYS to the regulator input and passing the regulator output to 3V3 pin. The 3V3 rail is then decoupled with 10uF ceramic capacitor to GND on the analog board.
Noise floor with external AMS-1117 linear regulator
Noise floor with on-board RT6150 SMPS in PWM mode
Noise floor with on-board RT6150 SMPS in PFM mode
IR Blast, full rate
IR Blast, tuned at 38 kHz