2019-11-20 10:45 AM
I'm busy with a USB to Ethernet implementation using the ST USB library and LwIP.
When I send a packet to the host (Data IN) that came from the ethernet interface, I know where is the end of an ethernet frame send a zero length packet (ZLP) accordingly.
But how do I know when it is the end of a USB packet from the host (Data OUT)? So that I can send an entire frame to the ethernet?
Solved! Go to Solution.
2019-11-25 10:25 PM
Actually, the logic is the same as the IN transfers. A transfer is considered to be complete if one of these two conditions are detected:
2019-11-20 11:02 AM
Which driver runs on the host? A "standard" CDC EEM Ethernet type? (usbnet.sys on Windows 10) or custom?
-- pa
2019-11-20 11:16 AM
Well, I'm implementing CDC ECM and windows does not have a driver for this. Unless you know of one that I can modify.
So I'm testing on an Ubtuntu VM. Still CDC ECM.
Ubuntu detects the network connection and I can ping the STM32. I've also implemented a DHCP and DNS on the STM32 but I can't get Ubuntu to get an IP from the DHCP so for now I'm giving it a static IP until the ethernet is working properly.
I chose CDC ECM because I actually want to interface the USB to iOS and Android. Apple detects the ethernet connection but I think my Android phone (Samsung) kernel version is too old or the USB implementation is not perfect.
2019-11-24 08:16 AM
Anybody?
2019-11-24 12:43 PM
Windows has in-box RNDIS driver. I don't know which model works everywhere. Try to ask on Stack Overflow.
-- pa
2019-11-25 10:25 PM
Actually, the logic is the same as the IN transfers. A transfer is considered to be complete if one of these two conditions are detected:
2019-11-27 08:17 AM
This example uses CDC-NCM interface: https://github.com/IntergatedCircuits/IPoverUSB