Following on from the AS3340 waveshaping experiments, I have now completed a prototype dual DCO which is MIDI controlled with an RP2040 waveshare Zero feeding two AD9833 waveform generators, these pump a triangle wave into a pair of AS3340’s which in turn provide sawtooth and pulse (PWM) waveforms from 15hz to 8Khz. I’ve added other features such as an FM input for an LFO, glide settings, Sub outputs, Note CV and velocity CV outputs. I’ve yet to experiment with the sync facilities.
I added sync this afternoon, it’s based on the P600 soft sync design and by waggling the frequency of DCO2 against DCO1 it’s makes sync noises and the waveforms are getting reset. I’ve updated the code and schematic to show the additional bits.
you keep me inspired, I have done nothing in a yearish just so busy with everything else in life. But I am slowly sorting my workshop out… I may give this one a try
Cheers
Rob
Probably not important for a lot of people, but I used PWM on the rp2040 to generate CV voltages for key track and velocity control. Most people wouldn’t need these, but for me it was important. Previously I was using an mcp4822 dual channel 12 bit SPI DAC, but these are expensive and the accuracy really isn’t required for velocity (0-127) and key track which can track the steps of the keyboard again 0-127.
So I used PWM, but noticed at a velocity of 64 the CV was wobbly and got better towards 0 and 127 as the PWM was strongest. I spent ages with PWM slices setting up better resolution and frequencies only to lose my AD9833 SPI connections, the PWM setup blatted the SPI and I couldn’t work out why, for 2 days I messed with this issue and I was just about to dump it all for a DAC again when I found a simple analogwritefreq() command for PWM and that fixed all my issues, no slices required at all.
I feel a bit stupid, but happy I stumbled across the solution.
And just to add to the confusion, GPIO pins can share the same PWM slice and channel so don’t use two pins for PWM that clash as adjusting one adjusts the other as I found out today. So keep your PWM on individual channels.