запущен проект motor identification c терминалкой

This commit is contained in:
2026-06-05 12:15:36 +03:00
commit 177431f3d2
1383 changed files with 840275 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
# Binary Telemetry Transport
The firmware initializes two physical transports for the existing binary
telemetry packet:
- USB FS CDC ACM on PA11/PA12, clocked from HSI48.
- FDCAN1 classic CAN on PB8/PB9, default 500 kbit/s with an external CAN transceiver.
Modbus RTU on USART2 remains active as the control channel. This is intentional:
the host can always switch the telemetry mode back without reflashing.
## Modbus Selection Registers
Modbus protocol/register-map version is `7`.
| Address hex / dec | Field | Access | Purpose |
|---:|---|---|---|
| `0x001C` / `28` | `H028_control_host_protocol` | R/W | `0`=Modbus control only, `1`=binary telemetry output enabled |
| `0x001D` / `29` | `H029_control_binary_transport` | R/W | `0`=USB CDC, `1`=CAN/FDCAN1, `2`=USB CDC and CAN |
## USB CDC
USB is exposed as a CDC ACM serial stream. The stream does not guarantee message
boundaries, so the PC side should parse by the telemetry header:
- `magic`
- `payload_size`
- `sequence`
- `crc16`
## CAN/FDCAN
CAN carries the same binary packet split into classic 8-byte frames:
| Standard ID | Payload |
|---:|---|
| `0x5A0` | packet bytes `0..7` |
| `0x5A1` | packet bytes `8..15` |
| `0x5A2` | packet bytes `16..23` |
The base standard ID is controlled by `AD_CAN_TELEMETRY_STD_ID_BASE`, default
`0x5A0`. The receiver reconstructs the packet from sequential frame IDs and
uses the normal binary telemetry header to determine the full packet length.