Multichannel Codec?

Status
Not open for further replies.

synthcat

Member
Hi,

This is my first post, and I'm not sure if I'm posting in the right area, so I apologize if it's not. Anyway, I have searched the forum for information about connecting a multichannel codec to the Teensy3.5 and haven't really found anything. Specifically, I'm thinking about a project that uses the CS42448 with six simultaneous audio channels coming in via I2S/TDM. Does anyone know if this is possible with the 3.5 or of resources or past projects that have used multichannel codecs?

Thanks in advance!
 
It is supposed to be possible. So far, as far as I know, nobody has done it or even made any serious attempt to really use TDM yet.
 
Hi Paul,

Thanks for your quick response. (I enjoyed and got a lot out of your audio tutorial, by the way.) I actually have a board that I designed for the CS42448. I'll see if I can get it working with the 3.5.

Cheers,
Colin
 
Great. I'm looking forward to seeing what you make. Let me know if you're willing to share the PCB. Maybe I'll get a couple made... and probably send one to Frank.

If we could get 8 channel TDM working, perhaps it would be really useful for folks in the modular synth community? I guess the input & output filters would need to support DC coupling and +/- 5V signal range. The CS42448 has a DC cal feature (when turning off the input high-pass filters) which looks like it could be really useful, with some front-end analog switch circuitry to allow forcing the inputs to zero volts. To really make a usable DC accurate product (for precise CV), might also be necessary to calibrate the DC level against a known reference, and then implement adjustment of the outgoing data in software.

One small challenge with TDM on CS42448 is the required BCLK frequency. It's 256 bits per frame, which means BCLK needs to be 11.29 MHz. But the fastest divisor in I2S0_TCR2 results in a divide-by-2 from MCLK, so we're probably going to need to generate MCLK twice as fast. Wires are going to have to be kept short for 22.58 MHz clock and such high bit rates. Looks like Teensy 3.6 overclocked to 192 MHz is the only way to get a 22.58 MHz MCLK with perfect 50% duty cycle (mult of 2 of less in the MCLK generator). I see the CS42448 says it wants 45% to 55% on page 18. But so do other chips we use, which seem to work ok with the not-50% multipliers. Still, might be best to test first on Teensy 3.6 at 192 MHz, where the MCLK output is times 2 and divide by 17.
 
Hi Paul,

I just placed an order for the 3.6. As soon as it gets here, I'll start working on this. I'm sure I'll be back here with many questions for you. Once I get something working, I'd be happy to share it. If you want the files for CS42448 breakout that I've got now, let me know and I'll send them to you.

Cheers!
Colin
 
Might take you up on that in a few weeks. For now, I'm wrapping up a first beta for USB host, and then I have a long list of issues to investigate that have all been put on hold while working this USB host stuff. So probably not much I could realistically do with this right now anyway. I definitely am curious to hear how it turns out...
 
Hi Paul,

I just found your materials on the board you made for the CS42448. That's awesome! Really glad to see you ran with it. I ordered some of the boards from OshPark and will build them as soon as they arrive. I'd like to Be a part of any conversation that happens on this topic, so keep me posted if t you think of it.

Cheers,
Colin
 
Status
Not open for further replies.
Back
Top