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

ADAU1701 PROBLEMS WITH AUX ADC

SigmaDSP & SigmaStudio piero Feb 15, 2018 00:00 13 replies Original on forum ↗
Subscribe
piero Question
Feb 15, 2018 00:00

I have configured the input for an AUX ADC as the attached image,

I do not understand why the audio played is very noisy, to have a discrete playback, it is necessary to set the control adc in SigmaStudio with No Ysteresis.

This is a problem, the setup in SigmaStudio for the mode of use of the ADC is the same for all.

I need to have ADC0 and ADC1 with 4 bit hysteresis setup, but with this setup the audio sent to AUX ADC also filtering is played horribly.

I certainly make some mistakes, but which one?

Thanks

Audio Signal Processors

sigma studio

aux adc

SigmaDSP Audio Processors

adau1701

piero Reply
Feb 16, 2018 00:00

Hi Bob, thank you so much.

I try the project you kindly posted and let you know.
It certainly works.

Best regards

Piero

KJBob Reply
Feb 16, 2018 00:00

Hi Piero,

There's no mistake. I assume from your question that you need to bring in extra channel(s) of 8-bit audio via Aux ADC. And just as you said, if you don't turn the Aux ADC hysteresis OFF, it sounds like nails in a cement mixer. Also, just as you said, it's all or nothing with the hysteresis. This is beyond SigmaStudio's control since it's baked into the ADAU1701 -- page 43 of its data sheet shows only one hysteresis control for all four Aux ADCs. I assume that you do need hysteresis for one or more Aux ADCs being used as non-audio control inputs. In this case, I suggest that you set your Aux ADCs for no hysteresis, so the audio works. Then modify your signal flow to make your control inputs happy.

Simple lowpass filtering may be sufficient for your control inputs. If your application needs true hysteresis, try adding the circuit below to each Aux ADC. The DC source adjusts the amount of hysteresis while the gain block adjusts filtering.

Here's how it works: Subtract 1 takes the difference between the control output and the ADC reading. If this is greater than the desired hysteresis set by source DC1, the ABCD comparator switches to its C input, activating a feedback loop to bring the output towards the ADC. Once within the hysteresis region again, the comparator switches to its D input which holds the output.

The attached project runs on a -1701 mini eval board. If you set the hysteresis to a huge value (like 0.1), you can see it work as you turn the eval board's pot and press the readback button. Don't try to consolidate the three feedbacks with a T junction, it won't work.

Best regards,

Bob

d07d4ce25b0d4fb54c23fb805b3536cc.png
d07d4ce25b0d4fb54c23fb805b3536cc.png
d07d4ce25b0d4fb54c23fb805b3536cc.png-620x266.png
d07d4ce25b0d4fb54c23fb805b3536cc.png-620x266.png
ADIApproved Reply
Feb 16, 2018 00:00

HI Bob:
I like this clever simple and very illustrative solution. Two comments.

I wonder why a single feedback is not working for you (we'll check)

I'm considering making this into an optimized SigmaStudio block. Do you mind?

Thanks a lot (as always)

Miguel

KJBob Reply
Feb 16, 2018 00:00

Hi Miguel,

Actually I haven't tried a single feedback with this project -- I just remember an issue which may have been fixed since. It's described here: https://ez.analog.com/message/225751?commentID=225751#comment-225751

An optimized block may come in handy!

Bob

piero Reply
Feb 21, 2018 00:00

Hi Bob,
the project you have attached works perfectly, thank you very much..

I realized the combination of bits you see in the attached image using the logic gates, everything works, but the sample rate I use in the project is 96KHz so the number of instructions available is reduced to 512.
Logic gates use a lot of instructions, you are a wizard with AB on CD out, do you think you can get the same result by saving instructions?

Best regards Piero

3db6729bdc37225a13d92ad71de0a244.jpg
3db6729bdc37225a13d92ad71de0a244.jpg
3db6729bdc37225a13d92ad71de0a244.jpg-620x239.jpg
3db6729bdc37225a13d92ad71de0a244.jpg-620x239.jpg
KJBob Reply
Feb 21, 2018 00:00

Hello piero,

Actually you can perform the binary conversion without any sort of logic. Just use Lookup Tables (LUTs) to produce the desired bit outputs according to the value of the pushbutton counter output. Analogous to programming a EPROM instead of wiring together a pile of gates, the LUTs effectively trade parameter memory for program memory.

Best regards,

Bob

d3bef2863a67b22a83bf562f34024ef4.png
d3bef2863a67b22a83bf562f34024ef4.png
d3bef2863a67b22a83bf562f34024ef4.png-620x232.png
d3bef2863a67b22a83bf562f34024ef4.png-620x232.png
piero Reply
Apr 29, 2018 00:00

Hi everyone, hi Bob,

For lack of time I temporarily abandoned the project in which I use AUX ADC.

I tried the project you had published, but it does not solve the problem.

I will never use an AUX ADC to handle audio, horrible experience, unfortunately there is a hardware and I have to solve the problem.

The DSP under discussion is obviously ADAU1701.

AUX ADC is used without hysteresis, if hysteresis is enabled nothing works.

I can make AUX ADC work discreetly but I could not find a filter that eliminates the annoying puff that happens when the input from AUX ADC is sent to a DAC.

Someone has had and solved this problem.

I attach 2 links through which you can listen to the audio sent to ADC and the audio output on the DAC

http://www.mipromuovodame.com/public/input.mp3

http://www.mipromuovodame.com/public/output.mp3

Thank you

KJBob Reply
Apr 30, 2018 00:00

Hello Piero,

Today I experimented a bit and found results more or less similar to yours. Essentially the difficulty is that the -1701's Aux ADCs were not designed for this purpose. To do audio requires both no hysteresis and no LP filtering, but none of the four selections provides this choice -- see, ADAU1702 hysteresis settings The best possible choice, shown below, unfortunately includes a LP filter which muffles the audio. Note that the last two choices are mislabeled:

I tried to compensate for the lowpass with two shelving filters as shown below. With this I obtained acceptable voice quality with a podcast AC coupled and biased at Vcc/2 to the Aux ADC input. Noise was audible at a somewhat lower level than you found. Although it might work for telephone or communications quality voice, its limited dynamic range would require careful level control ahead of the Aux ADC. It would be easier to add the needed extra ADCs with an external codec, then perform limiting or level control as algorithms inside the -1701.

Best regards,

Bob

3443.e78ebdf6337739073fd4a4273a50e884.png
3443.e78ebdf6337739073fd4a4273a50e884.png
3443.e78ebdf6337739073fd4a4273a50e884.png-435x155.png
3443.e78ebdf6337739073fd4a4273a50e884.png-435x155.png
3482.84e30c5e4d37f93b4e1a0f9ad6906ee6.png
3482.84e30c5e4d37f93b4e1a0f9ad6906ee6.png
3482.84e30c5e4d37f93b4e1a0f9ad6906ee6.png-618x518.png
3482.84e30c5e4d37f93b4e1a0f9ad6906ee6.png-618x518.png
piero Reply
Apr 30, 2018 00:00

Thanks Bob,
the result that you get with the filtering proposed by you is similar to other results that I had obtained, however bad results.

I probably did not pay attention to the description of the AUX ADC in the DSP datasheet and I got ripped off.

I will have to find a way to make listening to these messages at least decent.

Now I do not remember from whom I had news, "I should look in the archive of my emails", however, a person of the Analog staff.

The news was related to an imminent commercialization of a new economic DSP similar to 1701 but able to reproduce audio.

I did not know anything, I asked David but he did not say anything, he gave me a kind of interrogation, "type of application, volumes" etc., I answered here in the forum but David never answered.

They say patience is the virtue of the strong, I have a lot of patience ..

Thanks Bob

Piewro
.

piero Reply
May 1, 2018 00:00

Thanks Dave,
perhaps because of my bad English it was misunderstood what I wrote.
I do not feel fooled, I wrote that I did not read the datasheet properly.

Using AUX ADC for the audio was my mistake.

Instead if you can I would like to hear about the new DSP similar to ADU 1701 but can also play audio.

I have to do a new project and I want to delete all the external components that generate vocal messages.

Thank you

DaveThib Reply
May 1, 2018 00:00

Hello Piero,

I don't understand why you feel like you have been misled? Here are excerpts from the datasheet:

Right on the front page:

"Auxiliary ADC with 4-input mux for analog control"

Pg 16:

The MP pins can be configured as digital I/Os, inputs to the 4-channel auxiliary ADC, or serial data I/O ports. As inputs, they can be connected to buttons, switches, rotary encoders, potentiometers, IR receivers, or other external circuitry to control the internal signal processing program.

Then there is the write up on page 45 that I will not paste in here. It clearly says that these are designed as control inputs not audio inputs. As you can see they can be used as audio inputs but the resolution is poor and there is a lot of filtering. On the Sigma300 they are at a lower sampling rate and have no anti-aliasing filter so if you use them for audio this must be done externally. I expect the same issue with these.

Your discussion here has peaked my interest in investigating further the hysteresis settings using our test equipment here to detail what is actually happening. I will do that when I have time.

Now, regarding your earlier questions. Often they are really general such that it is very difficult to answer the questions. I have been under some heavy time constraints recently so I have not been able to be as attentive to the forum as I would like to be. So I apologize for that.

Got to run...

Dave T

DaveThib Reply
May 1, 2018 00:00

Hello Piero,

No problem, You should hear my Italian! Actually, you would not want to hear it! LOL

The problem has to do with a part having enough power to store and play back messages. The only thing close is the ADAU1452 and ADAU1467 families of parts but those parts do not have built in converters. You could use the ADAU1372 to bring in several audio channels and it gives you two DACs. The bigger problem is the playback.

The ADAU1466, (the 72 pin version of the 1467) does have a lot of memory but only enough for very small file sizes. Then something has to load in the data. I think your application requires larger file sizes.

So this brings you to using an external FLASH to store the data.

We do have a Wave Player cell in the library. This is a rather new cell so I have not experimented with it very much. You can read about it here:

https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/mastercontrolport/wavplayer

I think this will do what you are looking for.

Dave T

piero Reply
May 2, 2018 00:00

Thanks for the information Dave.

I looked at the DSP you recommended but cost a lot for my application.

Ehhhhh ,, I will have to continue using the 20 cents voice synthesis chp.

I hope that Analog will soon produce a DSP in the price range of ADAU1701 but able to reproduce audio even by drawing data from an external memory.

Piero