Hello Vignesh,
About your questions, I can reply:
1) Seed value depends on CRC standard that is used, by default, this register contains a 0xFFFFFFFF. You can modify this value by writing a 1 to CTRL[WAS] and then writing the new seed value to CRC_DATA and clearing CTRL[WAS].
2)Seed is the initial value needed for CRC algorithm and data value is the value to which CRC calculation will be applied.
3) CRC_GPOLY register specifies the polynomial used for CRC calculation, it also depends on standard that will be used.
4) Transponse in CRC is explained in more details in attached document due there are different transpose types.
5) CRC_CTRL[WAS] specifies if next data that will be written to CRC_DATA is in fact a seed value or data value.
6) Yes, you need to specifiy polynomial used in CRC calculation. There are standards that use different polynomial so this value is configurable.
7) CRC algorithm depends on seed value and polynomial used. In attached document you can find a table in which different CRC calculations are listed with their proper seed and polynomial value besides their transpose type.
8) You can look at these post where a little explanation in how this is calculated is given: http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4657.pdf and http://www.nxp.com/files/microcontrollers/doc/app_note/AN3795.pdf .
9) Same as 7.
I hope this can help you!
Best Regards,
Isaac
----------------------------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
----------------------------------------------------------------------------------------------------------------------------------------