Main Site Documentation

I2C Pin assignment in .NetMF I2CDevice class?


#1

Where is the pin assignment for the I2CDevice? It appears to assume the I2C will be on some statically assigned pins, but I have not found a spec that tells what it is or how to change it.

On the Panda, I2C is on Di2 and Di3 and the I2CDevice works fine. Does the .NetMF require that I2C devices always sit on those pins? I can’t imagine that it does. Where do I need to look for the answer? Thanks.


#2

I2C pins are expected to be on the same pins, doesn’t have to match FEZ but static pins


#3

So,Gus, does that mean that the pin assignment is part of the SDK or the .NetMF porting package? Or what? I have a sensor shield that puits the I2C pins in a different place - probably based on an Arduino pin out or something. Can you give any more details about how this works? Thanks a lot.


#4

I suspect that I2C is limited to pins of the CPU that actually has I2C hardware. I think the CPU has 2 or 3 I2C ports, but only one is supported…

Maybe selecting which of the 3 ports you want to use can be advantageous. :slight_smile:

Thanks,
Errol


#5

You can still use your shield by implementing I2C in software. Are you up for the challenge? It iwll be slow but depending on what you are doing, it may not be an issue.

What is the shield you are trying to use as I haven’t seen any that uses I2C yet?

I did write a software I2C in NETMF before fro a customer but I have no idea where I put the code :D. There was no fezzer website back then lol


#6

The shield I am using is a Sensor shield from SeeedStudio. It doesn’t actually USE I2C, it just has a 4 pin connector for I2C. I was trying to use it for my I/O connections but it is wired to the wrong pins. No big deal. I have done I2C in software before, but I would rather rework the wiring and use a fast hardware peripheral. Thanks a lot for the info.