Post Go back to editing

USB communication failure on filter parameter-change

Category: Software
Product Number: ADAU1462
Software Version: 4.7

Hi!

I have a strange problem with my ADAU1462 based custom HW:

The situation is:

I'm well connected to the HW through USBi (SPI), .dspproj is "link compile download" and the connection status is "Active: Downloaded. DSP processing is ongoing and i can listen to the processed audio.

But when i now try to change the parameters of specific filter types (e.q bypass on<->off), the connection fails.

So far, i tested the following and found these to cause the issue:

- Filters->Second Order->Single/Double Precision->Clickless HW slew->All three filter types

- Single/Double Precision->Clickless SW slew->All types tested except ext. triggered types

No issue happens when using the following:

- Filters->Second Order->Single/Double Precision->No slew->All four filter types

Beside of filters, i'm using several other DSP processing blocks like gains (with and without SW slew), mute, polarity, switches, dynamic processors (limiter/compressor), delay. All of these cause no problems.

Does anybody have an idea how to resolve this issue, or how to further debug it?

BR

Matthias

Parents
  • Hello Matthias,

    I guess that this is an issue with the DLL of ADAU1462. This problem comes when it writes to the safe load addresses in DM1 (the Coeff of the filters with slew) in run time. The SS calculates the new Coeff for the slew- filters when you change the GUI controls, but I guess it fails to write to the DSP. However, when you do link compile download again with the new filter parameters then the filter works as it should. So, I don't think this is a communication problem between the USBi and the DSP.

    The ADAU1466 or ADAU1467 DLLs do not have this issue. So, Change the processor on the hardware config to the ADAU1466 and it should work fine. The only detail is that you will have to watch the memory usage in the Output Report to be certain you are not exceeding the memory in the part. The compiled code will be the same. 

    Just try picking any of these processors (ADAU1466/67) and run the same code. Then control the slew filters in run time if it changes the output then we can conclude that the issue is with the ADAU1462 DLL. I have also verified that here. So, keep me posted.

    Steps to switch the program from ADAU1462 to ADAU1466.

    Please save another copy of this project somewhere.

    1)  In the config window, drop in the new processor and attach it to the USBi GUI. It will probably enumerate as IC2. 

    2) Go to the schematic page and select all. 

    3) Right click anywhere on the schematic window and select "Change IC" and change it to IC2. 

    4) You will probably get an error message. Sometimes I find I have to delete and replace the input and output blocks from the IC2 section of the toolbox. 

    5) Go back to the config page and delete IC1. If all the objects were changed then it will let you delete it. If something was missed, then it will not let you delete it. 

    Regards,

    Harish

  • Hello Harish,

    I can confirm that with ADAU1466 in my SS project, the disconnection problem on changing a filter (with slew rate) is gone, thanks!

    Do you plan to fix the ADAU1462 DLL in a SS release?

    Unfortunately, i have a new problem now:

    You were right, i had to delete the inputs and outputs when i changed the IC. After dragging and dropping the inputs and outputs from the ADAU1466 lib into the schematics and connecting them to my blocks as with ADAU1462, i end up in a mess: The signals on the inputs seem to be differently routed from HW into DSP, and regarding outputs, the pins are also different (changed connections towards DAC)

    I had a look at the SERIAL_PORTS setting.

    For outputs, all settings are the same (at least for the serial output ports that i use).

    For inputs, i found some settings different, but when i take over the settings from ADAU1462 to ADAU1466, it does not work.

    Further help is appreciated!

    BR

    Matthias

  • Hello Matthias,

    I had a look at the SERIAL_PORTS setting.

    For outputs, all settings are the same (at least for the serial output ports that i use).

    The above-mentioned steps will only shift the entire schematic from one IC to another. For the hardware registers, you have to set it newly for the ADAU1466. 

    The signals on the inputs seem to be differently routed from HW into DSP, and regarding outputs, the pins are also different (changed connections towards DAC)

    For the serial input and output channels also, you have to set the respective channels again in the schematic. Only your entire processing blocks would remain the same as your old IC. 

    The signals on the inputs seem to be differently routed from HW into DSP

    Are you talking about the serial input port blocks in the schematic?

    For the input/output blocks and the hardware registers page, we have to take care of our own and set those again.

    Did I answer your question? If not, then please explain your issue a bit more. 

    Regards,

    Harish

  • Hi Harish,

    I had to revise the HW registers after changing from 1462 to 1466 (like you suggested). Now audio input- and output-routing are working fine again.

    Problem solved, but are you going to fix the ADAU1462 DLL in a SS release?

    BR

    Matthias

Reply Children