How many channels of audio can I expect my Teensy to process?

Status
Not open for further replies.

sw_hunt

Well-known member
I've built several projects with Teensy 3.6 for slow control signals and am quite happy adding DACs, ADCs, Muxs etc. I want to build an audio mixer/processor that has 48 mono 16-bit 44kHz inputs and 16 similar outputs. Internally it will be doing lots of mixing and gain control. Does this sound like something a 3.6 can achieve or am I going to need a 4.0 or something else?
Many thanks
 
You probably need Teensy 4.0.

TDM protocol is the only want to get 16 channels on a single data pin. Teensy 3.6 has 2 data input pins and 2 data output pins, so I just don't see any way for you to get 48 channels input to a Teensy 3.6.

Frank tested TDM on Teensy 4.0 during the beta test. But the code has changed a bit since then. If it's not currently working, report it here and I'll take a look. That should get you to 1 TDM input.

Whether 3 TDM inputs can really work on Teensy 4.0, I'm not 100% sure. My gut feeling is the odds are pretty good there should be some way to do it. But that way might require pretty difficult low-level programming. If you decide to try this project, please do so with the expectation that the published software really only supports 1 TDM data input and 1 output (16 channels in and 16 channels out).

Another technical issue is the lack of 16 channel codec chips. Pretty much all the TDM work we've done so far has been based around the CS42448 chip, using this circuit board:

https://oshpark.com/shared_projects/2Yj6rFaW

Here's the forum thread about TDM and the development of that board.

https://forum.pjrc.com/threads/4137...-on-Teensy-3-6?p=138705&viewfull=1#post138705

Perhaps with some digital logic to delay the FS pulse for 16 cycles, and to tri-state or mux or switch the 2 data lines every 16 cycles, maybe 2 of those CS42448 chips could talk on a single TDM channel with each chip's 16 most significant bits communicating during the 16 cycles where the other chip sends its low bits. So far, I'm not aware of anyone building such hardware. But it seems like this should be possible.

What definitely does work "out of the box" for Teensy 3.x is that CS42448 board with 6 inputs and 8 outputs.
 
Thanks Paul
Using the ASDTool, the tdm modules refer to four pins on the Teensy: 9-BCLK; 11-MCLK; 13-RX and 23-FS. I can't see these on the Teensy 3.6 pinout - are these the actual pin numbers, so shared with RX3, RX2, MOSI0 and A16 respectively, and these are the 'digital audio' pins referred to in https://www.pjrc.com/teensy/techspecs.html ? And if that is one set of digital audio pins, what is the second and how would I get ASDtool to talk to the second set? Also confused because the pinout of Teensy 4.0 has lots of yellow digital audio pins shown whose names don't match, no 'FS' etc...

My project actually breaks down into a number of identical modules, each with 16 channels of input and 8 of output, so - at least for the prototype - I could use a seperate Teensy 4.0 for each module. Each module wouldn't need to talk to the others but there would be a master 3.6 sending non-audio control data to all modules, so I'd have to figure out how to get them talking to each other. I2C?

That CS42448 looks really useful, but from what you've said getting more than one to work with a single Teensy isn't going to be easy. I wonder if I'd be better to feed some of the 10 (accessible) analog ins through a few 4051 Muxs but then the ASDTool isn't going to swich the Muxs.

Thanks
 
Status
Not open for further replies.
Back
Top