Post Go back to editing

ADAV400 register dump using Sigmastudio

Hello,

I am working on a troublesome legacy design using ADAV400 audio DSP.

Can I get a register dump from the DSP without creating a project in Sigmastudio?

I hope to be able to boot from the existing host, then to switch I2C lines to USBi and try to read the registers of the DSP.

Does this idea make any sense?

Are there other ways to implement register dump without intervention from the existing host?

Thank you for your help!

  • There is currently no way to get a register dump from the DSP. Your best bet is to connect the USBi and manually read back register settings using the read/write window in SigmaStudio. Another option would be to "sniff" the SPI/I2C lines while the host is booting the device. An example of a sniffing tool is the Beagle from the company called Total Phase.

    We do not publish our op-codes so it would be very difficult for anybody to reverse engineer a project and see what is contained inside, even if they read back the entire program contents.

    However, as MagicRub mentions, it is possible to read back the initialization sequence using the "sniffing" technique. We're currently considering options for data encryption on the control port for future device designs.

  • I would be interested in hearing any discussion on this because this is the "easy" method to steal the code out of someone else's product. I am attempting to implement counter-measures for this sort of thing so no one can do it on mine. At least make the program disabled on startup so that some other external trigger non-SPI/I2C (MPx/ADC) enables audio output.

  • Dear BrettG,

    Thank you for the information.

    I recently purchased USBi tool; however, I can't link it to ADAV4x device in the Sigmastudio toolbox. It appears that USBi does not support ADAV400.

    I can link ADAV4x device to USBSerialConv tool symbol in the software; however, I can't find any information or even a part number for this devie. Is USBSerialConv still supported by AD and if so, where can I buy it? Is there a USBi driver or Sigmastudio patch that would allow USBi communicate with ADAV400.

    I am under impression that USBi is the only tool currently supported by AD (http://www.analog.com/en/embedded-processing-dsp/sigmadsp/adav400/products/evaluation-boardstools/sigmadsp_evaluation_boards/resources/fca.html).

    Regarding the amount and the type of information I need to get out from the existing design:

    We know exactly what we write to the device (I wanted to clarify this to MagicRuB). We have a confirmed issue with crosstalk of an analog channel onto an I2S one. I am new to this design (assigned to support the existing product) and am having difficulties finding information on the register set of the DSP. All I am trying to do is to verify that there is no problem with the mixer settings in our firmware.

    Quite frankly, there are plenty of more efficient ways to design a 4 channel cross-point switch other than ripping someone else's implementation that is based on a soon-to-be-EOL part. I wish I would have an option to design it from scratch.

    My challenge is not to sniff I2C to the device (I have the source code), but rather to find an unintentional write to the mixer settings.

    Thank you very much for your help!

  • I've been trying to figure out how to best deal with this predicament. The EVAL-ADUSB1 board is what we originally used to communicate with the ADAV400. Unfortunately, that board is not in production anymore. So, you're correct, the USBi is the only device we currently support. However, it looks like SigmaStudio does not currently have driver support for the USBi to talk to the ADAV400. Now we have a chicken-and-egg situation and I'm not sure how to fix it.

    So, just to be clear, you don't have an ADAV400 evaluation board, correct? That would mean by extension that you don't have the EVAL-ADUSB1 board.

  • BrettG,

    I don't have an ADAV400 aval board/EVAL-ADUSB1 tool available. I recently purchased USBi tool and hoped to be able to I2C to ADAV400 in my circuit.