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

ADAU1701 negative fir coefficient values & ADAU1467 vs ADAU1701 comparison

SigmaDSP & SigmaStudio ChloeS Aug 22, 2024 00:00 1 replies Original on forum ↗
Subscribe
ChloeS Question
Aug 22, 2024 00:00

Hello!

I've been working to replace the DSP processor of a project that uses an ADAU1467 (using an evaluation board) to an ADAU1701 (I'm using a KABD 250 board that has an integrated amplifier). I've come across some complications.

In my project, I'm required to pass in negative fir coefficients. It seems like the ADAU1467 is able to read and write both positive and negative coefficients properly, but the ADAU1701 seems to write the negative coefficients subtracted from 32. For example, if I pass in -0.1, it will end up as 31.9. I've tried looking at the documentation on the ADAU 1701 and I don't believe it explicitly mentions this limitation. The only relevant information I read is that the 1701's parameter RAM is 32 bits wide and that the data format is twos complement meaning coefficients can be in a range of +16.0 bits and -16.0 bits. This makes me all the more confused. I'm wondering if there is a proper explanation for this case and also wondering for any ideas on how to adapt with this restriction.

I've also noticed some other characteristics that the 1701 has. I'm using a teensy 4.1 microcontroller to interface with the processors and am currently using Analog Device's sample teensy_microcontroller project. Compared with the 1467, when reading the values of the fir filter for 1701, it seems to be in reverse order? For example, I set the values of the FIR module to be [1, 0, 0, 0], the values read would be [0, 0, 0, 1]. The functions used to read and write these values are from the wiki.analog/resources. I've bypassed this problem by just reversing the order of which the coefficients and read and written, but I'm uncertain if this is the best way.

I'm very new to working with DSPs so help would be appreciated. Thanks!

Audio Signal Processors

hardware

adau1467

sigma studio 4.7

SigmaDSP Audio Processors

teensy microcontroller

kabd250

adau1701

Show More

DaveThib Reply
Aug 22, 2024 00:00

Hello ChloeS,

You are going from a spaceship to a propellor plane when it comes to DSP processing power! However, the KABD250 is a cool board. I have one right next to me!

The 1701 is a 28 bit core not a 32 bit core. Yes, the parameter RAM is 32 bits because RAM is byte based so we had to pad it to 32 bits but everything in this core is 28 bits and setup in a fixed point 5.23 format. So you will have to change how you are calculating the fixed point number and how you are writing it to the parameter RAM.

In the datasheet it does mention it:

The parameter RAM is 32 bits wide and occupies Address 0 to Address 1023. Each parameter is padded with four 0s before the MSB to extend the 28-bit word to a full 4-byte width. The parameter RAM is initialized to all 0s on power-up. The data format of the parameter RAM is twos complement, 5.23.

With a 5.23 number you are limited to a whole number of only four bits hence the +15.9999 to -16 limitation.

I do talk about this in my video about number formats. https://youtu.be/TcfLSveLONA

As far as reverse order, I do not recall that detail since I do not use FIR filters often on the 1701 due to limited instructions. Sounds like you have that figured out.

BYW, I deleted your duplicate post in case you got an email notification.

Dave T