ADCs and DACs for audio instrumentation applications

I will switch to the STM32F7 as soon as you will release your UAC2 code to the public domain :D.

Meantime, I do not have the time and mood to write an UAC2 stack for the STM myself, so I have to rely on what exists. For mere mortals like myself I don't see anything beyond the XMOS and the now obsolete CM6531. Any other options (like the new CM6635, ComTrue, etc...) are beyond my DIY reach.
 
Member
Joined 2004
Paid Member
In case something like this was made, how much isolation do we need?

1. Would it be sufficient to isolate the outputs from the inputs, so with inputs still "connected" to the safety earth?
2. Assuming there are two outputs, do these have to be isolated from each other or could they be galvanically connected, as long as they are isolated from the ADC side (and the USB of course)?

I realize that the lack of isolation is a shortcoming of the RTX6001 (as you have also pointed out previously). The ground loops would be less of a problem with isolation at one end of the signal chain. But if we want to keep it (relatively) simple, how much isolation would be sufficient?

Its conceivable that the sources can share ground, unless you want to use the Boonton trick to get 16V RMS, essentially a bridge tied load for the output. That would require two isolated outputs. The inputs can be a common ground with differential inputs. They would need good CMRR.
 
STM32F7 isn't cheap, especially today, also the current draw should be noticeable higher vs state machine + 8051 that typically we can find in a UAC2 bridge. Cmedia seems has no plans to give the source-code anymore, savitech has even more hermetic policy. That way, I keep using Comtrue. Huh, last time Comtrue gave me 4 new PIDs for my products, I tested that, looks ok, however, Comtrue's programming tool can't detect these new PID at all.. I asked Comtrue about that a few times(they don't like to replay fast if your question is not about "how to buy") what a hell is this? They said - we have no such problem on our side. Kind of "be happy" ))
So, an ideal USB audio solution doesn't exist, maybe Ti or Analog bridge with open source code would be a good candidate.
 
Yes, STM32F7s are not cheap and currently sold out everywhere. But as a purely hobbyist price of the MCU is not a prime concern to me. STM32F7 has much lower power consumption compared to XMOS and it can be used for various other chores than just UAC. And I really like the STM32 toolset which is also free of license charges.
 
I dodn't measure the power used by my UAC2 implementation on a LPC4330, but it used a tiny amount of CPU, a few percent on the Cortex-M4. So the power used by the CPU would be very low. It's all DMA, the CPU does not touch the data.

For multichannel though, that damn SGPIO peripheral required the cortex-M0 to move each sample in software. So that would be a problem.

However if someone can find a chip with multichannel I2S with DMA that actually works, then the CPU should do almost nothing while playing. In that case, CPU requirements are way below Cortex-M7. In fact you could probably underclock it to a ridiculously low frequency.

Of course the ideal solution for power and noise would be a small FPGA with an USB core, but that's a lot more complicated.
 
I have not tried above 192k since the F723Disco board does not allow external I2S clocking. I believe PLL-based SAI is limited to 192k but 384k (or even 768k) may be possible with external I2S clock. I will test it as soon as my usb-to-i2s bridge is ready.

I have tried a Nucleo-144 board with 24.576MHz external I2S clock and no MCK divider. The SAI outputs 384kHz FS and 24.576MHz SCK which is correct for 384k. However the Nucleo board does not have HS-support so no real testing is possible.
 
Last edited:
Can the SAI do 384 kHz or higher? Last I checked their HAL had limited you to 192 kHz. I assume if you modify it the hardware could probably do more since it’s similar to the SPI peripherals.

The ST HAL is almost always the bottleneck, in any application that requires high speed. A certain performance hit is to be expected for any HAL implementation, but ST went IMO way too far in dumbing down their HAL at a hefty performance cost. To the point it is good only for demo code.