EmbeddedRelated.com
Forums
Memfault Beyond the Launch

FPGA communication, I2C and DAC

Started by redstripe February 28, 2006
I would like to use an FPGA for a motor control application. I have
worked with FPGAs before and am comfortable with what needs to be done
inside the FPGA, where I need some advice is how to interface the FPGA
with the outside world. At the end of the chain I need to generate an
analog command voltage (multiple channels actually). My initial idea
was to use a Cypress PSOC as the DAC and talk between the FPGA and PSOC
using the I2C protocol. I've used I2C between multiple PSOCs and have
had no problems, the question is how difficult it would be to implement
an I2C master in the FPGA (I'm looking at using an Altera Cyclone II).
Along those lines, I also would like to have communication between
multiple FPGA based motor controllers. Again, I was thinking I2C.

Does anyone see any major hangups or problems with this approach? Any
simpler implementation I am overlooking? What is the most common form
of digital communication used with an FPGA? How about interfacing to a
DAC?

Thanks
Jim

redstripe wrote:

> using the I2C protocol. I've used I2C between multiple PSOCs and have > had no problems, the question is how difficult it would be to implement > an I2C master in the FPGA (I'm looking at using an Altera Cyclone II). > Along those lines, I also would like to have communication between > multiple FPGA based motor controllers. Again, I was thinking I2C.
Here's one: http://www.opencores.org/projects.cgi/web/i2c/overview
> Does anyone see any major hangups or problems with this approach? Any > simpler implementation I am overlooking? What is the most common form > of digital communication used with an FPGA? How about interfacing to a > DAC?
You could use SPI, it's slightly simpler, and usually a lot faster. Note that both I2C and SPI are meant for short range (same board) communications. If you want longer range, you can use RS232, RS485, Can,... Do you have a good reason for not using a microcontroller instead of an FPGA ?

Memfault Beyond the Launch