Thread: i2c output
View Single Post
  #15   Spotlight this post!  
Unread 15-01-2009, 13:59
jee7s jee7s is offline
Texan FIRSTer, ex-frc2789, ex-frc41
AKA: Jeffrey Erickson
FRC #6357
 
Join Date: Nov 2007
Rookie Year: 1997
Location: Dripping Springs, TX
Posts: 315
jee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond reputejee7s has a reputation beyond repute
Re: i2c output

I'm expecting a rules update on this one on Friday.

The problem with the way the rules are written is that while the I2C pins are technically digital IO, they are both an input and output for the hardware connected to it (like an I2C sensor). Therefore, I2C is permissable under <R67B> but not under <R66E>. However, under <R66G> the digital side car is an "approved electronic device" which would seem to allow it. That's why we asked the question.

As for a work around, it appears that I2C is interfaced through the FPGA, which makes sense since you need to asynchronously push data into registers to get it to work. On the old PIC18 based RC, tapping the right combination of pins on the relay outputs gave you access to I2C. So, I agree it seems kind of odd to not give us access to it this year.

Bitbanging the GPIO ports for I2C could prove problematic. However, have a look at WPILib\ChipObject\tSPI.h, which implements SPI. That allows channel selection. So, building around that may yet provide a serial interface bus that is within the rules. But, it also makes any notion of using LEGO NXT sensors (that's what the phone jack looking thing on the DSC is) impossible.

-Jeff Erickson, FRC 41