| View previous topic :: View next topic |
| Author |
Message |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Fri May 25, 2007 10:43 pm Post subject: OpenServo Lynx - Redux |
|
|
Hi all,
I am starting this thread with the aim of opening up the Lynxmotion - OpenServo project to the world. I will start the ball rolling by dropping in the first schematic I have.
This schematic was not designed for the Lynx board, but is more than suitable for that purpose. It will need tweaking to the Lynx specs, but it shouldn't take much. I have not labelled many of the components as yet, as I have not calculated all of the parameters.
The design uses a quad discrete N FET arrangement with the high side driver being an LTC1155 ad the low side an IR4427. The NOT gates control the bridge driver switching to make sure there is no shoot-through issues.
Question/comments/improvements welcome.
EDIT: It has just come to my attention that this design is derived from Andras Tantos of Modular Circuits. More specifically this:- http://www.modularcircuits.com/h-bridge.htm
As this design was resurrected from my design archives, I feel it only fair that I attribute the correct sources to bridge portion of the design to the rightful owner. Also note that the uModule is covered under a non-commercial license, and subsequently this design can not be used verbatim. The changes that Cliff has outlined below mitigate us from any potential trouble inferred by the original license.
Barry
Last edited by ginge on Mon Jun 04, 2007 8:21 pm; edited 1 time in total |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Sun May 27, 2007 10:13 am Post subject: |
|
|
Hi Barry,
Your schematic is a very good start towards a new Lynxmotion design. Now that I have spent some time reviewing the design, I have a few comments and suggestions. I am assuming that, at this time, a number of component values are just place holders and as such, if I comment on circuit values, I'm not criticizing your schematic values. (That will come later. )
a) My first knee-jerk reaction to the LTC1155 high-side driver chip was: that won't work - its too bloody slow. Then I realized that you had moved the Enables to the high-side switches, which makes the speed a non-issue. However that change does make BEMF measurement more complex. The thought in my OSvX2 design was to be able to stop PWM, leaving the Enable on, make the measurement and then restart the PWM - all without messing with the PWM ports. While BEMF is still doable with your change, it would be better if the PWM / BEMF routines could be the same as for OSvX2. By adding the bootstrap circuit (shown in the data sheet), the PWM could be moved back to the high-side and the same PWM / BEMF code could be used. The only down side I can see is that the PWM would be limited to 10KHz. max., but I don't think that will be a problem, because the larger motors used with this design will have larger inductance. Also, I noticed that the ST Microelectronics motor control chip is limited to 10KHz. max. as well.
b) I have an alternate to suggest for the bridge N-FETs, which is: IRLR7807Z. This part has about half the package size and about half the cost. The on resistance is about the same, but the gate charge and diode reverse recovery time are much smaller. The smaller gate charge requirement, will mean a faster turn on time given the same gate drive. The faster diode reverse recovery time (23-35nS) means the body diode can be used and no external bridge diodes will be needed, because the body diode is as fast as many fast rectifiers and faster than most (25-250nS). I have wondered about use of external diodes in bridge circuits, but recently ran across an old National App. Note (1988) that explains: | Quote: | | This parasitic diode does exhibit a very long reverse recovery time and large reverse recovery current due to the long minority carrier lifetimes in the N-drain layer, which precludes the use of this diode except for very low frequency applications, e.g., motor control circuit shown in Figure 5. However in high frequency applications, the parasitic diode must be paralleled externally by an ultra-fast rectifier to ensure that the parasitic diode does not turn on. | It would seem that is no longer a large issue with modern FETs and certainly not in a bridge running at 10KHz. BTW, the gate zeners you show for the low-side FETs are not really needed, but for the high-side FETs they will be needed.
c) One of the features that I really like about the LTC1155 is the over current protection. Given over current protection, I'm curious as to why you felt the anti-shoot-through circuit is needed. If the bridge were driven in a anti-phase mode, I could see the concern, but as is, to reverse the bridge a number of processor cycles are needed, providing ample time for the FETs to shut off. Futher, if we set up the OCP circuit correctly, the FETs will not be damaged even if the processor goes insane.
d) The BEMF circuit the sample divider will need to be scaled for 12V and a 1000pF capacitor needs to be added from the BEMF signal to ground. The BEMF capacitor effectively reduces the output impedance and provides some noise filtering. Also, it would probably be a good idea to add schottky diodes to clamp the sample divider outputs to the +5V supply. (BTW, what is the maximum input voltage limit for this design?)
e) We're going to need a lot bigger bulk capacitor for this design, at least 1,000uF, maybe more. From the LTC1155 data sheet: | Quote: | If the MOSFET is turned ON and the power supply (battery) removed, the inductor current is delivered by the supply capacitor. The supply capacitor must be large enough to deliver the energy demanded by the discharging inductor. If the storage capacitor is too small, the supply lead of the LTC1155 may be pulled below ground, permanently destroying the device.
Consider the case of a load inductance of 1mH which is supporting 3A when the 6V power supply connection is interrupted. A supply capacitor of at least 250uF is required to prevent the supply lead of the LTC1155 from being pulled below ground (along with any other circuitry tied to the supply). |
Well, enough for now.
Cliff |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Sun May 27, 2007 12:41 pm Post subject: |
|
|
Hi Cliff,
| Quote: | | I am assuming that, at this time, a number of component values are just place holders and as such... |
Exactly right.
| Quote: | | ...if I comment on circuit values, I'm not criticizing your schematic values. (That will come later. Smile ) |
Bring it on
point a)
I must admit to not really putting too much consideration into the Back EMF sensing. There is no working code at the moment, and I didn't really think too hard about how that would work. I originally designed this with op-amps in mind for the back EMF sensing. The opamps would run from the motor outputs to provide 2 ADC channel inputs that can be read at any point in the control loop. The motor output voltages are clamped using zeners to allow for an op-amp to provide a scaled reading at the correct moment. This is the arrangement I use on my current OpenServo derived board for the back EMF.
Given that the back EMF is non-functional at this time, and we are not sure of the value it will add, I am thinking we should just omit that section. The size specs for the board is pretty tight, and the fact we have to keep all components on the top layer makes me wonder if that is the right thing to do here.
b)
That looks like a good FET for the job. I had something like the IRL2203 in mind.
I always wondered about external bridge FETs myself. Given that the LynxServo v2 had problems with exploding FETs, I wonder if we should see what happens without and go from there.
I will look over removing the low side FET zeners.
c)
I am a paranoid kind of guy. I was hoping to add some more motor control methods to the OpenServo codebase at some point (syncron collapse, locked anti-phase), and I designed this as a platform to experiment... Hence all the protection. It would also provide protection in case someone wanted to develop their own software. We could drop it, but it is something that I would like to see,
d) OK, thanks I will add those in if you still want to use BEMF
The LTC1155 handles >18V but I have designed the board with <=16V in mind.
e) Eek, not sure how I missed that one.
Let me know what you think about removing the Back EMF and the shoot through protection, and I will proceed from there.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Mon May 28, 2007 1:56 am Post subject: |
|
|
Cliff,
I have taken most of you design suggestions on board and whipped up a quick schematic.
Notes:
a) I still have not calculated all of the values. Notably the BEMF divider and the LTC1155 current sense resistor. I am not sure of the best way to proceed on the Back EMF potion yet. I really need to read over your docs again to make sure we get the optimal configuration from a varying voltage source.
b) I have switched back the enable and pwm from the previous inverted setup to satisfy the BEMF requirements.
c) I have added the LTC1155 bootstrap for the PWM conversion. As you stated, we are limited to 10khz maximum now.
d) Changes:- Added the bulk capacitor, but unsure as to package to choose for the layout. I have added the missing Lynx requirement of a trim pot. Changed the xtal for an integrated smt type
I think that is all... for now.
I drafted this up fairly quickly, so let me know if I made any obvious errors. If you think we are proceeding in the right direction, I will check the the layout very carefully.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Mon May 28, 2007 6:10 am Post subject: |
|
|
Barry,
The resolution on your second schematic post is too low to be readable when enlarged. Could you bump the resolution up to that of the first schematic?
Looks like progress - I'll get more comments to you, when I can see the details.
Thanks,
Cliff |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Mon May 28, 2007 10:21 am Post subject: |
|
|
Cliff,
The images on my server are 2000x1000px. This small image hyperlinks to the larger one on my server. It is identical in size to the first image.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Mon May 28, 2007 11:54 am Post subject: |
|
|
Barry,
| Barry wrote: | | This small image hyperlinks to the larger one on my server. |
Thanks, got it. Here is a suggestion for the current sense circuits:
Time for bed here, so more tomorrow.
Cliff |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue May 29, 2007 1:23 am Post subject: |
|
|
Cliff,
Great work. I have incorporated your calculations into the schematic, and I have taken care of some others too. The BEMF dividers could probably do with readjusting, but the components are available in those values.
Here is the 0.4 version
(once again linked to larger image due to phpbb resize restrictions)
EDIT:
noticed I probably created a problem in the back EMF by clamping the output from the Back EMF switch portion so I am not taking those component limits into account. I will check over the datasheet and set appropriate limits.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Tue May 29, 2007 2:53 am Post subject: |
|
|
Barry,
Here are suggested values for the BEMF circuit:
These values will give the same response time as OSvX2.
The bus switches will clamp the output to the ADC - the diode clamps are to protect the switches from positive voltage spikes greater that 7V at the inputs. The switches already have internal negitive spike protection.
Cliff
Last edited by Cliff on Tue May 29, 2007 3:15 am; edited 1 time in total |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Tue May 29, 2007 3:01 am Post subject: |
|
|
Barry,
Here are some suggestions for the gate bootstrap circuits:
Links to parts used:
BAS40W-06
MMDT2222
MMDT3906
MMBZ5248BS
BTW, it looks like the bootstrap capacitor got dropped on your schematic - you might want to look around on the floor, it must be somewhere near by.
Cliff
Last edited by Cliff on Tue May 29, 2007 9:31 am; edited 1 time in total |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Tue May 29, 2007 9:29 am Post subject: |
|
|
Barry,
A few more notes (what do you mean 'too many notes'?).
a) The bulk capacitor needs to be moved to the battery voltage.
b) I don't know the part numbers for the battery and motor connectors used on Lynx v1, but looking at similar connectors of the same size, I find the current rating to be 6A max. - we're going to have to use a larger version or something else. Ideas?
c) Putting battery voltage on the I2C/Serial and PWM input connectors begs for someone to connect their battery there, which when running a large motor will result in a melted connector. If the battery voltage is desired for output on these connectors, then we should limit the current to what the connectors will handle - poly-switch? fuse?
d) Why do you have a separate AVR-ISP connector? I think that it would better to have a connector set-up that is consistent with, if not the v3 connector, at least the OpenServo v2 connector. I'll let you guess what my preference would be.
e) While I understand the desire for a lower noise measurement, connecting the centering pot to the AVCC voltage will mean that a larger inductor will be needed and if the pot becomes intermittent, it will generate noise that will affect all the ADC measurements. Since this is a pretty static input, I think software filtering and limit (delta) checking would be a better way to deal with this input. That is, until a new value is stable for a period of time, the old value is used. I would recommend putting this pot on +5V.
f) I notice that ADC6 is free and that there is no temperature sensor on board. Even though this board will not be stuffed into a servo case, make no mistake, this board is going to get hot. Jim Fry's vision for mounting, to date, is to encase the entire board in heat-shrink and tie-wrap it somewhere . IMHO that we need to come up with a better plan, but until we do, it would be nice to know when to shut down without waiting for plastic to melt. I would recommend adding the temperature sensor - its zero impact to remove it later if cost is an issue.
g) The low side gate drivers have internal pull-downs, but to be on the safe side you might want to add pull-downs on the PWM signals (no internal pull-downs on the high side drivers).
Enough for now,
Cliff |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Tue May 29, 2007 3:25 pm Post subject: |
|
|
Hi Cliff, you have been busy
Thanks for the scaling on the BEMF divider.
I found the bootstrap caps ( on the floor ) and added them back in
Component suggestions:
MMDT2222
MMDT3906
MMBZ5248BS
These dual transistors/zeners are difficult for me to get hold of without splitting my suppliers. I prefer using the SOT23 as it doesn't add much to the board space.
a) Done. Any thoughts on a package for this cap?
b) I was planning on using a Molex 5.08mm screw terminal.This one handles 10A and would look up to the job, There are quite a few manufacturers to choose from with this current rating and pitch, so I can't see a major problem there.
Molex 0399800302 - Farnell
The Tyco MTA-156 range supports up to 12A contact and are smaller than the above 200 pitch component.
c) Yeah, it was something I wanted to talk to Mike about. The lynx v1 design had a jumper switch bank to control the power input (output?), and I was hoping to be able to drop this entirely. I just needed to confirm that is was not needed. If not needed we can roll the I2C PWM and serial into one connector.
If it is needed I think a fuse would be best.
d) I got the impression it was a requirement of the design. I would love to have a OSvX2 connector on there as well, but I guess we need to see if we can justify it to the powers that be. I think it is a good idea to have a standardised connector on there for flashing to make it easier on the masses.
e) No problem, I understand what you are saying. IIRC the ADC is already filtered in software so this should not be a problem.
f) Good idea. I think just a couple of holes and provision for an off-board sensor would work best here. That way you can take the thermistor off to the motor if you wanted to. The voltages will need scaling, so I will look over the datasheets for a suitable device. I think something like the LM35 might be a good choice. We will need to work out what temperatures we are dealing with to get a good voltage divider value.
| Quote: | | encase the entire board in heat-shrink | Eek. This thing will need to come with a warning label and a fire extinguisher.
g) The IR2247 should provide an adequate pulldown so I think this is a little paranoid. I will add it if you think it is worthwhile.
so: 0.5
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Wed May 30, 2007 9:03 am Post subject: |
|
|
Barry,
Looking pretty good. We are quickly getting to the point where input from Mike and/or Jim will be needed to continue. Mike was going to send me e-mail describing the requirements / desires, but I guess a hungry spam filter ate it. We really need to have a plan for mounting and heat-sinking this board - heat-shrink and tie wraps are clearly not the right answers. I have some ideas on mounting, but until I get a better feel for Mike and Jim's 'product specification', I can't really take those ideas anywhere.
| Barry wrote: | | a) Done. Any thoughts on a package for this cap? |
Er, are you sure? - well maybe three will be a charm . Thinking about the bulk capacitor, it will probably be better to use two 470uF capacitors to keep the profile lower. The screw terminal connectors are around 12.7mm tall and since the bulk capacitor should be place near the battery connector, the capacitor height should be no more than that. I would recommend using these: Panasonic P/N EEE-FK1E471P or something else with a similar Voltage, ERS and case size.
| Barry wrote: | | b) I was planning on using a Molex 5.08mm screw terminal.This one handles 10A |
Since we are designing for up to 10A of motor current, I would prefer to see a higher current rating for the connector. Here is a Phoenix Contact 5mm screw terminal rated for 16A:1935161 (two position P/N).
| Barry wrote: | | d) I got the impression it was a requirement of the design. |
Mike should be back from his long weekend soon, so maybe we can get some the 'requirements' issues sorted. As far as connectors go, I think that OpenServo et al needs to hash out the OpenServo connector 'Standard' and then explain to Jim why that it is the right way to go.
| Barry wrote: | | f) Good idea. ... I think something like the LM35 might be a good choice. |
On the OSvX2 board I used the MicroChip MCP9701/9701A because it does not require an Op-Amp for scaling to the ADC. From the datasheet:
| Quote: | | The MCP9700/9700A and MCP9701/9701A temperature coefficients are scaled to provide a 1[degree]C/bit resolution for an 8-bit ADC with a reference voltage of 2.5V and 5V, respectively. |
This part comes in SC70-5 package for surface mount for monitoring board temperature and in TO-92, which could be used for monitoring the motor. Too bad we don't have another ADC port, both would be best.
| Barry wrote: | | g) The IR2247 should provide an adequate pulldown so I think this is a little paranoid. |
I don't think the pull-downs are needed, I just thought I would mention it because of your statement in your second post above:
| Barry wrote: | | I am a paranoid kind of guy. |
Cliff
Last edited by Cliff on Wed May 30, 2007 10:09 am; edited 2 times in total |
|
| Back to top |
|
 |
ginge Site Admin
Joined: 14 Jan 2006 Posts: 1029 Location: Manchester, UK
|
Posted: Wed May 30, 2007 9:16 am Post subject: |
|
|
Cliff,
| Quote: | | Er, are you sure? - well maybe three will be a charm | Damn. I really should learn to read. Ok, maybe this next revision
Those Panasonic caps are the sort of thing I was looking for. You can get a low profile G package in 1000uF, but you may be right that splitting them into smaller packages will be the best way to go.
| Quote: | | I just thought I would mention it because of your statement in your second post above | Ok I did have to think hard about that one. I try not to take my paranoia too far.
Expect the 0.6 version later. Hopefully we can then start to look at the layout, packaging and control options.
Barry _________________ http://www.headfuzz.co.uk/
http://www.robotfuzz.co.uk/ |
|
| Back to top |
|
 |
Cliff
Joined: 23 Jan 2007 Posts: 150 Location: Saratoga, CA
|
Posted: Wed May 30, 2007 10:16 am Post subject: |
|
|
Barry,
If I had a nickel for every time I said that . . .
BTW, here is what I would use for the current sense resistor: Ohmite 610SJR00300E. It is bigger than a carbon film chip resistor, but I worry about the carbon film's ablilty to deal with a large current spike that exceeds it's power rating by a factor of 2 or more. Also, the 2512 (1W) resistors really can't take much rough handling - they are easily cracked, even mounted on a board.
Cliff |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|