alvieboy Posted February 27, 2016 Report Share Posted February 27, 2016 So, Back a while ago I ordered some USB wings to play with, with just an USB 1.1 transceiver (TUSB1106PWR). Easy to solder. Only supports 12Mbit though, but the advantage is you can fit everything on a 8-bit wing. Jack actually did a demo of the PCB as an example for the 3D brd Viewer a while ago (you can watch it here: ). Since the transceiver is not actually a PHY, I've used a PHY from Opencores , with only some small modifications so I could use 96MHz as clock instead of the usual 48/60MHz. This PHY presents a UTMI interface which allows me to switch to a hard PHY in the future with minimal modifications. I then needed a packet decoder of some sort. I used  also from Opencores, and translated it (the packet decoder only) to VHDL (original is Verilog). This helps decode the PID from USB packets and perform CRC checks. Still a lot to go though. I then wrote a packet engine, that understands all important USB transactions, implements endpoint buffers and endpoint configuration. This took me a while, and required me to understand almost all of USB1.1 (with exception of hub transfers). Learned a lot. This packet engine is tied to a wishbone interface that goes directly into a ZPUino slot, so it can be controlled. All upper layer (descriptors, data transfer, so on) are handed in software, as typical microcontrollers do. Right now it works! The device can be enumerated, in Windows and Linux, and things look promising for the next days:[1547151.706742] usb 2-1.5: new full-speed USB device number 74 using ehci-pci[1547151.801847] usb 2-1.5: New USB device found, idVendor=efbe, idProduct=adde[1547151.801853] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3[1547151.801856] usb 2-1.5: Product: USB Wing[1547151.801859] usb 2-1.5: Manufacturer: Alvie[1547151.801861] usb 2-1.5: SerialNumber: Rev 1.0[1547151.802582] cdc_acm 2-1.5:1.0: ttyACM0: USB ACM deviceStill needs a proper PID/VID though Another test was to present it as a CDC device, so we could use it as a serial port. Things are looking great too in that area, should be fully working tomorrow after some software changes. Lots of interrupts going on.I'll keep you posted Alvie  http://opencores.org/project,usb11_phy_translation http://opencores.org/project,usb1_funct Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.