Great Q! The absolute top end would be 425kHz but I don't think I can push things that fast. If I can get to around 140kHz I'll be pretty happy. This is one of the reasons I went with a multi-channel parallel DAC as I can feed it faster than the serial DACs I was looking at (given the same part price, relative). Assuming SIO can go that fast. I'm looking at the AD5346BRUZ specifically. It may exhibit dB attenuation at the higher frequencies I'll be using, but I think that's acceptable. The datasheet is a bit unclear. It's either -3dB at 200MHz if using unbuffered mode or hits it at around 100kHz in looking at the performance charts (it doesn't say if the chart is for buffered or unbuffered).What would be the output sample rate range per DAC?
That rub is that is the max per channel, but there are 8. So the total amount of work on the GPIO pins would be into the low MHz at the higher ranges, although I don't expect that would be the case most of the time.
I didn't want to get too deep in the application just to avoid adding unnecessary info, but for additional context for those curious, I'm looking at how I might make a multi-channel chiptune wavetable synthesizer. I currently make a Eurorack module called the WaveBoy which uses a variable clocked DAC to produce pitches was on cyclic 4-bit wavetables (like the GameBoy's wave channel, hence the name). Alas, there I'm using a SAMD51 (ItsyBitsy M4) because it came with 2 ADC and 2 DACs built-in. If the RP2350 works well for this application, I might switch over in a future revision though it adds a lot of part count to do that and the SAMD51 has been working well so far.
Anyways it's a similar setup here, only I will probably use 8-bit wavetables and hope to drive 8 channels. In both cases, the wavetables are 32-samples each, which is why the frequency can get pretty high because it's pitch * number of samples. 402kHz is thus around the top end of the MIDI note range (12543 * 32), but 140kHz is around the highest key on a piano. Retro enthusiasts might spot similarities here with the TG16's sound solution (6 channels of 5-bit 32-sample wavetables).
I've done some calculations on pitch tracking using PWM and counter/divs. Even without the fractional part, most of the note range is off by less than .1%. Calculating the ideal counter, div, fractional-div gets a little more involved and I haven't figured that out yet but might not worry about that unless I need to. That does improve things but I'm not sure it's worth the larger LUT and the additional exercise in calculating the ideal values. The pitch data is pre-computed and ends up in a LUT where I can just reference the counter/div by giving it a MIID-note and semitone value. That avoids any floating point math to calc pitch which is good since I want to mess around with the RISCV cores on the 2350.
Statistics: Posted by m00dawg — Sat Nov 22, 2025 4:49 pm