This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TAS2557: CRC8 calculation for programming validation

Part Number: TAS2557

We are trying to assure that some reset/interrupt behaviour we are seeing shortly after programming is not caused by a communications issue during programming. We are therefore trying to leverage the CRC facility found on the chip. But the documentation on how this is to be done is not in the datasheet. All it says is there is a CRC-8 for I2C comms, but doesn't say how it is generated.

Can someone please give me a succinct description of the algorithm to use (is it standard crc-8, for instance?), and exactly what values I need to feed into it as I write them to the device (reg addr + value, or just value, and whether this includes/exclude certain commands like book/page selection or certain regions - see comment below on YRAM) so that I can generate an expected result on the fly and read the register and ensure it matches so programming can be validated?
Background info / what I've tried:
We write using SPI, based on a list of I2C commands put out by the PurePath3 Console application.
I was hoping that the accompanying json file would have data and a matching checksum so I could test my crc computations before writing the code for talking to the target. In particular to verify what I asked above - i.e. is it address and value, or just value, and does it include book/page selection commands? and is it even a standard crc-8 polynomial I need to use?
Unfortunately all permutations I tried with extracting the programming commands and feeding them to a crc-8 calculator did not result in the values in the json file. I parsed the program block only, which has entries like  "pramChecksum" and "yramChecksum", but no result feeding in values or data + values, ignoring or not ignoring book/page selection resulted in a match on either of those checksums.
I also don't even know what yram is (not in the datasheet), but the Linux/Android drivers seem to need to have extensive knowledge of what books/pages a command deals with and hence what area it is in how it calculates its checksum.
Because we alter the configuration (the tool does not meet our configuration needs) before writing to the device, I expect there is no checksum in the json file I can simply take and use, but need to calculate it on the fly.
  • Hi, Yani,

    Our team will take a look at this and will answer as soon as possible.

    Best regards,
    Luis Fernando Rodríguez S.

  • Hi Yani,

    RAM is the memory space used when the smartamp is used in tuning mode (internal DSP enabled).
    It is recommended to use binary files exported from PPC3 using End System Integration panel, this mode is doing all necessary calculations and register accessing sequences.

    What are your use-case particularities that does not allow you to use PPC3?

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators