ΣSigmaStudio Ask AI Русский Log in

Detecting an active input I2S signal to drive a GPIO flag

SigmaDSP & SigmaStudio SantoP Mar 23, 2025 00:00 3 replies Original on forum ↗
Subscribe
SantoP Question
Mar 23, 2025 00:00

Hi. If you're Dave Thibeau, hi again from Santo P.! I hope you're well and look forward to meeting you in Munich.

I'm making a second version of the preamp with the ADAU1701, and this uses the I2S inputs as the MCLK is absolutely stable (it comes from a different front end).

I need to add an output signal on a GPIO to disable the output stage of my preamp when there is no signal. I've seen in other QAs that it can be done quite easily when using the ADCs (https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/leveldetectorslookuptables/signaldetection), but is there a way to do it when using the I2S inputs?

I couldn't find anything, so I thought of reading back the DAC outputs and using the signal detection cell, but the difficult (or impossible) part is reading back the DAC outputs.

Can you give me any suggestions please?

Thanks Dave, as always.

Santo P.

Audio Signal Processors

hardware

SigmaDSP Audio Processors

Harishgowtham Reply
Mar 24, 2025 00:00

Hello Santo,

SantoP said:
I've seen in other QAs that it can be done quite easily when using the ADCs

You can just follow the same method but changing the input block to I2S channels. please have a look below.

The signal detection happens inside the core, so the inputs can be from ADC, I2S.

Dave will probably come a few hours later and say 'hi' to you and suggest some efficient solutions if needed.

This is bedtime for him and active time for me, we tag team responses!

Regards,

Harish

pastedimage1742796846858v1.png
pastedimage1742796846858v1.png
pastedimage1742797817016v2.png
pastedimage1742797817016v2.png
DaveThib Reply
Mar 24, 2025 00:00

Hello Santo P.

Harish nailed this one as usual! I think that is the best method to do this. This core does not give us too many other options. In the Sigma300/350 cores it can read its own registers and those parts also have an ASRC so that can be used to see if there is a valid signal on the serial port.

In this core the best we can do is look for signal and hope it is just not garbage and loud clicks and pops.

Dave T

SantoP Reply
Apr 3, 2025 00:00

Hi Harish and Dave, apologies for my late reply, it's a pretty hectic time. Anyway, thanks so much for the solution. I thought that the block was "purely analog". I'm currently assembling a test PCB so I'll keep you updated on the outcome of testing the solution as soon as I get round to it. Thanks also Dave for looking into it and giving me your own view on it.

All the best, take care

Santo