Go to Post Keep your chin up, your safety glasses on, and don't let the magic smoke out of the electrical components and you'll do just fine :) - rsegrest [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 25-04-2009, 01:44
Steve_Alaniz Steve_Alaniz is offline
Registered User
FRC #2848 (All Sparks)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 1997
Location: Dallas
Posts: 211
Steve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond repute
anyone else use the I2C bus?

Hi All
I actually have a question. We figured out how to use the I2C bus and used a Devantech Electronic compass to give us feedback from the robot for positioning information. We thought about also using a Devantech ultrasonic detector on the same I2C bus but for some reason, we were only able to read one sensor at a time and the commands for the second sensor read were ignored. We asked the NI guy at nationals and he essentially said that "we didn't expect anyone to use this" so we never got an answer as to why we couldn't read multiple devices over the I2Cbus.

So two questions:
1) Did you use the I2C Bus? (Brag a little! I'd love to hear what you did.)
2) Were you able to read two or more devices?

Steve
  #2   Spotlight this post!  
Unread 25-04-2009, 02:36
davidfv davidfv is offline
Registered User
FRC #0399 (Eagle Robotics)
Team Role: Tactician
 
Join Date: Jan 2006
Rookie Year: 2004
Location: Lancaster, CA
Posts: 133
davidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant futuredavidfv has a brilliant future
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Steve_Alaniz View Post
We asked the NI guy at nationals and he essentially said that "we didn't expect anyone to use this" so we never got an answer as to why we couldn't read multiple devices over the I2Cbus
I guess the NI guys never met a bunch of FIRST robotics programmers. You give them data inputs, they will try to use them! Steve great job at trying to use the system to it's fullest. I will ask my programmers what they tried to do, I do not have the answer. I just hope that the NI will not underestimate the students in the future. They should know, "If it is there, someone will try to use it"

Great Job!
__________________
Davidfv
Mentor/Drive Coach
  #3   Spotlight this post!  
Unread 25-04-2009, 07:23
Dave Flowerday Dave Flowerday is offline
Software Engineer
VRC #0111 (Wildstang)
Team Role: Engineer
 
Join Date: Feb 2002
Rookie Year: 1995
Location: North Barrington, IL
Posts: 1,366
Dave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond repute
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Steve_Alaniz View Post
So two questions:
1) Did you use the I2C Bus? (Brag a little! I'd love to hear what you did.)
2) Were you able to read two or more devices?
Yes, we used I2C with 4 different devices. They are custom-developed modules for our crab drive wheels that each measure the speed of 2 wheels (1 driven and one idler wheel). We have 4 modules installed and 4 backups, and each has a unique I2C address. On startup, our robot checks to see which modules are on the I2C bus. If it matches the list of 4 that it knew about from last time (saved in a file on the flash disk), then it continues normally. If the list is different, it shuts down our traction control and requires the user to run a calibration routine (which drives each wheel motor individually to determine which sensor address is connected to each wheel).

The only issues we had with this were:
1) The I2C driver in WPIlib forces you to use a certain I2C "protocol" where the register address is always sent and then you can read or write up to 4 bytes. I would have preferred if it didn't impose this register address protocol on us (there's no reason in our application that we couldn't have issued a read without first writing a register address). This wouldn't impact you though since the Devantech sensors appear to use this fairly-standard protocol.

2) The I2C pullups in the digital sidecar were not sufficient to overcome the electronic noise on the robot. The sidecar uses the recommended value (3.6Kohm if I remember correctly). When we first tried our setup with those default values, we were getting corrupted readings a large percentage of the time (or the sensor wouldn't hear its own address because that was corrupted and it would simply not respond). We added an external 1Kohm parallel resistor to our SDA and SCL lines to increase the drive current (after checking the datahseets for the parts used inside the sidecar to make sure this wouldn't cause any issues) and that almost eliminated the problem. After that, once every few seconds we'd get a bad reading but mostly it was fine. It's possible this could have been your problem, but I'd have to hear more about what exactly happened when you hooked up both sensors to know for sure.

Anyway, long story short, yes it was possible for us to read multiple sensors on the I2C bus. Attached is an image of one of our crab drive modules showing the custom sensor board we built.
Attached Thumbnails
Click image for larger version

Name:	photo.jpg
Views:	237
Size:	135.0 KB
ID:	7887  
  #4   Spotlight this post!  
Unread 25-04-2009, 10:57
MattD's Avatar
MattD MattD is offline
Registered User
AKA: Matthew Douglas
FRC #0228 (GUS Robotics)
Team Role: Alumni
 
Join Date: Feb 2006
Rookie Year: 2005
Location: Indianapolis, IN
Posts: 185
MattD is a splendid one to beholdMattD is a splendid one to beholdMattD is a splendid one to beholdMattD is a splendid one to beholdMattD is a splendid one to beholdMattD is a splendid one to beholdMattD is a splendid one to behold
Send a message via AIM to MattD
Re: anyone else use the I2C bus?

We used the I2C bus for our LCD menu system. Our display was purchased from New Haven Display. This was the only device we attempted to use.

Quote:
Originally Posted by Dave Flowerday View Post
1) The I2C driver in WPIlib forces you to use a certain I2C "protocol" where the register address is always sent and then you can read or write up to 4 bytes. I would have preferred if it didn't impose this register address protocol on us (there's no reason in our application that we couldn't have issued a read without first writing a register address). This wouldn't impact you though since the Devantech sensors appear to use this fairly-standard protocol.
We had a rather difficult time with this as well. From what I noticed, we could only send a register address and one byte of data. The LCD we used doesn't follow this scheme, but we were lucky in that every command starts with a 0xFE byte followed by another byte to identify the command. We just used 0xFE as the register address, so it looked like this:

Code:
...
	static const UINT8 kCommandPrefix = 0xFE;
...

/**
 * Send a command (without any parameters) to the LCD.
 * 
 * @param command The command to send.
 */
void LCD::SendCommand(UINT8 command)
{
	m_i2c->Write(kCommandPrefix, command);
}

From there on, we could only send a limited amount of commands (only those that did not require any parameters). Rather than asking the LCD to move the cursor to a specific location we had to keep sending move right/left commands. Also, text could only be written 2 characters at a time.

In the end, it did work, but it's kind of sloppy. I'm hoping that the I2C driver will become a little more flexible in the future.
__________________
GUS Robotics Team 228

2010 WPI Engineering Inspiration Award
2010 WPI Regional Champions (Thanks 230 & 20!)
2010 CT VEX Champions
2010 CT VEX Innovate Award
2009 QCC VEX Champions
2009 CT Motorola Quality Award
2007 CT J&J Sportsmanship Award
2006 CT Best Website Award
  #5   Spotlight this post!  
Unread 25-04-2009, 13:14
crake crake is offline
National Instruments
AKA: Chris Rake
no team (Athena)
Team Role: Engineer
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 185
crake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond repute
Re: anyone else use the I2C bus?

Quote:
Originally Posted by davidfv View Post
I guess the NI guys never met a bunch of FIRST robotics programmers. You give them data inputs, they will try to use them! Steve great job at trying to use the system to it's fullest. I will ask my programmers what they tried to do, I do not have the answer. I just hope that the NI will not underestimate the students in the future. They should know, "If it is there, someone will try to use it"
Seeing how there are FIRST veterans and mentors on both the NI and WPI teams, I disagree with these statements

In general, teams have only begun to tap the potential of the new control system. I'd love to see teams create sensors and other interfaces (especially off-season). There will also be improvements made from season to season which will advance the system capabilities.

So keep up the great work, and please do feel free to share
  #6   Spotlight this post!  
Unread 25-04-2009, 14:01
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,067
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: anyone else use the I2C bus?

We tried to use an I2C LCD from New Haven to work also, but unfortunately we weren't ever able to get it to work and gave up due to time constraints. I had noticed the same quirk with the I2C API on that, but it seems like we weren't ever able to initialize the device correctly or something.

We ended up doing our menu using using the DriverStation LCD when that ability was released, and thats worked for our needs perfectly.

Of course, now that I have my embedded web server working on the bot, I'm not quite as interested in the LCD at this point. Probably should try again though...
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #7   Spotlight this post!  
Unread 25-04-2009, 14:31
crake crake is offline
National Instruments
AKA: Chris Rake
no team (Athena)
Team Role: Engineer
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 185
crake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond reputecrake has a reputation beyond repute
Re: anyone else use the I2C bus?

Quote:
Originally Posted by virtuald View Post
Of course, now that I have my embedded web server working on the bot, I'm not quite as interested in the LCD at this point
That sounds cool - what info are you serving?
  #8   Spotlight this post!  
Unread 25-04-2009, 14:36
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,067
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: anyone else use the I2C bus?

Rather than repeating the information, go to the Google Code site that I created for the library: http://code.google.com/p/webdma/

Demo interface: http://www.virtualroadside.com/botface/index.html

Its pretty sweet. I'm uploading a video to YouTube right now that shows our robot being driven around using the web interface. Not particularly controllable since I didn't intend for it to be used in that way, but theres no reason one couldn't redo the interface to make that work (its mostly javascript).
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #9   Spotlight this post!  
Unread 25-04-2009, 16:48
Steve_Alaniz Steve_Alaniz is offline
Registered User
FRC #2848 (All Sparks)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 1997
Location: Dallas
Posts: 211
Steve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond reputeSteve_Alaniz has a reputation beyond repute
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Dave Flowerday View Post
Yes, we used I2C with 4 different devices. They are custom-developed modules for our crab drive wheels that each measure the speed of 2 wheels (1 driven and one idler wheel). We have 4 modules installed and 4 backups, and each has a unique I2C address. On startup, our robot checks to see which modules are on the I2C bus. If it matches the list of 4 that it knew about from last time (saved in a file on the flash disk), then it continues normally. If the list is different, it shuts down our traction control and requires the user to run a calibration routine (which drives each wheel motor individually to determine which sensor address is connected to each wheel).

The only issues we had with this were:
1) The I2C driver in WPIlib forces you to use a certain I2C "protocol" where the register address is always sent and then you can read or write up to 4 bytes. I would have preferred if it didn't impose this register address protocol on us (there's no reason in our application that we couldn't have issued a read without first writing a register address). This wouldn't impact you though since the Devantech sensors appear to use this fairly-standard protocol.

2) The I2C pullups in the digital sidecar were not sufficient to overcome the electronic noise on the robot. The sidecar uses the recommended value (3.6Kohm if I remember correctly). When we first tried our setup with those default values, we were getting corrupted readings a large percentage of the time (or the sensor wouldn't hear its own address because that was corrupted and it would simply not respond). We added an external 1Kohm parallel resistor to our SDA and SCL lines to increase the drive current (after checking the datahseets for the parts used inside the sidecar to make sure this wouldn't cause any issues) and that almost eliminated the problem. After that, once every few seconds we'd get a bad reading but mostly it was fine. It's possible this could have been your problem, but I'd have to hear more about what exactly happened when you hooked up both sensors to know for sure.

Anyway, long story short, yes it was possible for us to read multiple sensors on the I2C bus. Attached is an image of one of our crab drive modules showing the custom sensor board we built.
WHOA! Excellent Dave! Ok One thing I didn't mention was that we were using Labview and our issues with the devices was almost certainly the implementation of the I2C bus within Labview or a timing issue with reading the sensors within the FIRST program.
The second unit addressed just didn't respond, as if it were not even connected. We didn't have much time to play around with it so we didn't explored changing which we addressed first. We decided to wait until we could consult an NI guy and, well you know that story. I looked at their vi... as much as I was allowed, and saw that they had it fixed such that you had to send data when you addressed a register. We had to send a false data byte even though we only needed to address a register and then read. We correctly guessed the compass would ignore the extra data so it worked anyway.
I'll try the extra resistors when we work on it again. Thanks for the suggestion.
Your address scheme for the backup units is really elegant! Nice planning with the calibration mode! Nice crab system too! We didn't have time to add speed sensors, that's on our next years wish list

Seve
  #10   Spotlight this post!  
Unread 27-04-2009, 12:44
Joe Hershberger Joe Hershberger is offline
National Instruments
AKA: jhersh
FRC #2468 (Appreciate)
Team Role: Mentor
 
Join Date: Nov 2005
Rookie Year: 1997
Location: Austin, TX
Posts: 148
Joe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to all
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Steve_Alaniz View Post
WHOA! Excellent Dave! Ok One thing I didn't mention was that we were using Labview and our issues with the devices was almost certainly the implementation of the I2C bus within Labview or a timing issue with reading the sensors within the FIRST program.
I'm surprised you're having trouble... I tested talking to 3 different sensors on the same bus at the same time, using the LabVIEW examples. Are you sure you could address your second sensor at all?

Perhaps you had a wiring problem. Also, the Digital Sidecar has all the needed pull-up resistors. The devices should not have pull resistors in them.

Quote:
Originally Posted by Steve_Alaniz View Post
The second unit addressed just didn't respond, as if it were not even connected. We didn't have much time to play around with it so we didn't explored changing which we addressed first. We decided to wait until we could consult an NI guy and, well you know that story.
You just didn't consult the correct NI guy. The statement that we didn't expect I2C to be used this year is completely false.

Quote:
Originally Posted by Steve_Alaniz View Post
I looked at their vi... as much as I was allowed, and saw that they had it fixed such that you had to send data when you addressed a register. We had to send a false data byte even though we only needed to address a register and then read. We correctly guessed the compass would ignore the extra data so it worked anyway.
Perhaps you are misinterpreting the interface. The current API to I2C on the FPGA allows you write to one register or read from between 1 and 4 sequential registers. In either case, the device will be addressed, then the register will be addressed, and finally the data will be moved. Only when you're using a device that does not have a register-level I2C API does this scheme not work nicely. You should not use a register write when you are trying to do a register read.

The intention is that it will be more flexible in the future so that other custom API types can be easily supported as well.
  #11   Spotlight this post!  
Unread 27-04-2009, 12:56
Joe Hershberger Joe Hershberger is offline
National Instruments
AKA: jhersh
FRC #2468 (Appreciate)
Team Role: Mentor
 
Join Date: Nov 2005
Rookie Year: 1997
Location: Austin, TX
Posts: 148
Joe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to allJoe Hershberger is a name known to all
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Dave Flowerday View Post
The only issues we had with this were:
1) The I2C driver in WPIlib forces you to use a certain I2C "protocol" where the register address is always sent and then you can read or write up to 4 bytes. I would have preferred if it didn't impose this register address protocol on us (there's no reason in our application that we couldn't have issued a read without first writing a register address). This wouldn't impact you though since the Devantech sensors appear to use this fairly-standard protocol.
The API to the FPGA was designed this way to make it easy to interface with sensors that use this register type of API. In fact, every sensor we tested with used this type of API. It is our intention to make it more flexible in the future.

Quote:
Originally Posted by Dave Flowerday View Post
2) The I2C pullups in the digital sidecar were not sufficient to overcome the electronic noise on the robot. The sidecar uses the recommended value (3.6Kohm if I remember correctly). When we first tried our setup with those default values, we were getting corrupted readings a large percentage of the time (or the sensor wouldn't hear its own address because that was corrupted and it would simply not respond). We added an external 1Kohm parallel resistor to our SDA and SCL lines to increase the drive current (after checking the datahseets for the parts used inside the sidecar to make sure this wouldn't cause any issues) and that almost eliminated the problem. After that, once every few seconds we'd get a bad reading but mostly it was fine. It's possible this could have been your problem, but I'd have to hear more about what exactly happened when you hooked up both sensors to know for sure.
Did you try shielding the cable? By adding stronger pulls, you can cause problems with other sensors that can't pull the bus to ground. The most egregious are the hi-technic NXT sensors. They actually have series resistors on the bus making them pretty weak at pulling the bus low.
  #12   Spotlight this post!  
Unread 27-04-2009, 13:12
timmmoore timmmoore is offline
Registered User
FRC #1899
 
Join Date: Mar 2008
Location: Bellevue
Posts: 18
timmmoore is on a distinguished road
Re: anyone else use the I2C bus?

Multiple sensors does work from labview, I have tested up to 5, though I have found once you put 4/5 with a wire length of 18" you do need to add additional resistors to get reliable responses.
Having a more flexible api would be very nice:
1. separate write/read will be useful - see HMC6343 below
2. Timeout on bus especially slave clock stretching. I have seen cases where a sensor goes wrong and holds the SCK low, the bus stalls, I2C read stalls, etc.
Some comments about sensors:
devantech - srf08, cmps03, tap81 should all work. I have tried the srf08 with the example and it works. I have used all the rest before and their I2C interface is similar.
I2C-IT IR - works
LIS3LV02DQ - works (need a 3.3V to 5V convertor). I have tried other LISX accelerometers in the past, they all have similar I2C so should work.
HMC6343 - so far not working and I dont see a way to get the required timing.
PSP-NX Mindsensors - works, the other mindsensors have the same I2C interface so should work though I haven't used them before.

On a separate note - can we have the SPI interface more flexible as well. As far as I can tell, it supports mode 0 and 1 but not mode 2/3 (where clock is inactive high).
  #13   Spotlight this post!  
Unread 27-04-2009, 13:25
EricVanWyk EricVanWyk is offline
Registered User
no team
 
Join Date: Jan 2007
Rookie Year: 2000
Location: Boston
Posts: 1,597
EricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond reputeEricVanWyk has a reputation beyond repute
Send a message via AIM to EricVanWyk
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Steve_Alaniz View Post
2) Were you able to read two or more devices?
I heard rumor that the NXT devices all have the same i2c address, which would prevent you from using more than one of them.
  #14   Spotlight this post!  
Unread 27-04-2009, 13:50
timmmoore timmmoore is offline
Registered User
FRC #1899
 
Join Date: Mar 2008
Location: Bellevue
Posts: 18
timmmoore is on a distinguished road
Re: anyone else use the I2C bus?

I believe all the lego sensors use I2C address 2. You can reprogram the I2C address for the mindsensors nxt sensors but I dont believe you can with lego sensors.
There is also a i2C bus switch that allows multiple sensors with the same address to be connected and you switch 1 sensor in at a time. I have used one but I dont rememebr it at the moment. If you are interested I can dig ti out.
  #15   Spotlight this post!  
Unread 27-04-2009, 14:01
Dave Flowerday Dave Flowerday is offline
Software Engineer
VRC #0111 (Wildstang)
Team Role: Engineer
 
Join Date: Feb 2002
Rookie Year: 1995
Location: North Barrington, IL
Posts: 1,366
Dave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond reputeDave Flowerday has a reputation beyond repute
Re: anyone else use the I2C bus?

Quote:
Originally Posted by Joe Hershberger View Post
The API to the FPGA was designed this way to make it easy to interface with sensors that use this register type of API. In fact, every sensor we tested with used this type of API. It is our intention to make it more flexible in the future.
Yes, I realize it is the most common interface, so I wasn't completely surprised by it, just a little disappointed. Actually, a bigger concern that I'd have in the future is that it be capable of reading or writing more than 4 bytes at a time.
Quote:
Did you try shielding the cable? By adding stronger pulls, you can cause problems with other sensors that can't pull the bus to ground. The most egregious are the hi-technic NXT sensors. They actually have series resistors on the bus making them pretty weak at pulling the bus low.
Shielding was my first thought, but it would have been difficult to repeat all the wiring that we had installed. Lots of custom-crimped Molex connectors, and the cables ran down through the rotating shaft of our crab modules and had to be terminated after installation. We were only using the sensor boards that I developed so I knew that my board wouldn't have any issue overcoming the pullups. And as I mentioned, I inspected the schematic of the sidecar to make sure the parts used inside it could sink the necessary current.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Does anyone else use the Dvorak layout? Michael Hill Chit-Chat 12 25-03-2006 23:47
Ultrasonic Rangefinder Operating On I2C Bus CapnBFG Electrical 10 04-06-2005 01:31
Does anyone else NOT use a long arm to place a tetra on top of the Goal? mad_cloversc General Forum 29 08-03-2005 00:44
Anyone else pumped for Bash @ the Beach? rocknthehawk Off-Season Events 24 08-10-2004 16:12
Anyone else irresponsibly overlooked by the judges? archiver 2001 12 24-06-2002 03:31


All times are GMT -5. The time now is 15:17.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi