Post Go back to editing

Adau 1701 fixed delay with changing master clock

Category: Software
Product Number: ADAU1701

I have an ADAU1701 running in target mode on an i2s channel. But a fixed delay (of a set amount of ms) is needed between two analog outputs. I am under the impression that when the delay block is set to ms instead of samples sigma studio will translate the amount of ms to samples when writing the EPROM, is that correct? How would I go around this problem?

  • Hello Dikkie,

    I am not sure what you mean by Target Mode, I think you mean as a slave for I2S and Master clock. Then you will be changing the sampling rate by changing the clocks going to the part, is that correct?

    So Yes, the delay settings are always X number of samples. The SigmaStudio GUI saves you from calculating the number of samples for Xms amount of delay by letting you enter the value in milliseconds. Then it uses the Sample rate setting on the top of the SigmaStudio window to calculate the number of samples and that is what it stores in the DSP. 

    So if you want to change sample rates yet keep the delay the same. ( I can understand that for a 2-way crossover this would be important!) So you have to somehow change the setting. I assume you are only selfbooting and do not have a system controller that could easily change the delay setting. 

    If you have instructions available and memory, you could create two delays, one set for one rate and the other for the other rate. But, a better way would have two delays in series, one set to the shortest delay and the other set to the small amount of additional delay needed for the faster rate. So then you bypass the second delay using a GPIO controlled switch. You will have to somehow switch this based on the rate you are using. 

    There is no easy way for the DSP to know what rate it is running at. The ADAU1452 devices have a way to do that using the sample rate converters only as a way to monitor the rate. But that processor is a huge jump from what you are using. 

    Since I know nothing of your actual applications or system details it is difficult for me to suggest a solution. Somehow, you need to send a signal to the DSP to let it know what rate the system is running at. 

    I also just thought of another way. We do have other delay blocks that use an external input to set the delay time. You still have to somehow let it know what delay setting is needed. If you use a DC cell to set the delay time then use a system controller to change the DC cell may use fewer MIPS than the two delays in series and a bypass switch. 

    So these are my first thoughts. There may be other choices. 

    Dave T