I need some advice:

  • i want to connect an altera FPGA to a computer by USB interface.
  • i want to avoid placing an microcontroller in my board..
  • i want to set a nios II to "talk" to the computer
  • i only need the fpga/nios to act as slave, never as host
  • the interface chip , should be inexpensive , low pincount & simple.

i know there is demo board terrasic D2-11 with ISP1362 or CY7C67200 , but this chips are as expensive as using an real stand alone microcontroller.

would it be a good idea to use a USB to spi/uart transceiver , in order to interface my NIOS to a PC?

any chip/topology recommendations?

thanks for the advice...

  • \$\begingroup\$ Other than looking for a USB implementation in VHDL? \$\endgroup\$ – Ignacio Vazquez-Abrams Sep 14 '15 at 6:56
  • \$\begingroup\$ "would it be a good idea to ..." It would be my first choice, but how can we evaluate your options when you gave us no criteria? Maybe you need more bandwith? \$\endgroup\$ – Wouter van Ooijen Sep 14 '15 at 7:08
  • \$\begingroup\$ Well, depending on what you want to do and if it is a hobby project or is something you work on professionally, you have to understand how much wor it is to implment a USB core inside a rather small FPGA, plus the amount of effort to implement the firmware and driver logic for it compare to buying a small USB-to-UART device that doesn't cost more than a $1 or $2. \$\endgroup\$ – FarhadA Sep 14 '15 at 11:43

I would recommend either a USB UART chip or a USB FIFO chip. The USB UART chip will use 2 I/O pins, unless you want to add flow control on top of that. There are quite a few good USB to serial options out there. USB FIFO chips require a few more pins, generally 12 pins for 8 data and 4 flow control, but they have some advantages compared to USB UART chips. First, there is no mucking around with the baud rate. Second, they can run at a much higher speed - for example, the FT2232 is rated at 8 MBps / 64 Mbps. The FT245 is a decent solution for a USB FIFO chip, though there may be others. The FT2232 will also work, but requires a small external EEPROM so it comes up in FIFO mode. The FT2232 also has the advantage that it can speak JTAG, so you can use a one-chip solution for both communication as well as configuration of the FPGA via JTAG.

| improve this answer | |
  • \$\begingroup\$ Hello Alex , its been a while , but i think you are quite right , this is the good way to go... what do you think about the FT245 ?? can i switch FT2232 by FT245 ?? \$\endgroup\$ – Cristian Mardones Nov 21 '16 at 8:55
  • \$\begingroup\$ The advantage of the FT2232 is that you can use it to load a configuration on to the FPGA via JTAG without any additional hardware. If you don't need that, then using the simpler FT245 is a better idea. \$\endgroup\$ – alex.forencich Nov 21 '16 at 9:27
  • \$\begingroup\$ Yes i get it !!! can you recommend some hardware for this? what do you use? is the FPGA side very complicated? can the fpga control the dataflow ?? can FPGA warn the software something went wrong (irq) ? \$\endgroup\$ – Cristian Mardones Nov 21 '16 at 9:29
  • \$\begingroup\$ Hardware for what? \$\endgroup\$ – alex.forencich Nov 21 '16 at 9:30
  • \$\begingroup\$ like an evaluation board \$\endgroup\$ – Cristian Mardones Nov 21 '16 at 9:33

Implementing USB on an FPGA is painful and very often not worth the effort. You'll probably do well to use one of the really common FTDI chips that do USB to RS232 conversion and then implement RS232 support on the FPGA, which is a lot easier. FTDI also has pretty decent driver support for windows and linux.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.