How does SigmaStudio convert the value of the ADAU1452 "_RTA_OUT_0" register into the right dB value?

My customer uses the ADAU1452->level detectors/lookup tables->level detectors->multiple bands->Pass Thru RTA or RTA to Output algorithms that available in sigmastudio to measure the signal level. When the 0dB signal is input, the sigmaStudio and USBi emulator get the value of the "_RTA_OUT_0" register as (0x1D,0xBA,0xxx,0xxx), according to 8.24 format conversion this meas 29.xxxxx, which obviously cannot be converted to the correct 0dB value. (If use single band->running average->single level detector, the output can be converted to the correct db value)

If read the register values of "biquad3LevelDetGrowS3001_rmshi_0" and "biquad3LevelDetGrowS3001_rmslo_0" and form a double-precision(56bits) number, this method calculates the same dB value as whitch displayed on the sigmastudio GUI.

However, we observed through oscilloscope that USBi could only obtain the value of "_RTA_OUT_0" register to convert it into dB value, but did not read the values of the above two registers. So how does SigmaStudio convert the value of the ADAU1452 "_RTA_OUT_0" register into the right dB value?

  • 0
    •  Analog Employees 
    on Aug 31, 2021 12:59 PM

    Hello teason,

    Let me investigate and get back to you. 

    Dave T

  • Hi Dave,

    Thanks for your reply. May I ask do you have any update about this question? Thanks.

  • 0
    •  Analog Employees 
    on Sep 21, 2021 4:16 PM in reply to teason

    Hello teason,

    Sorry for the delay. It took some work to track down some of the details. I looked at the code in the DSP and it looks like it is taking the dBvalue converting it to 10 * log instead of 20 * log and then adding it to 30. But it is doing a bit more so it is not like you only need to subtract 30. So this is why you see numbers like 28 and 27 for numbers. Then in SigmaStudio the code takes that number and does more calculations to send it to the graphics object for the position of the bar and the peak bar. The calculations are kind of strange and is to fit what the graphics object needs. 

    So my suggestion is to NOT use this value. Instead, use the RMSHI and RMSLO values right below it. These are the levels after the filter which is what you will need. You already know how to calculate the dB levels using the level value so ignore what SigmaStudio is doing and use the same methods as you do for the other meter objects. 

    This meter is one of the oldest in the library and was programmed kind of strange. 

    Dave T