Strona dokumentuje diagnostykę komunikacji w firmware triaka: logi błędów, analizy opóźnień, utraty ramek i rekomendacje dla UART, SPI i I²C. Firmware: v1.9.3-b.
/diagnostyka-komunikacji UART 115200 8N1 SPI @8 MHz I²C 400 kHz Aktualizacja: 2025-08-2400:00.012 SYS: boot v1.9.3-b
00:00.025 UART: init baud=115200; dma=on; fifo=2kB
00:02.318 WARN: uart_crc_err=3; retries=3; sync lost
00:02.320 UART: resend seq=12; ok
00:04.100 UART: rx_overrun=1; drop=64B
00:04.120 FAULT: uart_dma_stall; recov=restart DMA
00:04.126 UART: dma_restart=ok; pending=0; crc=000:00.015 SPI: init @8MHz; dma=on; mode=CPOL=0,CPHA=1 00:00.018 I2C: init @400kHz; retries=3; timeout=8ms 00:02.112 SPI: crc_err=1; retry ok; seq=24 00:02.208 I2C: nack=2; busy=1; recov=bus reset 00:02.212 I2C: retries=3/3 ok; timeout=3.2ms
$ comm get uart_baud=115200; uart_crc=0; dma=on; rx_drop=0 spi_crc=0; i2c_nack=0; retries=0 $ comm stats uart_crc=3; rx_overrun=1; spi_crc=1; i2c_nack=2; timeout=8ms $ comm set uart 230400 OK $ comm set retries 5 OK $ comm clear OK
uart_crc, rx_overrun i timeout.crc_err rośnie: obniż uart_baud lub zwiększ rozmiar fifo.rx_overrun > 0 → podnieś DMA FIFO, ustaw flow control.I²C nack > 0: aktywuj automatyczny bus-reset po timeout.crc_err: używaj DMA burst, skróć przewody i dodaj rezystory terminujące.| Parametr | Opis | Ostrzeżenie | Krytyczny | Akcja FW |
|---|---|---|---|---|
| uart_crc | Błędy CRC na ramkach UART | > 1 / 1000 ramek | > 5 / 1000 ramek | Auto↓baud, retry, sygnalizacja |
| rx_overrun | Bufor RX pełny | > 0 / 1k ramek | > 3 / 1k ramek | Powiększ FIFO, restart DMA |
| i2c_nack | Błędy potwierdzeń | > 2 / 100 ramek | > 5 / 100 ramek | Bus reset, ogranicz prędkość |
| spi_crc | Błędy sum kontrolnych SPI | > 1 / 1k ramek | > 5 / 1k ramek | Retry + korekta linii SPI |
| timeout | Brak odpowiedzi slave | > 5 ms | > 10 ms | Reset magistrali |
uart_crc ≤ 1/1000, spi_crc ≤ 1/1k, i2c_nack=0.rx_overrun=0, dma_stall=0, stabilne jitter_uart.