Different sample rates

Hi, 

When I use SigmaStudio, I am always confusing about different sample rates in hardware and software configuration. Could you please help me figure out them?

Such as:

1. Software fs, 

2. Hardware configuration:

  I. Clock Generator

  II. Core Control - START PULSE

  III. Routing Matrix - Set the ASRC's output rate

  IV. Serial ports

I really want to know differences among them, and which module they effect or interact?

Thanks

Parents
  • 0
    •  Analog Employees 
    on Jun 14, 2021 2:06 PM

    Hi,

    Please refer the below explanation regarding different sample rate options available in the SigmaStudio.

    1) Software sample rate

    Choosing a different software sample rate will not change the sample rate the board operates at. It should match your hardware sample rate otherwise it may affect filter cutoff frequencies, tone frequencies, etc.,

    2 I) Clock Generator

    The clock generator tab will let you configure the clock or sampling rates at which your DSP going to operates with. Based on the values you are providing in the N and M registers, the clock generator will decide the frequencies.

    II) Start pulse

    The start pulse is basically an interrupt pulse that tells the DSP to start processing the next audio sample. This pulse can either come from a serial port (when the serial port indicates that new data is ready) or from the internal clock generator.

    III) Routing Matrix - Set the ASRC's output rate

    You can set the ASRC's output rate as Internal FS or DSP Core Rate or Use rate of Serial Out.

    The "Internal FS" options are coming from the clock generators that run directly from the PLL inside the chip. The DSP core can take its clock from one of those clock generators.

    However, it's also possible to have the DSP core be a slave to one of the serial ports.

    The "DSP Core Rate" signifies whatever clock you have configured (using a separate control register called the "Start Pulse select" register) to be the clock to the DSP.

    In any case, if you're sending data from the ASRC to the DSP, then you'll want to set the ASRC output rate to be the "DSP Core Rate" in order to guarantee synchronization.

    IV) Serial ports

    The sample rate that you are changing here will change the Serial Port's sampling rate. In your screenshot you are selecting FS (LRCLK master) and Clock generator 1. The default output of clock generator 1 48Khz (294.912 MHz ÷ 1024 × 1 ÷ 6 = 48 kHz) . Since you are selecting FS as sampling rate, the serial PORT LRCLK will be 48khz.

    If you are selecting sample rate as 2*FS the serial PORT LRCLK will be 96khz (2*48khz).

    Hope the above points will help you to understand about different sample rates. Also you can refer the below FAQ which might be helpful for you while changing the sample rate.

    FAQ: How do I change the sample rate of my SigmaStudio system?
    ez.analog.com/.../faq-how-do-i-change-the-sample-rate-of-my-sigmastudio-system

    Regards,
    Lalitha.S

Reply
  • 0
    •  Analog Employees 
    on Jun 14, 2021 2:06 PM

    Hi,

    Please refer the below explanation regarding different sample rate options available in the SigmaStudio.

    1) Software sample rate

    Choosing a different software sample rate will not change the sample rate the board operates at. It should match your hardware sample rate otherwise it may affect filter cutoff frequencies, tone frequencies, etc.,

    2 I) Clock Generator

    The clock generator tab will let you configure the clock or sampling rates at which your DSP going to operates with. Based on the values you are providing in the N and M registers, the clock generator will decide the frequencies.

    II) Start pulse

    The start pulse is basically an interrupt pulse that tells the DSP to start processing the next audio sample. This pulse can either come from a serial port (when the serial port indicates that new data is ready) or from the internal clock generator.

    III) Routing Matrix - Set the ASRC's output rate

    You can set the ASRC's output rate as Internal FS or DSP Core Rate or Use rate of Serial Out.

    The "Internal FS" options are coming from the clock generators that run directly from the PLL inside the chip. The DSP core can take its clock from one of those clock generators.

    However, it's also possible to have the DSP core be a slave to one of the serial ports.

    The "DSP Core Rate" signifies whatever clock you have configured (using a separate control register called the "Start Pulse select" register) to be the clock to the DSP.

    In any case, if you're sending data from the ASRC to the DSP, then you'll want to set the ASRC output rate to be the "DSP Core Rate" in order to guarantee synchronization.

    IV) Serial ports

    The sample rate that you are changing here will change the Serial Port's sampling rate. In your screenshot you are selecting FS (LRCLK master) and Clock generator 1. The default output of clock generator 1 48Khz (294.912 MHz ÷ 1024 × 1 ÷ 6 = 48 kHz) . Since you are selecting FS as sampling rate, the serial PORT LRCLK will be 48khz.

    If you are selecting sample rate as 2*FS the serial PORT LRCLK will be 96khz (2*48khz).

    Hope the above points will help you to understand about different sample rates. Also you can refer the below FAQ which might be helpful for you while changing the sample rate.

    FAQ: How do I change the sample rate of my SigmaStudio system?
    ez.analog.com/.../faq-how-do-i-change-the-sample-rate-of-my-sigmastudio-system

    Regards,
    Lalitha.S

Children
  • 0
    •  Analog Employees 
    on Jun 15, 2021 3:53 PM in reply to LalithaS

    Hello Hisnorth,

    Laliths.S's response is excellent. Great quick description. 

    I will only add that there are several sub-systems in the DSP. They all operate on their own for timing and data handling. So it is up to you to make sure they are all set to operate in a way that makes sense in your system. This setup is very flexible but it falls on you to set it up correctly. 

    Serial port sub systems: The serial ports are either masters or slaves and their job is to shift the data in or out  and either put the data in a memory location or pick it up from a memory location. It has no idea how often or when this data has been updated or if the data was ever read by anything.  All it does is clock it in or out and that is all set by the serial port clocking registers. The clocks can come from the internal clock generators or externally. 

    The Core subsystem: The core has its start pulse that starts the program running at the start of the frame. Then the program will pick up the data from the memory locations it is told to pick up the data from. Often these are the memory locations that the serial input ports deposit the data, but it could also be the memory location that an ASRC deposits its data. The core has no idea when or if this data is being changed. Then the core does all its calculations on the data and deposits the results into a memory location for the serial output ports to pick up. The ASRCs can also pick up this data as well. 

    ASRC Subsystem:

    The ASRCs will pick up data from where it is told to pick it up, either the serial input ports or the output of the core. The input clocks will be the clocks associated with the data source. There are no registers to chose that but I wish there was. 

    Then the ASRC needs to be told what rate to output the data. This is a register setting. This should be set to the rate of whatever is picking up the data. If it is the core then the core start pulse rate ( or the same clock that the start pulse is set to. ) If it is the serial output port then the rate of that port. 

    So if these subsystems are not set correctly then either samples are repeated or missed which will cause audible issues. The ASRC will put out DC if it has never been used after startup with no clocks applied because the memory location will have random data and if the core is picking this up then the data never changes,... DC is the result. 

    The setting in SigmaStudio is ONLY used by the compiler so it can properly calculate anything that requires a knowledge of time like filters, compressor time constants and oscillators and of course timers. SigmaStudio has no way of knowing what rate the DSP is actually running. That comes from the register settings. 

    One other point. Even if the registers are set to a certain sample rate, if you provide the DSP with a master clock that is not the correct frequency then it will not be running at the expected sample rate. So that is yet another variable that both SigmaStudio and the DSP cannot control. It is up to the designer to provide the part with the correct clocks then setup the part registers then set up SigmaStudio properly. 

    Lots of flexibility makes for a bit of work to make sure it is all setup properly. 

    Dave T