Das 8-Bit-CRC8-ATM-Polynom wird in vielen Embedded-Anwendungen verwendet, einschließlich Trinamic UART-gesteuerter Schrittmotor-Treiber wie dem TMC2209:
$$\text{CRC} = x^8 + x^2 + x^1 + x^0$$Der folgende Code bietet ein Beispiel, wie dieser CRC-Typ in Python berechnet wird:
crc8_atm.py
def compute_crc8_atm(datagram, initial_value=0):
crc = initial_value
# Bytes in Daten iterieren
for byte in datagram:
# Bits in Byte iterieren
for _ in range(0, 8):
if (crc >> 7) ^ (byte & 0x01):
crc = ((crc << 1) ^ 0x07) & 0xFF
else:
crc = (crc << 1) & 0xFF
# Zum nächsten Bit wechseln
byte = byte >> 1
return crcDieser Code wurde für den TMC2209 im Feld verifiziert.
Ähnliche Beiträge nach Kategorie:
Algorithmen Embedded MicroPython Python
Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen