Teensy 4.0 I2S with 768kHz stereo with TLV320ADC6140

Status
Not open for further replies.
Hi,

i want to use teensy 4.0 to get 768kHz stereo samples over I2S from the TLV320ADC6140.
I would like to do an average of the samples from 768kHz to 48kHz, convert the 48kHz time in 1024 points FFT, do a noise subtraction and convert back in 48kHz audio time.
Then send 48kHz samples over USB as sound card to the PC.

1- I know that the teensy library only supports 44.1kHz I2S, but i could modify the registers from the I2S iMxRT to 768kHz samples right?

2- Can the teensy 4.0 handle the large incoming data, doing average, FFT noise subtraction, reverse FFT to time base and send them to USB?

3- Do i have to change the USB Audio library to send 48kHz stereo samples at 16bit to the PC?

4- Is there a plan when the bootloader IC for DIY iMxRT PCB will be available? If not how can i connect the USB output to my custom PCB? (I also wish to make software updates over teensy command line loader)

Best regards,

Michael
 
do yourself a favor and get a T4.1, where you can add 16 Mbyte PSRAM.
Further, simplify your life and sample ADC in multiple of 44.1 kHz (it is one of the suggested modes)
Now, on the algorithm, it should be possible with T4.x, but why simple averaging before de-noising?
As you wrote it, it is better to run ADC at 44.1 (48) kHz and let the decimation filter be done by the chip.
the ADC is a sigma-delta that samples data at much higher rate followed by digital downsampling.

Edit: not sure you can do stereo at 768 kHz (at that high sampling it seems only 1 channel)
 
1- I know that the teensy library only supports 44.1kHz I2S, but i could modify the registers from the I2S iMxRT to 768kHz samples right?
Have you tried changing AUDIO_SAMPLE_RATE_EXACT in AudioStream.h to 7.68e5 ?

You might be able to sample that way (don't know though) - however you can't simultaneously handle 768
and 48kSPS at the same time with the audio lib so that rate-conversion will probably need to be coded up explicitly.

I suspect that the way that might be easiest (not necessarily easy), is take a copy of the AudioInputI2S
object code and create one with the higher sample rate than does the averaging and rate-conversion to pipe
48kSPS data into an audio buffer for the rest of the processing.
2- Can the teensy 4.0 handle the large incoming data, doing average, FFT noise subtraction, reverse FFT to time base and send them to USB?
1024 samples isn't large - or is there some other constraint? The T4 is fast, really fast, you don't have a problem with throughput.

I don't know if 48k for USB is supported though.
3- Do i have to change the USB Audio library to send 48kHz stereo samples at 16bit to the PC?
See last comments
 
Status
Not open for further replies.
Back
Top