Inspired by a description of an Arbitrary Waveform Generator
 
 
Go to file
Arjan te Marvelde f11543437c
Add files via upload
2022-01-02 10:27:29 +01:00
doc Add files via upload 2022-01-02 10:27:29 +01:00
CMakeLists.txt Initial version 2021-12-31 13:20:19 +01:00
README.md Update README.md 2022-01-01 17:04:51 +01:00
gen.c Initial version 2021-12-31 13:20:19 +01:00
gen.h Initial version 2021-12-31 13:20:19 +01:00
hmi.c Initial version 2021-12-31 13:20:19 +01:00
hmi.h Initial version 2021-12-31 13:20:19 +01:00
monitor.c Initial version 2021-12-31 13:20:19 +01:00
monitor.h Initial version 2021-12-31 13:20:19 +01:00
pico_sdk_import.cmake Initial version 2021-12-31 13:20:19 +01:00
uWFG.c Initial version 2021-12-31 13:20:19 +01:00
uWFG.h Initial version 2021-12-31 13:20:19 +01:00
wfgout.c Initial version 2021-12-31 13:20:19 +01:00
wfgout.pio Initial version 2021-12-31 13:20:19 +01:00

README.md

uWFG-Pico

Inspired by a description of an Arbitrary Waveform Generator I decided to try something similar myself. The uSDR-Pico project focused on getting to know the Pico, especially the multi-core feature, this project will focus on using PIO and DMA.

Prototype

The prototype provides two channels with 8 bit resolution, on which waveforms (sample files) can be played independently. The maximum sample frequency is the system clock, so on a Pico this is by default 125MHz. This obviously sets a limit to the maximum waveform frequency, in the sense that it will be a tradeoff with desired accuracy. If a sample file defining a single wave has a length of 25 samples, the maximum wave frequency is 125/25 = 5MHz. The sample clock can also be lowered, so for a minimum frequency both file length and clock divider must be tuned.

Still, the performance is quite remarkable, and mostly limited by the implementation of the R-2R ladder network on the digital output. Stray capacitance together with the used resistor values and maybe some inductance will act as a low-pass filter, in case of the prototype maxing output to about 10MHz.

1MHz

Above image shows 1MHz square waves on both output channels. It must be noted that the R value in the ladder networks is 0.5k in channel A and 1k in channel B, nicely showing the low-pass effect.

Proto schematic