Forum Discussion
Altera_Forum
Honored Contributor
17 years agoWell I haven't specifically done this with a Cyclone III development kit. But I've done several projects where USB was the primary communication between the host PC and the board. In those cases, I've used the EZ-USB series from Cypress so the actual implementation is slightly different but here are the steps.
1 - Define a simple packet protocol for transferring the kind of info you are interested in (register address, data, whatever). 2 - Develop a driver for the host PC. This part is kind of a pain unless you've done it before. FTDI I believe gives you a driver to start from. You could also consider using libUSB which is primarily used for Linux but has been ported to Windows. In my case we used the Windows bulksys driver as a starting point for Windows and wrote our own driver for Linux. 3 - Develop a driver for your embedded system. This is pretty easy as you're usually just reading/writing from/to FIFOs in the USB chip. You may have to do some initial endpoint configuration. 4 - Then you need to write your application code for both your embedded and host PC app. Most of my more recent designs use TCP/IP for communication which is easier to get up and running but incurs a high software overhead due to the stack. Not sure which kit you have but you may wish to consider using ethernet if you just want to get it running quickly. In which case you pretty much get to skip the step of writing a driver as you'll just use a socket interface. Jake