infineon4engineers Facebook

infineon@google+ Google+

infineon@linkedin linkedin

infineon4engi@twitter twitter

infineon@youtube youtube

+ Reply to Thread
Results 1 to 7 of 7

Thread: TLE5012B. CRC calculation trouble.

  1. #1
    New Member New Member alek is on a distinguished road
    Join Date
    Aug 2018
    Posts
    3
    Points
    20

    TLE5012B. CRC calculation trouble.

    Hello! I am using TLE5012B via SSC interface (bit bang mode, not hardware spi, connection according to the datasheet). I write to sensor command 0x8012 (read angle value) and then i get two words (angle value + safety word). For example: command word: 0x8012, response words: 0xCDAC and 0x1F0B.
    My calculated CRC is 0xED. But the CRC part in safety word is 0x0B. I must note that angle value is CORRECT during the 360 degrees of magnet rotating. Tell me please what's the problem? P.S. In attachment you can see the example of transaction. Click image for larger version

Name:	OSC_TLE.jpg
Views:	1
Size:	168.0 KB
ID:	3595

  2. #2
    Intermediate Intermediate forix is on a distinguished road
    Join Date
    Feb 2012
    Location
    Munich
    Posts
    67
    Points
    318.125
    Please try one of the C-code samples provided in section "5.2.4 Cyclic Redundancy Check (CRC)" of the user's manual?

  3. #3
    New Member New Member alek is on a distinguished road
    Join Date
    Aug 2018
    Posts
    3
    Points
    20
    Thanks for request! I am using CRC calculaton from datasheet. I am also using two variants of CRC calculation (with table and without) so i get the similar results.

  4. #4
    New Member New Member alek is on a distinguished road
    Join Date
    Aug 2018
    Posts
    3
    Points
    20
    A need to note that somewhere in datasheet CRC calculation takes safety word too and somewhere to calculate CRC only need coomand word and response word (without safety word). Maybe i dont understand the algorithm..

  5. #5
    Beginner Beginner Hryu is on a distinguished road
    Join Date
    Jan 2019
    Posts
    3
    Points
    55
    Hello, I have the same problem.
    I am using the generating table from the datasheet and the algorithm from the section 5.2.4.
    I can also generate the right CRC for the example from that section: CRC for 0x5081, 0x0804 = 0x89.
    But I get the CRC error for the packets transmitted from the real device. And some more irritating points. If I try to calculate checksums with my (or yours algorithm) for the examples from the section 6.1.2 (figure 6-8), I get this values:
    0xd0e1, 0x4820 = 0xf4
    0x50e1, 0x4830 = 0x0d
    0xdoe1, 0x4830 = 0x38
    But from the sample example I see following CRCs: 0xf5, 0x63, 0x40.
    What am I doing wrong??? Has the datasheet wrong info??
    I have also noticed, that it is possible to get the right checksums for the examples if you calculate also the upper byte of the response word. But it contradicts the datasheet (see the beginning of the section 5.2.4)!
    And it also doesn't help with calculating the right checksum for the original post (0x8012, response words: 0xCDAC and 0x1F0B).
    This undefined behavior of the chip is really annoying.
    Last edited by Hryu; Jan 25th, 2019 at 05:44 AM.

  6. #6
    Intermediate Intermediate forix is on a distinguished road
    Join Date
    Feb 2012
    Location
    Munich
    Posts
    67
    Points
    318.125
    There is a library source code for Arduino available on github supporting TLE5012B. Check the source code here.

  7. #7
    Beginner Beginner Hryu is on a distinguished road
    Join Date
    Jan 2019
    Posts
    3
    Points
    55
    Quote Originally Posted by forix View Post
    There is a library source code for Arduino available on github supporting TLE5012B. Check the source code here.
    Thank you, but I have already compared Infineon source codes with mine. I don't see any differences. But I have found the right sequence. The first example from the datasheet is right, but the communication examples are completely wrong.

+ Reply to Thread
Disclaimer

All content and materials on this site are provided “as is“. Infineon makes no warranties or representations with regard to this content and these materials of any kind, whether express or implied, including without limitation, warranties or representations of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, whether express or implied, is granted by Infineon. Use of the information on this site may require a license from a third party, or a license from Infineon.


Infineon accepts no liability for the content and materials on this site being accurate, complete or up- to-date or for the contents of external links. Infineon distances itself expressly from the contents of the linked pages, over the structure of which Infineon has no control.


Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Usage Terms of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Usage Terms of this site. Infineon reserves the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.