recursinging
Well-known member
The Cirrus Logic CS42448 [datasheet] is a 6 input, 8 output audio codec supported by the Teensy Audio library using TDM signalling. Although there is a board design already available for this codec, I was interested in getting it to work with my Eurorack modular synth gear. This requires scaling the input and output voltage ranges differently than the existing board does, and I wanted to see how well this audio codec (which is designed for AC signals) can deal with DC.
This motivated me to create a breakout board which simply gives breadboard access to the differential input and output pins of the codec. There is a version for the Teensy 3.5/6 which I've built and tested, and a version for the Teensy 4.0, which I've not yet built. I decided on a form factor which extends beyond the Teensy lengthwise (hence the chewing gum):
This allows the breakout to fit in a breadboard, and if the Teensy is mounted using stackable headers, access to all of the side Teensy pins as well. Here is the Teensy 3.6 version:
To test the outputs, I configured eight sine objects to output at 1kHz to all eight TDM channels using the Audio Library GUI tool. I measured all 8 differential outputs and got the expected result, as documented in the datasheet.
To test the inputs, I simply routed the TDM input directly to the TDM outputs (1-6) using the Audio Library GUI tool, I then used my function generator to produce a differential sine wave at 1kHz, biased to 2.43V (the value I measured at pin VQ) and applied it to the inputs.
I then attached my scope to the corresponding outputs...
...and verified the sine wave was indeed being passed through from input to output.
A quick spectral analysis of the passed-through signal shows a reasonable noise floor and no noticeable distortion (@10kHz).
The projects for the (Teensy 3.5/6) and (Teensy 4.0) are open source and available under the CC-BY-NC-SA 3.0 to make yourself and modify if you feel so inclined. I made an effort to select well stocked parts from LCSC, so it should be possible to have the boards made by JLCPCB and order the BOM from LCSC for under 20$ shipped (excluding the Teensy and the codec of course). Hope someone can make use of this!
This motivated me to create a breakout board which simply gives breadboard access to the differential input and output pins of the codec. There is a version for the Teensy 3.5/6 which I've built and tested, and a version for the Teensy 4.0, which I've not yet built. I decided on a form factor which extends beyond the Teensy lengthwise (hence the chewing gum):
This allows the breakout to fit in a breadboard, and if the Teensy is mounted using stackable headers, access to all of the side Teensy pins as well. Here is the Teensy 3.6 version:
To test the outputs, I configured eight sine objects to output at 1kHz to all eight TDM channels using the Audio Library GUI tool. I measured all 8 differential outputs and got the expected result, as documented in the datasheet.
To test the inputs, I simply routed the TDM input directly to the TDM outputs (1-6) using the Audio Library GUI tool, I then used my function generator to produce a differential sine wave at 1kHz, biased to 2.43V (the value I measured at pin VQ) and applied it to the inputs.
I then attached my scope to the corresponding outputs...
...and verified the sine wave was indeed being passed through from input to output.
A quick spectral analysis of the passed-through signal shows a reasonable noise floor and no noticeable distortion (@10kHz).
The projects for the (Teensy 3.5/6) and (Teensy 4.0) are open source and available under the CC-BY-NC-SA 3.0 to make yourself and modify if you feel so inclined. I made an effort to select well stocked parts from LCSC, so it should be possible to have the boards made by JLCPCB and order the BOM from LCSC for under 20$ shipped (excluding the Teensy and the codec of course). Hope someone can make use of this!