Originally posted by 4106Coach
View Post
Announcement
Collapse
Technology Forum Has Moved!
The FIRST Tech Challenge Technology forum has moved to a new location! Please take a look at our forum blog for links and instructions on how to access the new forum.
Note that volunteers (except for FTA/WTA/CSA will still access their role specific forum through this site. The blog also outlines how to access the volunteer forums.
Note that volunteers (except for FTA/WTA/CSA will still access their role specific forum through this site. The blog also outlines how to access the volunteer forums.
See more
See less
Is this allowed for i2c devices?
Collapse
X
-
FTC6460 mentor (software+computer vision+electronics), FPGA enthusiast. In favor of allowing custom electronics on FTC bots.
Co-founder of ##ftc live chat for FTC programming--currently you may need to join and wait some time for help--volunteer basis only.
-
[QUOTE=mikets;27955]I think it may be a little overkill ...QUOTE]
Ha! This whole project screams overkill! But that's the summer fun!
Something like this https://www.sparkfun.com/products/12702 would clearly be a better choice if we are just making a few.
It was surprisingly not difficult to make a 4x10 pin header with all the 10 pins in a column shorted together with solder. But it looks like a mistake waiting to happen to short things out. This little board would be way better cleaner.
Comment
-
Originally posted by hexafraction View PostThis is something worth looking at. The 6-device limit seems needless given that 127 addresses can be supported, the rules don't specify a limit on sensor count, and the connectors all share the same I2C bus anyway. If anything, the method should be cdim through hardware map -> i2cbus field (without any nonsense of creating separate i2c devices).
Comment
-
Originally posted by 4106Coach View PostSomething like this https://www.sparkfun.com/products/12702 would clearly be a better choice if we are just making a few.
It was surprisingly not difficult to make a 4x10 pin header with all the 10 pins in a column shorted together with solder. But it looks like a mistake waiting to happen to short things out. This little board would be way better cleaner.
Comment
-
Originally posted by dmssargent View PostThis doesn't seem to be as trivial as I thought, still it is doable. Since the extra effort for supporting what you are wanting is currently tied to the number of I2C devices supported; wrapping around one allows me to fix the other. Note that the version for Xtensible will be first (it has the backend code to make the wrapper simpler) then a stock version (I need to shim what Xtensible has and the wrapper needs)
A single constant defines the number of allowed devices, ModernRoboticsUsbDeviceInterfaceModule.NUMBER_OF_P ORTS, which is 6. Since that constant gets inlined at compile-time, you have to rewrite a good chunk of the class hierarchy (as that constant gets passed to the super class). This much code rewriting may require to use the ftc_app Qualcomm license.
Comment
-
Note also that there are electrical concerns with adding too many i2c devices to a bus. The i2c spec requires total capacitance of less than 400 pF. (Though this app note says you can get away with more if you adjust termination resistance appropriately: http://www.i2c-bus.org/i2c-primer/te...s-capacitance/). Unfortunately, we don't have control over the pullup resistor(s) in our configuration.
Does anyone know what ICs are used in the various sensors, and what capacitance they have?
Ribbon cable, such as is used in the connections to the DIM, can add about 50 pF/meter. If you have too much capacitance in the system, the square edges of the signals get rounded over so much that communications becomes unreliable.
Comment
-
Originally posted by FTC0417 View PostI wonder if the firmware in the CDIM is set up to be able to handle an arbitrary number of I2c devices, or only six. My suspicion is that it's the latter.
Comment
-
Originally posted by GearTicks View PostIf you look at the last page of the MR spec sheet for the CDIM (at http://modernroboticsinc.com/Content...ation_v1_1.pdf), you can see that there is a set of registers corresponding to each of the 6 I2C slots, so the CDIM is designed to handle only six devices. If you wanted to use more, you would have to switch between I2C addresses on a single I2cDevice instance, much like switching between which registers are being read on an I2C device.
I'll post after Wednesday about that. We are doing an all-day completion to our summer-long FTC camp that day and should have a good chunk of time to play with it.
Thanks for the great idea to try.
Comment
Comment