Forum: Mikrocontroller und Digitale Elektronik Enhaced chacksum nach LIN 2.x


von Amir B. (sticky)


Lesenswert?

Hallo alle.
Ich versuche gerade eine LIN Kommunikation herzustellen.
der Master wird von einem Modul emuliert (Baby-LIN).
den Slave implementiere ich mit einem ATA6662 und einem ATMEGA168.

ich erhalte am Master eine CHECKSUM ERROR.

Kann mir jemand sagen wo oder ob ein Fehler in der Berechnung der 
Checksumme liegt.

Danke im Voraus:
1
for (uint8_t i=0; i<6; i++){
2
          TMPchecksum= (uint16_t) TMPchecksum + Daten[i];  //Checksumme berechnen (CARRY-BIT fehlt noch)!!!!!!!
3
          TMPchecksum  = (uint8_t) ((TMPchecksum & 0x00FF) + (TMPchecksum >> 8));  
4
          }          
5
          TMPchecksum = (uint16_t)TMPchecksum+PID;        //Enhanced Checksumme!  
6
          //Low-Byte der checksumme + High-Byte der checksumme
7
          checksum  = (uint8_t) ((TMPchecksum & 0x00FF) + (TMPchecksum >> 8));        
8
          checksum= ~checksum;        //Checksumme invertieren

Gruß Sticky

von Amir B. (sticky)


Lesenswert?

Es liegt kein Fehler vor! es funzt jetzt auch! Checksumme wird erkannt. 
Es lag ein Fehler bei der Einstellung der LDF für das BabyLIN Modul vor.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.