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

Using external SN74LV4051A or similar

SigmaDSP & SigmaStudio owc Jul 24, 2018 00:00 9 replies Original on forum ↗
Subscribe
owc Question
Jul 24, 2018 00:00

I am designing a project for a customer around either the ADAU1701 or ADAU1761 (not sure yet).

The only issue is that I need at least 6-8 analog inputs.

I was wondering if it would be possible to use something like a SN74LV4051A or similar to make this happen?

The digital output ports can be connected to the other GPIO i guess?

There are a few topics about using a mux, but non of them really gave a clear answer to this.

Audio Signal Processors

SigmaDSP Audio Processors

adau1761

analog mux

adau1701

DaveThib Reply
Jul 25, 2018 00:00

Hello OWC,

Both of these parts only have two channels of analog signals that can be processed in the core. If you come in using the serial port then 8 more channels can be processed for a total of 10 but using the ADCs you can only input two channels. The ADAU1761 can switch between or mix six channels but this is all done in the analog domain then only two channels are actually sent into the DSP.

So this means that if your application needs to mix more than two channels at any one time then you cannot use an external switch. So I assume you are aware of this.

So if you only need to switch between different inputs then you certainly could use a MUX like you suggested. I am not certain if this part is the best but the concept is possible.

Yes, the digital output ports can be used as GPIO. How many do you need and what type of GPIO? The 1701 has four AUX ADCs which is very handy but the 1761 does not. It was designed to be used with a system controller so the assumption is that external controls would be processed by the uC and then the setting sent to the DSP.

If you are intending to use a MUX to quickly switch between several inputs in an attempt to simultaneously input more than two channels then that will not work. There are a number of issues you would encounter.

I think the best solution would be to use some external ADCs and send them into the DSP using the serial port. Then you can process all the channels in the DSP.

Dave T

owc Reply
Jul 28, 2018 00:00

I am not entirely sure we are talking about the same thing?

But basically the idea is that there are a couple of sliders (potentiometers) so the user can change the EQ on several frequency bands and volume.

So technically speaking it doesn't matter that much if that's not at the same time, but it at least needs to be flawless enough so to speak.

What kind of problems are you referring to?

I am very well aware that an external micro-controller could be a solution, but these are more expensive.

It also requires another step in production plus more board space.

So an analog MUX would be much more convenient on many ways.

KJBob Reply
Jul 29, 2018 00:00

It sounds like rather than more audio ADC inputs, you're looking for more Aux ADC inputs. Dave is correct that attempting to expand audio inputs with an external MUX would be problematic. Aux ADC expansion is much easier and you should be able to use a 4051 or similar chip. jon71 described the idea here:

https://ez.analog.com/message/221474?commentID=221474#comment-221474

I also made a proof-of-concept project showing the SigmaStudio portion of the scheme but I can't find it either in Engineer Zone or in my projects folder.

Best regards,

Bob

owc Reply
Jul 29, 2018 00:00

Thanks Bob,

Yes, that was exactly why I was asking if we were talking about the same thing.

I am looking for more analog AUX inputs.

I will have a look into the link you're referring to.

Let me know if you found your proof of concept again, I am very curious about it.

DaveThib Reply
Jul 30, 2018 00:00

Hello OWC,

Thanks for the clarification. Yes, AUX ADC switching is much easier and can be done. I also have given this some thought but never had the time to develop a good example. The ADAU1701 would be the better part to use especially if you are not using the serial ports. Then you have many more GPIO than the 1761 has and it can selfboot. The 1761 cannot.

Jon described it very well. There does need to be some sort of filtering to filter out the discontinuity and also the settling to the new value. If you switch the MUX from one input to the next and they were sitting at very different values, then the capacitance in the circuit will hold the old value and cause a current spike. So I would be curious to learn if the built in AUXADC filtering in the part would be enough to filter that out. So it might take some tweaking in hardware and software.

I am not sure when I will have time to work on an example of this for you...

Dave T

owc Reply
Aug 1, 2018 00:00

Hi Dave,

Thanks, that clarifies a lot for me as well.

Also good to know the 1761 doesn't have a self-boot mode, I actually didn't realise that yet, lol.

The fact that some kind of time settling is needed is interesting as well.

Can you maybe describe that a little further?

Micro-controllers don't seem to have that issues when an analog MUX is being used?

Wouldn't a simple buffer or series resistor already fix this issue?

DaveThib Reply
Aug 1, 2018 00:00

Hello OWC,

I have also done some microcontroller programming and using the internal MUX to a single SAC type of ADC. What had to be done there was to switch the MUX to a new channel/pin then set an interrupt and go away for a period of time to let the value settle to the level of the new connection. Then when the interrupt triggers you start the conversion and set the interrupt for when the conversion is ready then read the value, switch the mux and start over. The code was not too difficult just a lot of detail with the interrupts. The datasheet for the uC had a lot of detail and formulas to calculate the amount of time you have to wait for the data to settle. Yes, you are correct, it all depends on the source impedance to determine how long it will take for the internal sampling cap to charge/discharge. So using a low impedance buffer really helps it match the level faster. It only really comes into play when you try to sample at the fastest rates. I think the built in filters in our AUXADCs will help smooth that out but I am not certain of that.

Dave T

owc Reply
Aug 1, 2018 00:00

Hi Dave,

Well in this case we are talking about moving some sliders for EQ settings.

The value reading is DC with a change of maybe couple Hz at most (if somebody quickly change a value down and up).

So it's not like some kind of LED or switch matrix were inputs are constantly being monitored at high speeds.

It almost makes me think it's not that much of an issue, because the faster you switch, the bigger the problem will get?

(I could be wrong with that thought)

But this sounds like you can even maybe build in a delay in the reading itself, that's perfectly doable in SigmaStudio I think?

So basically exactly what you describe when using a micro-controller.

In this case volume control is done with just a plain old external potentiometer to get a better SNR at lower volume levels so that's not an issue.

DaveThib Reply
Aug 2, 2018 00:00

Hello OWC,

No, the change I am talking about is when the MUX switches controls. Let's say you have two controls that are sharing the same ADC input and is switched by a mux. Control A is at maximum level, 3.3V and Control B is at minimum level, DGND. When the ADC switches from one to the other the voltage the ADC is seeing abruptly changes from 3.3V to 0V and back over and over at the rate of the multiplexer. This causes noise on the ADC if you do not wait for the value to settle to the new voltage. However, I do think this is a non-issue since the switching is probably not going to be too fast and the AUXADC has some filtering that should filter that out. It is just something to be aware of in case you notice some noise in the control line.

I did have a design I did a long time ago that had a lot of controls muxed and these current spikes got into the ground and was audible in some of the unrelated analog signal paths. I fixed it by putting in a small filter to slow down the current spike and filter it. I also was able to slow down the sampling to allow for the longer settling time.

Dave T