ΣSigmaStudio Ask AI Русский Log in

use of GPIO as index input for 1701 vs 1452

SigmaDSP & SigmaStudio Raimonds Dec 14, 2018 00:00 2 replies Original on forum ↗
Subscribe
Raimonds Question
Dec 14, 2018 00:00

Hello,

I have successfully used GPIO input to feed the index input of MUX block for ADAU1452.

But there is different story with ADAU1701. The output format of GPIO block is not compatible with input format for the index input of MUX block.

What is "nice" way to change (convert) format in such case? There is no SHIFT block for 1701 as it is for 1452.

BR,

Raimonds

Audio Signal Processors

adau1452

SigmaDSP Audio Processors

adau1701

Raimonds Reply
Dec 14, 2018 00:00

Sorry for some trouble!

I found an answer in

KJBob on Dec 1, 2018 12:14 AM post that BUFFER GATE is good for this purpose.

DaveThib Reply
Dec 14, 2018 00:00

Hello Raimonds,

Glad you found a solution. I will just add a bit of explanation for you and others. We have two different categories of control input pins, those that take a real number in 5.23 format, (or 8.24 format for the 1452), and cells that take an unsigned integer format as an input. In the ADAU1452 the AUXADC output is an unsigned integer. So if you use it with a mux you only have to limit its value. If you use it with a real number input between 0 and 1 then you have to shift the 10 bits over to give you a top value that is just below a 1. The ADAU1452 has a hardware accelerator to do arithmetic shifts left and right so it is really quick and easy to do the shift.

In the ADAU1701, the AUXADC output is in a real format. The 8 bit output is already shifted over and goes between 0 and 1. Since this core does not have the hardware shift capability (you can multiply by 2^-8 but it takes MIPS) then what you have to do is use a table that is set to take in real values (fractional) and outputs integer values. It does this reasonably efficiently.

I am attaching an example to this post.

Thanks!

Dave T

ADAU1701 AUXADC Index Selectable Filter.zip