Hello,

I'd like to implement a Passthru Level detector and read the values from my uController.

with Sigmastudio I generated the CODEC_PARAM.H where I find the following defines

/* Module LEVELCH1 - Single Level Detector*/

#define MOD_LEVELCH1_COUNT 4

#define MOD_LEVELCH1_DEVICE "CODEC"

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001TCONST_ADDR 191

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001TCONST_FIXPT 0x00004EB0

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001TCONST_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172)

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001TCONST_TYPE SIGMASTUDIOTYPE_FIXPOINT

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001HOLD_ADDR 192

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001HOLD_FIXPT 0x000001E0

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001HOLD_VALUE SIGMASTUDIOTYPE_INTEGER_CONVERT(480)

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001HOLD_TYPE SIGMASTUDIOTYPE_INTEGER

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001DECAY_ADDR 193

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001DECAY_FIXPT 0x0000071C

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001DECAY_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889)

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001DECAY_TYPE SIGMASTUDIOTYPE_FIXPOINT

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001_ADDR 194

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001_VALUE SIGMASTUDIOTYPE_10_18_CONVERT(0)

#define MOD_LEVELCH1_ALG0_SINBANLEVDETS2001_TYPE SIGMASTUDIOTYPE_10_18

What is the address that I have to read ?

That is actually a hardware limitation of the ADAU1701, which only has 24 bits in its read-back register.

Since you're using the ADAU1761, which does not have this limitation, you can read back the full 28 bits.

A more detailed description is here:

What are the number formats for SigmaDSP?