Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HammingDecode #8

Open
Olfox59 opened this issue Jun 11, 2022 · 0 comments
Open

HammingDecode #8

Olfox59 opened this issue Jun 11, 2022 · 0 comments

Comments

@Olfox59
Copy link

Olfox59 commented Jun 11, 2022

Hi,

I'm working on 90641 sensors and always get -10 from HammingDecode().
I read properly the 832 eeprom dta, i compared it with my melexis dev kit board. The dump from Melexis PC Software and my uC reading are exactly the same (tried several reading, each time the same).

I comapred datasheet and API files and i see differences in parity computation:

`from datahseet: /P0 = D0 + D1 + D3 + D4 + D6 + D8 + D10/
in original API files from git //parity[0] = D[0]^D[1]^D[3]^D[4]^D[6]^D[8]^D[10]^D[11];
what i tried without succes : parity[0] = D[0]^D[1]^D[3]^D[4]^D[6]^D[8]^D[10];

    /*P1 = D0 + D2 + D3 + D5 + D6 + D9 + D10*/
    //parity[1] = D[0]^D[2]^D[3]^D[5]^D[6]^D[9]^D[10]^D[12];

parity[1] = D[0]^D[2]^D[3]^D[5]^D[6]^D[9]^D[10];

   /* P2 = D1 + D2 + D3 + D7 + D8 + D9 + D10*/
    //parity[2] = D[1]^D[2]^D[3]^D[7]^D[8]^D[9]^D[10]^D[13];

parity[2] = D[1]^D[2]^D[3]^D[7]^D[8]^D[9]^D[10];

    /*P3 = D4 + D5 + D6 + D7 + D8 + D9 + D10*/
    //parity[3] = D[4]^D[5]^D[6]^D[7]^D[8]^D[9]^D[10]^D[14];

parity[3] = D[4]^D[5]^D[6]^D[7]^D[8]^D[9]^D[10];

    /*P4 = D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 + D10 + P0 + P1 + P2 + P3*/
    //parity[4] = D[0]^D[1]^D[2]^D[3]^D[4]^D[5]^D[6]^D[7]^D[8]^D[9]^D[10]^D[11]^D[12]^D[13]^D[14]^D[15];

parity[4] = D[0]^D[1]^D[2]^D[3]^D[4]^D[5]^D[6]^D[7]^D[8]^D[9]^D[10]^D[11]^D[12]^D[13]^D[14]^D[15];
`

If my eeprom dump is correct, and there is a mismatch with the datasheet, i wonder if this Hamming Decode function is implemented in the same way in PC software. It seems to be a mandatorry step to demodulate original eeprom content and to be able to use it for the next function so i really need to understand why there is this transmit error detected whereas the pc software doesn't complain with the same dump content.

But why my changes is not efficient enough to solve the issue? I join you my eeprom dump content read by melexis pc and mine uC in case you would like to try it:

Thank you !

dump content.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant