View Full Version : Need Electrical Guru, DB37 Cables
This year, when we tried to hook up our accelerometer, The ADXL245 via I2C and our output was all 0s. After some searching on the forums, it turns out that the round DB37 cables from last year do not work and we need to use the Flat ones we got in this year's KOP.
We tried testing all the pins and they work the same for both cables (after fixing this year's cable of course). Also, we found out that the old cable actually has less resistance than the new cable. So can anyone who is awesome with Electronics find out why Flat works and Round doesnt?
The problem might be because our round cable is defective in some way because other teams have experienced the same thing.
Last years cable:
http://www.andymark.com/product-p/am-0500.htm
This years cable:
http://www.andymark.com/product-p/am-0504.htm
Jim Wilks
25-01-2012, 21:17
Last years round cable works just fine this year.
Last years round cable works just fine this year.
Yeah, they are just fat and heavy :)
Last years round cable works just fine this year.
Not for us, what language are you guys programming in?
http://www.chiefdelphi.com/forums/showthread.php?t=100142
Kevin Sevcik
25-01-2012, 22:43
Programming language shouldn't have anything to do with it. If your I2C works in C++ with a round cable, it'll work with a flat cable.* Electrons don't care what programming language you're using, they're pretty egalitarian like that.
Similarly, if you can't get I2C to work with Java + round cable, a flat cable isn't going to fix things. It's almost certain to be a programming problem.
*Yes, yes, there are differences between the two, cross-talk and suchlike, but I don't think those effects are big enough to interfere with what we're doing. And anyways, that'd just mean a round cable wouldn't work in any language.
StealthMentor
26-01-2012, 08:37
Reading the OP's problem I would guess that it is more likley the module is not connected into the cRIO well, a bent pin on his roung cable, or it is just not getting inserted all the way. We had an odd problem where the screw holding the cRIO on was loose, causing the module to lose connectivity intermittentley when we would hit bumps or change direction, boy was the robot acting wierd.
machman-2823
26-01-2012, 08:45
I just fixed our DB37 cable last night, all you need to do is take the cable out of the connector, and flip it over. it only takes about 2-3 minutes, and all you need is a vice and a pair of scizzors
Reading the OP's problem I would guess that it is more likley the module is not connected into the cRIO well, a bent pin on his roung cable, or it is just not getting inserted all the way. We had an odd problem where the screw holding the cRIO on was loose, causing the module to lose connectivity intermittentley when we would hit bumps or change direction, boy was the robot acting wierd.
This might be it, But remember, The problem was not just with our cable, so it might a defect in the cable?
Programming language shouldn't have anything to do with it. If your I2C works in C++ with a round cable, it'll work with a flat cable.* Electrons don't care what programming language you're using, they're pretty egalitarian like that.
Similarly, if you can't get I2C to work with Java + round cable, a flat cable isn't going to fix things. It's almost certain to be a programming problem.
*Yes, yes, there are differences between the two, cross-talk and suchlike, but I don't think those effects are big enough to interfere with what we're doing. And anyways, that'd just mean a round cable wouldn't work in any language.
Ok, well when we replace our round cable with the flat one, not even touching the code, our accelerometers stop working. Maybe its a problem with our round one as StealthMentor said,but remember, this problem occured to other teams as well.
LinuxArchitect
26-01-2012, 13:39
Ok, well when we replace our round cable with the flat one, not even touching the code, our accelerometers stop working. Maybe its a problem with our round one as StealthMentor said,but remember, this problem occured to other teams as well.
You reversed the problem description from your first post. If this is the correct description of your problem, then this is well known; it was published in the first team update.
See http://www.usfirst.org/sites/default/files/uploadedFiles/Robotics_Programs/FRC/Game_and_Season__Info/2012_Assets/DB37%20Ribbon%20Cable%20Assembly%20-%20Rework%20Instructions.pdf
But you said you already "fixed" the flat cable. Did you test it before fixing it? Not all cables were bad. That's the only thing I see that might be the cause. Try unfixing it, or buy a new one from a local computer shop.
Ok, well when we replace our round cable with the flat one, not even touching the code, our accelerometers stop working. Maybe its a problem with our round one as StealthMentor said,but remember, this problem occured to other teams as well.
Perhaps you can point to the original post that made you believe that other teams were having a simmilar problem. It seems unlikely to me, but perhaps the other post gives a better indication of what the actual issue is.
Phil.
Sorry for causing all this confusion. thanks for taking the time to work this out
@LinuxArchitect, yes we read that document you are talking and yes we determined we got a incorrectly assembled cable via the method they described so we fixed it according to their instructions, no problem there,
The problem is that round doesnt work for accelerometers and flat does. Everything else works for both flat and round,
@PhilBot, see this post
http://www.chiefdelphi.com/forums/showthread.php?t=100142
see post number 7, 8
also again here
http://www.chiefdelphi.com/forums/showthread.php?t=99772
post number 11 and 15
electroken
28-01-2012, 08:36
We have also noticed that the ADXL345 functions correctly with the flat cable but not the round cable.
The ADXL345 uses a I2C serial interface. Pull up the I2C specification from NXP Semiconductor (they invented it) and you'll find a maximum allowable bus capacitance. I'm working from memory here, but IIRC the maximum is 400pF, which is not a lot.
In the flat cable the I2C signals (SDA and SCL) can be next to two other signals at most. In the round cable they're tightly bundled with 35 of their friends and I suspect the bus capacitance is much higher.
I like explainable things, and that's the best I've got for this.
We have also noticed that the ADXL345 functions correctly with the flat cable but not the round cable.
The ADXL345 uses a I2C serial interface. Pull up the I2C specification from NXP Semiconductor (they invented it) and you'll find a maximum allowable bus capacitance. I'm working from memory here, but IIRC the maximum is 400pF, which is not a lot.
In the flat cable the I2C signals (SDA and SCL) can be next to two other signals at most. In the round cable they're tightly bundled with 35 of their friends and I suspect the bus capacitance is much higher.
I like explainable things, and that's the best I've got for this.
Thank you, this makes lots of sense. but what is weird is that people have said that that the round cable works for them. Also, how did they do I2C last year when everyone used round cables?
Alan Anderson
28-01-2012, 20:16
Thank you, this makes lots of sense. but what is weird is that people have said that that the round cable works for them. Also, how did they do I2C last year when everyone used round cables?
The TechnoKats have always used 37-pin ribbon cables to connect the Digital Sidecar.
LinuxArchitect
28-01-2012, 21:18
We have also noticed that the ADXL345 functions correctly with the flat cable but not the round cable.
...
I like explainable things, and that's the best I've got for this.
Interesting stuff, and why I'm a software geek and not an electrical engineer.
And why I browse the CD forums at all hours of the day/night (well, except for the dang backups at 6am).
Thanks!
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.