Skip to content

ESP32-S3 + ETH.h = w5500.mac: received frame was truncated #11754

@razvanphp

Description

@razvanphp

Board

esp32-s3-custom-board

Device Description

Custom built board, but it worked with older Ethernet library, this error happens since we switched to ETH.h (so Wiznet via SPI + iwIP)

Hardware Configuration

// W5500 Ethernet module settings
#define W5500_CS 11
#define W5500_RST 45
#define SPI_SCK 12
#define SPI_MISO 14
#define SPI_MOSI 13
#define SPI_FREQ 10000000

Version

v3.3.0

Type

Bug

IDE Name

VSCode

Operating System

Mac Ventura

Flash frequency

240

PSRAM enabled

no

Upload speed

115200

Description

We are using the latest version v3.3.0, and while the ETH works, we get this from time to time, without an apparent reason.

I know this is scarce information to reproduce, but can you please mention what other steps we could take to debug this further? For us, it happens with the Arduino_SPI Ethernet example, in combination with WiFi enabled in the same time.

00:18:55.295 > E (62027) w5500.mac: unexpected error 0x104
00:18:55.312 > E (62031) w5500.mac: emac_w5500_alloc_recv_buf(697): invalid frame length 10
00:18:55.312 > E (62038) w5500.mac: unexpected error 0x104
00:18:55.312 > E (62042) w5500.mac: emac_w5500_alloc_recv_buf(697): invalid frame length 10
00:18:55.327 > E (62048) w5500.mac: unexpected error 0x104
00:18:55.327 > E (62052) w5500.mac: emac_w5500_alloc_recv_buf(697): invalid frame length 10
00:18:55.327 > E (62059) w5500.mac: unexpected error 0x104
00:18:55.344 > E (62063) w5500.mac: emac_w5500_alloc_recv_buf(697): invalid frame length 10
00:18:55.344 > E (62070) w5500.mac: unexpected error 0x104
00:18:55.344 > E (62074) w5500.mac[ 62390][V][ETH.cpp:105] _onEthEvent(): eth0 Disconnected
00:18:55.360 > : received frame was truncated
00:18:55.360 > E (62084) w5500.mac: received frame was truncated
00:18:55.360 > E (62089) w5500.mac: received frame was truncated
00:18:55.360 > E (62093) w5500.mac: received frame was truncated
00:18:55.375 > E (62097) w5500.mac: received frame was truncated
00:18:55.375 > E (62102) w5500.mac: received frame was truncated
00:18:55.375 > E (62106) w5500.mac: received frame was truncated
00:18:55.392 > E (62111) w5500.mac: received frame was truncated
00:18:55.392 > E (62115) w5500.mac: received frame was truncated
00:18:55.392 > E (62120) w5500.mac: received frame was truncated
00:18:55.392 > E (62124) w5500.mac: received frame was truncated
00:18:55.408 > E (62128) w5500.mac: received frame was truncated
00:18:55.408 > E (62133) w5500.mac: received frame was truncated
00:18:55.408 > E (62137) w5500.mac: received frame was truncated
[...]
00:04:25.710 > E (251811) w5500.mac: emac_w5500_aE (251814) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
00:04:25.726 > E (251814) task_wdt:  - IDLE0 (CPU 0)
00:04:25.726 > E (251814) task_wdt: Tasks currently running:
00:04:25.726 > E (251814) task_wdt: CPU 0: wifi
00:04:25.726 > E (251814) task_wdt: CPU 1: w5500_tsk
00:04:25.742 > E (251814) task_wdt: Aborting.
00:04:25.742 > E (251814) task_wdt: Print CPU 0 (current core) backtrace
00:04:25.742 > 
00:04:25.791 > 
00:04:25.791 > 
00:04:25.791 > 
00:04:25.791 > Backtrace: 0x4211e4f5:0x3fcbd2c0 0x4211d939:0x3fcbd2e0 0x4214b2fa:0x3fcbd300 0x42149dfe:0x3fcbd330 0x421499a7:0x3fcbd370 0x42149a75:0x3fcbd390 0x4037ebc9:0x3fcbd3c0
  #0  0x4211e4f5 in mac_tx_set_plcp1 at ??:?
  #1  0x4211d939 in hal_mac_tx_set_ppdu at ??:?
  #2  0x4214b2fa in lmacSetTxFrame at ??:?
  #3  0x42149dfe in lmacTxFrame at ??:?
  #4  0x421499a7 in ppProcessTxQ at ??:?
  #5  0x42149a75 in ppTask at ??:?
  #6  0x4037ebc9 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

00:04:25.791 > 
00:04:25.791 > 
00:04:25.791 > 
00:04:28.870 > 
00:04:28.870 > ELF file SHA256: 83ebd3257
00:04:28.870 > 
00:04:28.870 > Rebooting...
00:04:28.870 > ���ESP-ROM:esp32s3-20210327

Sketch

Minimal code:
++
  SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
  SPI.setFrequency(SPI_FREQ);

  // Register the ETH event callback
  Network.onEvent(onEthEvent);

  bool began = ETH.begin(ETH_PHY_W5500, 1, W5500_CS, -1, W5500_RST, SPI);

Debug Message

Stack trace included already.

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions