FPGARelated.com
Forums

I2C controller chipset to interface with FPGA

Started by Unknown December 7, 2005
Hi all,

I am needed to talk with a microcontroller through an I2C interface
from my FPGA. I dont want to write a code for it as well not use  an
opensource core. This is partly due to space constraints and testing.
Speed and cost are not constraints.
So I was hoping to find a chip which would sandwich between the FPGA
and I2C interface.
Searched on the net but could not find any. If anyone has suggestions
please let me know.

Thank you

regards
vasudev srinivasan

<svasus@gmail.com> schrieb im Newsbeitrag 
news:1133949644.536667.201480@z14g2000cwz.googlegroups.com...
> Hi all, > > I am needed to talk with a microcontroller through an I2C interface > from my FPGA. I dont want to write a code for it as well not use an > opensource core. This is partly due to space constraints and testing. > Speed and cost are not constraints. > So I was hoping to find a chip which would sandwich between the FPGA > and I2C interface. > Searched on the net but could not find any. If anyone has suggestions > please let me know. > > Thank you > > regards > vasudev srinivasan >
there is no such thing. most likely the overhead to talk to the external I2C controller chip is larger than implementing it in the FPGA if there is some softcore processor in the FPGA you may implement the I2C as software bit bang on GPIO port that consumes very little overhead or if you need external thing, take any small MCU and use it as custom I2C controller, C8051F305 is packaged in 3 by 3mm package and costs about 2USD, there are plenty of other possibilites as well Antti
"Antti Lukats" <antti@openchip.org> writes:

> <svasus@gmail.com> schrieb im Newsbeitrag > news:1133949644.536667.201480@z14g2000cwz.googlegroups.com... > > Hi all, > > > > I am needed to talk with a microcontroller through an I2C interface > > from my FPGA. I dont want to write a code for it as well not use an > > opensource core. This is partly due to space constraints and testing. > > Speed and cost are not constraints. > > So I was hoping to find a chip which would sandwich between the FPGA > > and I2C interface. > > Searched on the net but could not find any. If anyone has suggestions > > please let me know. > > > > Thank you > > > > regards > > vasudev srinivasan > > > > there is no such thing. >
How about these? http://www.standardics.philips.com/products/pca/i2ccontrollers/
> most likely the overhead to talk to the external I2C controller chip is > larger than implementing it in the FPGA >
But you may still be right there :-) Cheers, Martin -- martin.j.thompson@trw.com TRW Conekt - Consultancy in Engineering, Knowledge and Technology http://www.trw.com/conekt
svasus@gmail.com wrote:
> Hi all, > > I am needed to talk with a microcontroller through an I2C interface > from my FPGA. I dont want to write a code for it as well not use an > opensource core. This is partly due to space constraints and testing. > Speed and cost are not constraints. > So I was hoping to find a chip which would sandwich between the FPGA > and I2C interface. > Searched on the net but could not find any. If anyone has suggestions > please let me know.
Look at i2c BUS controllers from Philips http://www.semiconductors.philips.com/similar/PCF8584.html and the PCA9564 is a candidate. These take a parallel uC BUS and connect to i2c - so you will need to load some config registers, from the FPGA, but not many. This device goes to ~400KHz You could also look at any small uC that has separate SPI and i2c HW - eg Philips LPC916 in TSSOP16, or most Silabs C8051F3xx devices and are about the same price as the 9564- and you get ADC/DAC and proper buffering, for free... -jg
<svasus@gmail.com> wrote in message 
news:1133949644.536667.201480@z14g2000cwz.googlegroups.com...
> So I was hoping to find a chip which would sandwich between the FPGA > and I2C interface. > Searched on the net but could not find any.
That should tell you something then. Like nobody does it that way, for good reasons. There are some controller chips but you have to write code to use them. And if you can do that, you might just as well write the code to bit-bash the I2C interface. Come on, it isn't that hard to do.
Kryten wrote:
> <svasus@gmail.com> wrote in message > news:1133949644.536667.201480@z14g2000cwz.googlegroups.com... > >>So I was hoping to find a chip which would sandwich between the FPGA >>and I2C interface. >>Searched on the net but could not find any. > > > That should tell you something then. > > Like nobody does it that way, for good reasons. > > There are some controller chips but you have to write code to use them. > And if you can do that, you might just as well write the code to bit-bash > the I2C interface. Come on, it isn't that hard to do.
That depends - if you want to bit-bash, on a FPGA that infers a SoftCPU, and that is resource intensive. First, you need to have this CPU, then you need the time/code resource to service i2c. Also, i2c slave is non trivial, and the external chip does it already ( or, the OP might need 5V compliant i2c, not so easy on FPGAs ! ) Thus a parallel controller could be INIT and serviced with a simple statemachine, but I would favour a small uC as a SPI-i2c buffered bridge, as that can be smarter, and has less pin-cost ( but that does have another development cycle of its own) -jg
vasudev srinivasan wrote:
> I am needed to talk with a microcontroller through an I2C interface > from my FPGA. I dont want to write a code for it as well not use an > opensource core. This is partly due to space constraints and testing. > Speed and cost are not constraints. > So I was hoping to find a chip which would sandwich between the FPGA > and I2C interface.
Antti Lukats wrote:
> there is no such thing.
Certainly there is! Look for the Philips PCF8584 or PCA9564.
I2C is not particularly resource intensive, especially if only a subset 
of the full spec is used.  It can be incorporated in the FPGA fabric 
without a huge development effort, and with modern FPGAs is going to 
take but a small corner of the FPGA.  For the slave side, which it 
sounds like you are, the decode and data steering is probably bigger 
than the shift register and state machine.

"Eric Smith" <eric@brouhaha.com> schrieb im Newsbeitrag 
news:qhfyp45x0x.fsf@ruckus.brouhaha.com...
> vasudev srinivasan wrote: >> I am needed to talk with a microcontroller through an I2C interface >> from my FPGA. I dont want to write a code for it as well not use an >> opensource core. This is partly due to space constraints and testing. >> Speed and cost are not constraints. >> So I was hoping to find a chip which would sandwich between the FPGA >> and I2C interface. > > Antti Lukats wrote: >> there is no such thing. > > Certainly there is! Look for the Philips PCF8584 or PCA9564.
no there isnt - the overhead for interfacing external i2c controller is larger than the sw needed to implement the i2c in softwre only so from that point of view there is no easy solution that makes the fpga sides simpler. implementing i2c in fpga in hw or sw is simpler than interfacing PCFxxx pr PCAxxx so there is no easy sandwitch-chip Antti PS look at other posters they say the same thing I did.. and YES I do know the existance of the silicon you mentioned.
svasus@gmail.com writes:

> So I was hoping to find a chip which would sandwich between the FPGA > and I2C interface.
A second microcontroller :-) Connect the PIC 16FL87X to your FPGA and program the PIC to send data received on the RB port out on the I2C port or vice versa... Petter -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?