ADAU1701 Limiter example

Hi folks,

I need help with a template or example software for the RMS & PEAK LIMITER, I tried hard to make it work the way I want.

Whats needed is to have any signal level input from 0.7V up to 10V at the input, while keeping the signal at the output 1V for example without clip.

Is that possible?

Appreciate any help

Parents
  • 0
    •  Analog Employees 
    on Dec 4, 2018 6:12 PM over 1 year ago

    Hello microsim4,

    What you have to do is translate the external level into an internal digital level. Then you can work on it in the DSP to limit the level.

    When you are working with converters, the reference level for digital zero (0dBFS) is setup by the converters before it ever reaches the DSP. In the 1701 there is also the reference current setting resistor for the current input on the ADCs. Then DACs tend to not be exactly the same level. Again, a 0dBFS digital signal might be converted to a different analog level depending on what the reference is for the DAC. So you have to work this out in your design. Then apply a known level and measure it in the DSP to see if you are getting the level you expect. Then in the DSP you can limit it however you would like.

    Now if you are using the 1701 evaluation board to send it 10V input level then you are clipping the input. What value are you using for the ADC_RES? Upload your schematic.

    Dave T

  • Hi Dave,

    Sorry for late replay, I didn't get any notifications for some reason.

    I am not sure witch resistor you are talking about?

    Yes, I have the evaluation board, and my own design also.

    I have seen some examples with PEAK & RMS limiter, but none of them worked for me, maybe because of the value of that resistor I am not sure.

    Could you please point out witch resistor in the evaluation board schematic?

    And is there a value to set it to 0db for example?

    Thanks

  • 0
    •  Analog Employees 
    on Mar 5, 2019 9:25 PM over 1 year ago in reply to microsim4

    Hello Sam,

    Your first question is too subjective and depends on your system. So it is not easy to answer.

    Your second question is Yes, you need to have a full ground plane and a full power plane. You do not need to use a star ground scheme. This will give you the best results.

    For your third question I am working on an example but I might not get it done right now. So I will post this response now. You asked for two different things. The signal detect I have an example of already.

    ADAU1701 Sequelch Control using Signal Detect.zip

    I had built this project quickly a while back and misspelled squelch. It must have been a long day! :)

    In this project it is detecting signal present and controlling a volume control so that when there is no signal the background noise will be muted. You can simply send this signal to a GPIO if you like as a signal present LED.

    The peak detect I have started an example and will send it over later.

    Dave T

  • 0
    •  Analog Employees 
    on Mar 5, 2019 10:09 PM over 1 year ago in reply to microsim4

    Hello Sam,

    Here is the second project I promised. This should help you setup a peak detector.

    Dave T

    ADAU1701 AUXADC Compressor Sidechain Control and Peak Detect Out.zip

  • Hello Dave,

    Many thanks for you, and your valuable time.

    I will get back later with a replay after testing.

    Thanks

    Sam

  • Hi Dave,

    Thanks for the example projects.

    is there any component in the sigma studio does the following, or it can be built?

    I need a seamless switcher at the input of the ADAU1701, that will auto switch between input 1 and input 2 based on the input voltage, in other word the input signal.

    For example, applying a sine wave up to 0.5V, input 1 is selected, any thing above 0.6V will switch to Input 2, without producing any audible noise at all.

    Please note that the two inputs of the ADAU1701 has signal all the time.

    Please advice if that is possible, with example if you have

    Thanks in advance

  • +1
    •  Analog Employees 
    on Mar 26, 2019 8:22 PM over 1 year ago in reply to Microsim

    Hello Microsim,

    I am guessing as to what you are trying to do with this. There are two approaches. The first is to switch at a sample by sample basis. This can be done but if I am assuming it is the same signal being amplified at two different gains, then by definition the samples will never be the same except at zero. So switching between them will give you a discontinuity. So that will most likely not work. 

    The other way is a more slow method where the level is sensed over many milliseconds then you switch if one is above the threshold you mentioned. You can use a Mux (switch) that has slew so it will crossfade as it switches. It is not absolutely inaudible but is probably the best solution. You cannot simply switch over because that will cause a jump as I first described. 

    I did a similar project using a different SigmaDSP but I will insert a screenshot so you can see how it was done. This is probably a good starting point for you. 

    Dave T

Reply
  • +1
    •  Analog Employees 
    on Mar 26, 2019 8:22 PM over 1 year ago in reply to Microsim

    Hello Microsim,

    I am guessing as to what you are trying to do with this. There are two approaches. The first is to switch at a sample by sample basis. This can be done but if I am assuming it is the same signal being amplified at two different gains, then by definition the samples will never be the same except at zero. So switching between them will give you a discontinuity. So that will most likely not work. 

    The other way is a more slow method where the level is sensed over many milliseconds then you switch if one is above the threshold you mentioned. You can use a Mux (switch) that has slew so it will crossfade as it switches. It is not absolutely inaudible but is probably the best solution. You cannot simply switch over because that will cause a jump as I first described. 

    I did a similar project using a different SigmaDSP but I will insert a screenshot so you can see how it was done. This is probably a good starting point for you. 

    Dave T

Children
  • Hi Dave,

    Sorry for late replay.

    The idea behind the selector is to switch from input ADC1 to ADC2 when the input signal is over 1V for example.

    The main reason for this is I only had success with the limiter to perform properly for up to 10V input signal, is to have for example 18K resistor at ADC2 input and 10K resistor at ADC1 (for example). resistor values for example only.

    So, I cannot feed the ADAU1701 10V at its input with 10K resistor at ADC2, it must be 18K, and If i use 18K 
    all the time, I will not get the input sensitivity i want.

    that the main idea, there is no solution not to overload the inputs without that INPUT switching idea.

    Any ideas how to solve that?

  • Hi Dave,

    I think that the (Index select able slewing mux) is the solution for me. And as it says in the help file

    (letting you ramp the source level up and down without any clicking noises when switching inputs.)

    Could you please provide a quick example for that to auto select between input A and input B based on specific threshold?

    Thanks