Hallo an alle.
Seit ein paar Tagen versuche ich Mezon ESC Telemetrie daten über EX Bus ausleasen und dekodieren. Ich kontrolliere ESC rpm über Kanal 1 und dass funktioniert ohne Probleme.
Baud ist 125000bps, 8N1
Platforme ist standard STM32 uC...
Kanal Info frame, dass ich sende:
3E 01 28 13 31 20 80 25 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F CA 85
Telemetrie auslese versuch.
Ich sende:
3E 03 28 13 31 20 80 25 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 40 1F 65 F9 3D 01 08 13 3A 00 B0 3D
Mezon ESC antwortet mit:
3B 01 21 13 3A 19 AF 57 35 95 BB 55 47 3B D0 34 7A 23 78 50 B3 23 5C 65 42 2A D4 19 57 2A E1 75 CB
Dekodierung versuch (EX Bus protokol v1.21 EN.pdf und JETI_Telem_protocol_EN_V1.07.pdf):
· 3B 01 - Header
· 21 - Packet LEN (0x21 = 33 bytes)
· 13 - Packet ID
· 3A - Telemetry packet
· 19 - Payload LEN (0x19 = 25 bytes)
PAYLOAD
· AF - Distinct identification of an EX packet, N could be any number
· 57 - 2b = Packet type; 0 - Text protocol, 1 – Data protocol, 2 – Message protocol => 0x40: Data protocol
6b = Length of a packet (number of bytes following) => 0x17: 23 bytes
· 35 95 - Upper part of a serial number, Manufacturer ID (0x9535 = 38197)
· BB 55 - The lower part of a serial number, Device ID (0x55BB = 21947)
· 47 – Reserved (
· 3B - 4b = Identifier of telemetry value (0-15) => 0x03: 3
4b = Data type of telemetry value (0-15) => 0x0B: 11 (int30_t)
· D0 34 7A 23 - 4 byte Data (as per int30_t)
· 78 - 4b = Identifier of telemetry value (0-15) => 0x07: 7
4b = Data type of telemetry value (0-15) => 0x08: 8 (int30_t)
· 50 B3 23 5C - 4 byte Data (as per int30_t)
· 65 - 4b = Identifier of telemetry value (0-15) => 0x06: 6
4b = Data type of telemetry value (0-15) => 0x05: 5 (int22_t)
· 42 2A D4 - 3 byte Data (as per int22_t)
· 19 - 4b = Identifier of telemetry value (0-15) => 0x01: 1
4b = Data type of telemetry value (0-15) => 0x05: 9 (int30_t)
· 57 2A ??? missing two bytes - according to int30_t type!
· E1 - 8 bit CRC = OK!
END OF PAYLOAD
· 75 CB - 16-bit CRC = OK!
CRC16 und CRC8 sind korrekt und ohne Probleme die ganze Zeit.
Was könnte hier das Problem sein?
Warum scheinen den Daten für den letzten Telemetriewert (19 – int30_t) zwei Byte zu fehlen?
Für Einsichten oder Hinweise wäre ich sehr dankbar.
Gruss,
Ben