I read the data sheet on the voltage level translators the PSC uses a few months ago. These level translators are bidirectional and automatically sense signal direction on a pin by pin basis. The specific method the chips use to sense signal direction is what I think is causing a problem. First, both sides of the chip are always a weak output. Next when a logic transition (say HI to LOW) is detected on a pin (say on the 3.3v side), the other side (say at 5v) of the same pin-pair briefly activates a strong output with the same state. (a logic LOW in this case) [noparse][[/noparse]ug, the data sheet explains this much better]
In this case I think the servo input of the digital servo draws enough current to over-ride the weak output of the level translator chip and cause it to switch directions. After switching directions the level translator tries to pull the prop output low. It can't, so the translation direction switches again and a logic HI is briefly generated on the servo side. Pretty soon the high power drive on the servo side turns off and the servo's input load pulls the output of the level translator chip low, repeating the above chain of events.
Jumper the level translation chip with about a 100 ohm resistor and I bet everything will work.
Lawson
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Lunch cures all problems! have you had lunch?
"The output drivers of the TXB0108 have low dc drive strength. If pullup or pulldown resistors are connected externally to the data I/Os, their values must be
kept higher than 50 kW to ensure that they do not contend with the output drivers of the TXB0108"
Could these servos have pull ups or similar? I suspect they are the culprits. Can someone try one of these servos straight from a proto-board?
rough_wood said...
Can a Parallax employee pipe in on this? I will be in the market for controlling 24+ servos before long and will go with Parallax if it can get buttoned down, otherwise I gotta grab that Lynxmotion one. I'd rather stick with Prop if possible.
I did send an email to Parallax support about this problem before I posted my question on this forum. They responded that digital servo's use the same 1-2ms signal as normal servo's and therefor should work normaly.
Lawson said...
I read the data sheet on the voltage level translators the PSC uses a few months ago. These level translators are bidirectional and automatically sense signal direction on a pin by pin basis. The specific method the chips use to sense signal direction is what I think is causing a problem. First, both sides of the chip are always a weak output. Next when a logic transition (say HI to LOW) is detected on a pin (say on the 3.3v side), the other side (say at 5v) of the same pin-pair briefly activates a strong output with the same state. (a logic LOW in this case) [noparse][[/noparse]ug, the data sheet explains this much better]
In this case I think the servo input of the digital servo draws enough current to over-ride the weak output of the level translator chip and cause it to switch directions. After switching directions the level translator tries to pull the prop output low. It can't, so the translation direction switches again and a logic HI is briefly generated on the servo side. Pretty soon the high power drive on the servo side turns off and the servo's input load pulls the output of the level translator chip low, repeating the above chain of events.
Jumper the level translation chip with about a 100 ohm resistor and I bet everything will work.
Lawson
I think your right !!
As you can see in the picture, I added a 10k resistor in the signal wire of the digi-servo, and it works !!!
So... is Parallax going to make new version of the servo controller ?
Many, many thanks to all who helped solve my problem
@Lawson
I started to make an attempt at bypassing the TXB0108, but there realley are no access points on the board and the fine pitch on the chip makes it impossible to get a resister in there.
@SkalTura
Upon further testing with your fix, I found I could go down to 1K ohm in series. At 100 ohm, it stopped working. These are my findings on the JR DS8711 Digital Servo.
There is hope afterall! And thanks everyone for your input!
Jim
SkalTura said...
Lawson said...
Jumper the level translation chip with about a 100 ohm resistor and I bet everything will work.
Lawson
I think your right !!
As you can see in the picture, I added a 10k resistor in the signal wire of the digi-servo, and it works !!!
So... is Parallax going to make new version of the servo controller ?
Many, many thanks to all who helped solve my problem
@SkalTura
Ha, never thought of doing that! Cool to see that an inline resistor works.
hover1 said...
@Lawson
I started to make an attempt at bypassing the TXB0108, but there realley are no access points on the board and the fine pitch on the chip makes it impossible to get a resister in there
Yea, not much space on the chip leads. Looking closer at the datasheet for the level translator, looks like it could be replaced with a SMD resistor array. Digikey OSOPT-1KACT-ND or one of it's brothers with a higher or lower value looks like it'd fit as a replacement "chip". I'd also remove pins 2, 10, and 19 on the resistor pack to avoid linking 3.3 to 5 volts and excessively loading the prop pin that drove OE.
Just one more option,
Lawson
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Lunch cures all problems! have you had lunch?
If I were you I would simple put the serial resistor in line the the resistor's lead, a little heat shrink and no one will know and it should still work fine on a receiver.
I think that Parallax should reconsider using this device on the next version but these seems a reasonable solution in the shorter term.
Lawson's original intent was to put a resistor (100 ohm) on P0 of the Propeller chip and the other end to the signal pin of the servo, basically bypassing the Voltage Translator chip. But you idea is easier to implement.
Jim
SkalTura said...
Lawson said...
@SkalTura
Ha, never thought of doing that! Cool to see that an inline resistor works.
So that was not what you meant ?
Whahaha... funny that my mistake, due to poor English, also works.
Lawson said...
@SkalTura
Ha, never thought of doing that! Cool to see that an inline resistor works.
So that was not what you meant ?
Whahaha... funny that my mistake, due to poor English, also works.
Lawson intended for you resistor to bipass the chip, connect the input to the output. But cool you misunderstood! [noparse]:)[/noparse]
I think the reason what you have done works is because you have weakened the effect of the pull up (or similar circuit) within the servo. If you look at my post that quotes the datasheet, I think this may have been the problem.
Posted at the same time! Same feelings about the reduced effect of the feedback from the servo. Luckily my project is land based,·so I can pursue it
without any problems with people getting hurt if it fails.
Jim
Lawson intended for you resistor to bipass the chip, connect the input to the output. But cool you misunderstood! [noparse]:)[/noparse]
I think the reason what you have done works is because you have weakened the effect of the pull up (or similar circuit) within the servo. If you look at my post that quotes the datasheet, I think this may have been the problem.
SkalTura,
The Propeller USB Servo Controller cannot drive loads less with than 5 kΩ of impedance. I have never seen servos that do not have high impedance inputs, but the oscilloscope traces you recorded are typical of a TXB0108 driving a low impedance load. If you do not need bidirectional communication, a series resistor of 5 kΩ or more will stop the ringing.
David Carrier (Parallax) said...
SkalTura,
The Propeller USB Servo Controller cannot drive loads less with than 5 kΩ of impedance. I have never seen servos that do not have high impedance inputs, but the oscilloscope traces you recorded are typical of a TXB0108 driving a low impedance load. If you do not need bidirectional communication, a series resistor of 5 kΩ or more will stop the ringing.
-- David Carrier
Parallax Inc.
Thanks for your information David.
As I posted a few messages ago, I tested it with a 10k resistor, and it works perfectly now.
David Carrier (Parallax) said...
SkalTura,
The Propeller USB Servo Controller cannot drive loads less with than 5 kΩ of impedance. I have never seen servos that do not have high impedance inputs, but the oscilloscope traces you recorded are typical of a TXB0108 driving a low impedance load. If you do not need bidirectional communication, a series resistor of 5 kΩ or more will stop the ringing.
-- David Carrier
Parallax Inc.
David
We just·connected the GWS S03T-STD analog servo to PSCU but it can't work unless we add a series 450Ω register inline with signal line of servo. But the same servo can work well with the previous PSC. Is Parallax going to make a new version ? or better suggetion to me ?·
Just bought a few analog servo's on eBay, and these also need a resistor inline.
Can't figure out what the difference is between the servo's. The digital servo's I had that didn't work without a resistor where from Graupner, but the analog servo's I recently bought are from Futaba and also need a resistor. Others analog servo's from Futaba (very old models by the way) work fine without the resistor inline.
Comments
In this case I think the servo input of the digital servo draws enough current to over-ride the weak output of the level translator chip and cause it to switch directions. After switching directions the level translator tries to pull the prop output low. It can't, so the translation direction switches again and a logic HI is briefly generated on the servo side. Pretty soon the high power drive on the servo side turns off and the servo's input load pulls the output of the level translator chip low, repeating the above chain of events.
Jumper the level translation chip with about a 100 ohm resistor and I bet everything will work.
Lawson
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Lunch cures all problems! have you had lunch?
kept higher than 50 kW to ensure that they do not contend with the output drivers of the TXB0108"
Could these servos have pull ups or similar? I suspect they are the culprits. Can someone try one of these servos straight from a proto-board?
Cheers,
Graham
I think your right !!
As you can see in the picture, I added a 10k resistor in the signal wire of the digi-servo, and it works !!!
So... is Parallax going to make new version of the servo controller ?
Many, many thanks to all who helped solve my problem
.
I started to make an attempt at bypassing the TXB0108, but there realley are no access points on the board and the fine pitch on the chip makes it impossible to get a resister in there.
@SkalTura
Upon further testing with your fix, I found I could go down to 1K ohm in series. At 100 ohm, it stopped working. These are my findings on the JR DS8711 Digital Servo.
There is hope afterall! And thanks everyone for your input!
Jim
Ha, never thought of doing that! Cool to see that an inline resistor works.
Yea, not much space on the chip leads. Looking closer at the datasheet for the level translator, looks like it could be replaced with a SMD resistor array. Digikey OSOPT-1KACT-ND or one of it's brothers with a higher or lower value looks like it'd fit as a replacement "chip". I'd also remove pins 2, 10, and 19 on the resistor pack to avoid linking 3.3 to 5 volts and excessively loading the prop pin that drove OE.
Just one more option,
Lawson
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Lunch cures all problems! have you had lunch?
So that was not what you meant ?
Whahaha... funny that my mistake, due to poor English, also works.
If I were you I would simple put the serial resistor in line the the resistor's lead, a little heat shrink and no one will know and it should still work fine on a receiver.
I think that Parallax should reconsider using this device on the next version but these seems a reasonable solution in the shorter term.
Graham
Lawson's original intent was to put a resistor (100 ohm) on P0 of the Propeller chip and the other end to the signal pin of the servo, basically bypassing the Voltage Translator chip. But you idea is easier to implement.
Jim
Lawson intended for you resistor to bipass the chip, connect the input to the output. But cool you misunderstood! [noparse]:)[/noparse]
I think the reason what you have done works is because you have weakened the effect of the pull up (or similar circuit) within the servo. If you look at my post that quotes the datasheet, I think this may have been the problem.
Graham
without any problems with people getting hurt if it fails.
Jim
·http://e2e.ti.com/forums/t/8737.aspx
High Frequency noise.
Jim
The Propeller USB Servo Controller cannot drive loads less with than 5 kΩ of impedance. I have never seen servos that do not have high impedance inputs, but the oscilloscope traces you recorded are typical of a TXB0108 driving a low impedance load. If you do not need bidirectional communication, a series resistor of 5 kΩ or more will stop the ringing.
-- David Carrier
Parallax Inc.
Thanks for your information David.
As I posted a few messages ago, I tested it with a 10k resistor, and it works perfectly now.
Thanks !!
We just·connected the GWS S03T-STD analog servo to PSCU but it can't work unless we add a series 450Ω register inline with signal line of servo. But the same servo can work well with the previous PSC. Is Parallax going to make a new version ? or better suggetion to me ?·
Kevin
Can't figure out what the difference is between the servo's. The digital servo's I had that didn't work without a resistor where from Graupner, but the analog servo's I recently bought are from Futaba and also need a resistor. Others analog servo's from Futaba (very old models by the way) work fine without the resistor inline.
Very strange...