Updated 8x8 and 16x16 audio

Another option is to add a pin to the Expansion header. It can be fly-leaded to 32 on the main PCB and patched where needed on slaves. It's the only extra signal now that each board has BCLK/LRCLK buffers.

The OUT1A / OUT1C patch is already available for later (and neater) use.

I can note the differences between T4.0 and T4.1 patching in the doco.

I've also decided to make 24bit/32 bit a second priority until I can find an Audio Library that can fully test it. Chipaudette's fork seems to be the one that has the highest profile, but doesn't seem to have any TDM drivers. Conversely, having the function may prompt someone to do a 32-bit INT upgrade to Paul's code.

Does multi-TDM support 24 or 32 bit transfers?
That all sounds great - thanks so much for your effort on this, I hope it turns out to be worth it.

The multi-TDM code doesn’t directly support larger transfers, though as noted above it could be coerced into doing it using pairs of 16-bit signals, and the lowest-impact way of doing that would be changing the inter-library conversion objects. I may take a look soon.

I’ll take another look at your fixed HPF() later today.

Oh, I meant to say before, liking the avatar!
 
Pulled in, seems to be working fine for me.

I've done a bit of work on the F32 library and put in PR #27 which adds conversion of an F32 audio stream to / from two I16 ones containing the MS and LSwords. This can be used to get 24-bit TDM I/O - only lightly tested so far, though.
 
OK, a little less efficient than doing a full 32-bit transfer, but workable enough! Might as well set 32-bit mode and be done with it.

I'll get onto the control code over Easter. It shouldn't be too hard - just a couple of changes to the code writing registers R9 & R10.

A quick look says R9 code is OK. Revised R10 code looks like:
Code:
// TDM slot offset
void AudioControlTLV320AIC3104::writeR10(uint8_t codec)    // p51
{
        uint8_t val = (codec * 2 * _sampleLength) + AIC_FIRST_SLOT; // TDM offset in 16 bit slots, 2 per codec
        if(_i2sMode == AICMODE_TDM)
            val += AIC_TDM_OFFSET;
        writeRegister(10, val, codec);
}

I'll do some more reflecting before posting the change formally.
 
Last edited:
Less efficient for sure, but it’s a simple non-breaking change to the F32 library, and means a separate TDM_F32 doesn’t (immediately) need to be developed and maintained. If it gets pulled in and I get some encouragement to do so then it’s fairly likely I’d do the proper code at some point.
 
I've rewritten HPF to accept any cut-off frequency up to 5kHz. 0 still sets the filter off.

Verbose( ) now controls HPF( ) diagnostic printing.

Enjoy!
 
Holy moly this 2776 is small! Just want to confirm this is the correct orientation. Thanks!

IMG_2285.JPG
 
Yes, that looks correct.

BTW, I'm working on a stackable 4 channel mic-line preamp board. Very low noise, individually switchable phantom power, individually switchable -30dB pad (for pro-line inputs) and 20dB gain to bring the level up to where the CODEC PGAs have good noise specs. It uses V+, V- and should work fine on +/-5V.

The amplified TRS output board has also been validated and uploaded.

Rev L Boards are due early this week, with the new WCLK and MCLK buffers + an extended expansion header for the additional SAI pin 32.
 
Hi All,

Two updates.
  • 2-stage DAC Biquad filters added to repo - code and arguments are based on Teensy Audio filter_biquad.h
  • More boards are available on Tindie - with the WCLK and BCLK buffers + an extended expansion header for the additional SAI pin 32.
  • Main Board files updated to Rev M.
 
Almost no difference between K and M - I simply had the wrong 1.8V regulator specified on L.

L & M have the extra buffers on MCLK and WCLK and an extra pin on the Expansion header to more easily enable 32x32 mode.

All three revisions work seamlessly together in 8x8 and 16x16 modes.

The Mic preamps are on the back burner for the moment, while I work on reducing the cost. Using THAT chips make the preamp boards more expensive than the main boards. I'm working on an OPA1632 design that is much less expensive. Just paper design at the moment. Unbuilt and untested.

It's a mic-line preamp with more headroom for line inputs U2D or R29 is omitted if that's not required.
draft mic preamp.png
 
Back
Top