Search the Community
Showing results for tags 'USB'.
-
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 [1], 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 [2] 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 [1] http://opencores.org/project,usb11_phy_translation [2] http://opencores.org/project,usb1_funct