Post Go back to editing

ADAU1462 data memory size

Hello,

According to the datasheet for the ADAU1462, the data memory size is 48kWords.

However, according to the compiler output window in Sigma Studio 3.17:

ADAU1452 - DM0: 20480, DM1:20480, PM: 8192 (OK)

ADAU1462 - DM0: 20480, DM1:20480, PM: 16384 (DM same as ADAU1452)

ADAU1466 - DM0: 40960, DM1:40960, PM: 24576 (OK)

According to the resources window, the ADAU1462 MaxProgramMemory is 24576 (this also seems to be an error).

We will be using the ADAU1462 in such a way that the DM requirements will be a bit greater than the capacity of the ADAU1452 (large FIR filters). I haven't actually tried compiling a program for the ADAU1462 that uses more DM than the ADAU1452 has but I am afraid that the compiler will give me an error when I do try it.

Is the datasheet correct?

Thank you.

 

  • Hi,

    I have the same issue using Sigma Studio 3.17.

    I've tried to use the full 24k DM0 and DM1 memory but get a compiler error because only 20k are assigned.

    The compiler output also tells me that only 20k are available.

    Also I'm wondering when the compiler will use the PM Data RAM area because in my design there are zero locations used.

    Regards

    Christian

  • ChristianH wrote:

    Also I'm wondering when the compiler will use the PM Data RAM area because in my design there are zero locations used.

    I don't think it ever does. SigmaStudio is just being a bit confusing here: it is trying to say that 0 words of Program Memory (PM) are being used as data RAM. This is because PM is normally only used for code, and using it for data would incur a serious performance penalty (e.g. a FIR normally takes only 1 cycle per 4 terms, while putting either the buffer or the coeffs in PM would probably slow that to 5 cycles per 4 terms I think.)

  • Hi,

    it's obvious that a FIR filter performance would suffer here quite much.

    But I think of using it as (large) delay memory where I have only 1 additional cycle per delay.

    8k would be more than 50 meters of delay.

    Regards

    Christian

  • 2 cycles (one for writing the value, one for reading), but you're right, using PM as delay memory should probably be okay unless there are more constraints on its use I'm not aware of. If sigmastudio currently doesn't support it, maybe you can request it as feature.

    Keep in mind you obviously wouldn't have the full 8K words available, since your program is stored in PM as well.

  • Hi,

    you're right, 2 cycles of course.

    Concerning 8k I was thinking on the memory map of the ADAU1462 which has 2 pages PM RAM and each one is 8k.

    So I think one page could easily be used for that becuase my program code is not that large - currently I'm using 1500 memory locations (1000 instructions) and maybe another 1500 may be added for the whole project.

    Regards

    Christian

  • Ah right, ADAU1462. The "pages" actually only exist for the SPI/I²C slave interface, from the DSP's perspective PM is 16Kwords contiguous (and likewise each DM is 24Kwords contiguous). See figure 26 on page 37 of the datasheet.

    For these new devices it would definitely be attractive to be able to use PM as delay memory, since if you're not using block processing (or a very low sample rate) you're almost certain to run out of cpu cycles long before you run out of program memory.

  • Hi,

    I think the internal memory is also organized in pages or blocks like other DSPs also do.

    It would be nice if the large PM RAM could be used for delays in the future if not possible up to now.

    If possible now an answer on how would be nice.

    And I'm still missing an answer on the compiler issue (assigns only 20k of 24k on ADAU1462).

    Regards

    Christian

  • It is disheartening to learn that there seems to be no way to report issues such as this.

    Without any solution, the 1462 is the functional equivalent of the 1452 for our application even though we are paying more for it.