[sdiy] Teensy 3.6 180MHz ARM Cortex M4F with 6 in, 8 out audio CODEC

Mattias Rickardsson mr at analogue.org
Thu Jan 4 13:12:42 CET 2018

On 4 January 2018 at 11:08, Robin Whittle <rw at firstpr.com.au> wrote:

> Here is a description of something I plan to do, but it may be later in
> the year before I have time to get it going, even at the most basic
> level.  It involves a 180MHz NXP Cortex M4F MCU in a Teensy 3.6
> devboard, coupled to a 6 in, 8 out CODEC from Cirrus Logic - the CS42438
> (USD$12 Q1 Mouser):
>   https://www.cirrus.com/products/cs42436-38/
> This can be expanded to 8 ADC channels in total by way of a separate
> stereo ADC chip.

We've been using these CS42436/38 for 5 years, both in single (with extra
stereo AD chip) and in dual configuration. Apart from some unexpected
undocumented behaviour and questions never answered by their customer
support, the codecs have been working fine.

The DACs have differential output pins.  The ADCs have differential
> inputs, and I think it is necessary to drive them that way.  If only one
> is driven, and the other connected to a substantial capacitor to ground,
> then the ACD can produce a full scale output, when so configured, but
> overloading the one pin causes wraparound - disastrously loud distortion
> from the top of the signal range to the bottom.  This shows that in this
> mode, output is merely being bit-shifted by one.  If the two pins are
> driven differentially, then overloading results simply in clipping.

Did you also discover this "the hard way", or have they documented this
flaw in recent years? :-) Their datasheet is also a bit confusing when it
comes to the specified differential/single-ended full-scale audio levels.
Anyway, to ensure full performance it's a good choice to use both inputs
and outputs differentially - even if we didn't lose as much fidelity as
expected from the datasheet when driving them single-ended.

Another odd thing is that they are listed as "Not Recommended for New
Designs" at Digikey (but not other vendors) - and I have a feeling that we
saw this also at the Cirrus Logic website before they completely destroyed
the previously informative site into the present crap. Anyway, they don't
include any multichannel codecs at all on their NRND page at the moment, so
I guess these chips will continue.

I haven't read the datasheet in detail, but the CODEC can handle 24 or
> 16 bit data, and the DACs can handle data at 192ksps, 96ksps, 48ksps or
> slower.  The ADCs have two modes for up to 48ksps and 96ksps output, but
> I think the sigma-delta modulator runs at the same speed, with the
> difference being in the decimation filter.  (BTW, I have made several
> attempts to fully understand how it is possible to get such
> extraordinary signal-to-noise performance from these sigma-delta ADCs,
> and I never really understood it to my satisfaction.  I don't believe
> they can cope perfectly with arbitrary waveforms, such as full-scale
> square waves or full scale narrow rectangular pulses, but they clearly
> work well with most music and acoustic signals.)

Is it the low noise in particular that you are considering, or also the THD?

I think the K66 will use about 400mW or so at most, and the CS42438
> 600mW.  400mW of the CODEC's power comes from the 5V rail.  600mW from
> the 3.3V rail means 0.91W from 5V with a linear 3.3V regulator, so the
> total power dissipation, not counting op-amps for CODEC inputs and
> outputs, would consume about 1.4W.  I might be tempted to add a heatsink
> to the CODEC, since such the junction to ambient thermal impedance is 47
> C/W for 2 layer PCBs, meaning the chip itself would go to about 30C
> higher than the PCB, which itself could easily be running at 50C or more.

The codecs do get quite hot. I feel sorry for the poor little accompanying
electrolytic caps that often end up not very far away.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20180104/0c690e37/attachment.htm>

More information about the Synth-diy mailing list