NUCLEO-H743ZI2 (?) ethernet (lwip) global up interferes with USB device?


Not sure this is indeed a bug, but I yet failed to find the source of the problem…

So I’m using a NUCLEO-H743ZI2 as USBMIDI device with ethernet connectivity:

  • the USBMIDI connect sequence is started when power on VBUS (PA_9) is detected.
  • the ethernet connect sequence runs in its own thread and on DHCP timeout sets an IPv4 local-link address and "connect()"s.

Both parts work perfectly fine by themselves (dynamic attachement: check) and from what I can tell, the logic from both runs completely separately.

Now, once the ethernet interface establishes a connection (ie status GLOBAL_UP) the USBMIDI device does not receive any more messages (“readable()” == false) although it remains “configured()”; while the eth if is still trying to connect there is no problem.

Furthermore, detaching and reattaching the usb host is detected (VBUS change) and “connect()” is called on the USBMIDI object but the USB device does not manage to configure (“configured()” remains false); upon the first reconnection attempt only, the “configured()” is true for a short moment (<1 sec).

The problem only arises, when the USBMIDI is connected at the same time the eth if is connected (global up); there is no problem when USBMIDI and ethernet are connected, disconnected and reconnected in any arbitrary order.

I also tried with an USBSerial, same problem.

I did not find any info this, didn’t see any configuration options that might be a solution and my mbed-os digging has not yet lead to any results… maybe I am overlooking something?