Sign in to follow this  
CProgrammer

can this chip do it?

Recommended Posts

You'll still have to interface to the servo, as i doubt the board can provide sufficient power directly to a motor. As to the conversion time i'm not sure exactly what is meant by it... dac or command issue latency. What exactly are you trying to do and do you want to buy a complete unit to control your servo or are you willing to build one yourself? Also by servo you mean stepper motor? or regular dc motor?

Share this post


Link to post
Share on other sites
With servo I dont mean the regular dc motor. The servo expects pulses between 1 and 2ms to set the angle. I figured I can power the servo with a battery and have only the third plug connected to a digital output of the chip.
If I need to buy something additionally please tell me what you have in mind.
Concerning the 20ms. Anybod know what exactly is meant.

-CProgrammer

Share this post


Link to post
Share on other sites
I haven't done this for a while but i think you are describing a stepper motor. They have stepper motor controllers about that you yourself could interface to a usb chip, but then again there are also microcontrollers with a usb interface... look here for some interfacing info http://www.beyondlogic.org/. However the outputs will have to be buffered through an opto-isolater with a power transistor to actually drive the servo. IIRC there are optoisolaters with power transistors all in one integrated chip package, however that still leaves you building a board. If you don't feel like making a pcb i suggest you do a little more research since i remember there being motor controllers, both pre-built or kits available for sale. I don't know as to the price or a website, its been a while.

Share this post


Link to post
Share on other sites
The specs given on the page arent't detailed enough, however it does state it runs off usb power, so again it wouldn't be abled to run a motor directly. And its never a good idea to run an inductive load directly off circuitry not designed to do so (when the magnetic field collapses it produces a current). You will just need to stick something inbetween the board you have and the motor. A quick google came up with this page, which also has links: http://www.doc.ic.ac.uk/~ih/teaching/smack/

Look up the chip and the family of chips it uses and see if it is what you need. If it is it should be simple enough to interface to the board you already have.

Share this post


Link to post
Share on other sites
Quote:
Original post by CProgrammer
can this chip actually control a servo.
http://www.elexp.com/tst_k805.htm

The conversion time scares me, how exactly is it meant? and can it still control a servo somehow?

-CProgrammer


Only if the servo moved very slowly (1Hz or less) and it's only 8bits of resolution so you wouldn't be able to control accurately at all or would have very little dynamic range.

20ms pulses are going to be too big to control a stepper motor. You need a hard-time system to control a stepper with very predictable and controlled pulse widths.

This board doesn't close the control loop, you'd have to do it in the software running on Windows, which is never a good idea for anything that needs to respond quickly. With an NT driver and a hardware sourced interrupt you can reduce the jitter to about 5us which is good enough for many stepper motor scenarios. How far does it move in 5us? versus 20ms? (400 times less frequently!)

The chip is probably capable of controlling a stepper motor or a servo (you could use both 8bit analog IOs to get one crude 16bit IO), but you have to write assembly code that executes on micro and configure parameters from Windows over the USB bus.

Share this post


Link to post
Share on other sites
Magmai: Ok let me get this straight. Your saying the 20ms are merely processing delay, so theoretically you can send an open and close command to the digital ouput with a width of 2ms. But this processing time is not very exact and since everything comes from the computer its even less exact. Which means you wont get good nough pulses.
I could do it by inserting some assembly code but even thats vage.
So using something like Infinisearch said. Where the chip tells another chip what pulses it should send is my best bet?

Basically now Im looking for a chip that can be connected to a digital out and can be told what kind of pulses it should send.

-CProgrammer

[Edited by - CProgrammer on August 5, 2004 4:19:09 AM]

Share this post


Link to post
Share on other sites
Are you trying to hook the servo up to the digtial outputs of that board or the analog? I was assuming you were going to use the digital out since you were taking about using pulses. The chip that i mentioned looking into in this link (http://www.doc.ic.ac.uk/~ih/teaching/smack/) is not to control the motor, it is to drive it. You would still control the pulses with the board you already have, but you would put this chip between your board and the servo so the board doesn't get damaged. This is under the assumption that the board is capable of sending out the pulses with the proper timing, but since i don't know what the 20ms refers to my advice to you is to get the chip mentioned in the above webpage, setup the circuit and just try it out.

Share this post


Link to post
Share on other sites
BTW I think the 20ms might be the latency from issuing the command in your program and it propagation through the OS, usb drivers, to the board, and finally if there is a microcontroller on the board through its local program. The main reason I think its latency is because the use of the word 'command'. Also IIRC USB 1.1's bandwidth amounts to approx 3-4 Mbs, so under the assumption that the 20ms is latency then you'll be able to send 3-4 M commands per second.

Share this post


Link to post
Share on other sites
I was thinking of using an atmel avr chip. Connecting that to my USB-Controller, writing a programm for the avr that contrls the servos and expects commands from the usb-chip.

If the 20 ms are latency then everything should be fine.
Perhaps its how I hooked up the servo.
How important is the Ground(GND)?
I atached the red cable to battery plus, black to battery minus and white to digital out.
Do I perhaps have to branch the black cable and insert one half into the GND?

-CProgrammer

Share this post


Link to post
Share on other sites
When I programmed my own servocontroller for a project in school, using a PIC-processor and an 'ordinary' servomotor, the servomotor 'wanted' a pulsewidth between 0.5ms (zero degrees) and 2.5ms (90 degrees) every 20ms (or 50 times a second). The pulsewidth can be calibrated but I'm pretty sure that those 20ms only is the time between the start (or end) for each pulse.
So it may ver well be that this is what they call the latency as the pulse only comes that often.
I hope that helped.

Share this post


Link to post
Share on other sites
Mutare: Im using the digital output. Hence the pulses are created by myself via code. Two calls, to set and clear the port and two Sleep calls.

Infinisearch: I modified the servo to attach to the GND.
Didnt help. I think its not possible because a windows programm cant get such an accuracy. I mean the OS has tons of apps running in the background, plus Im using c++ and the set and clear calls are from a dll that came with the chip.
Probably my approach to programm a avr chip with assembler that controls the servo and in turn is controlled via my chip would work better. What do you think?

-CProgrammer

Share this post


Link to post
Share on other sites
1. the servo only has 3 wires? If so do you mean a servo as in Radio Control car/plane/boat servo?
2. Please describe or post a diagram of the schematic/wiring diagram of your setup. A picture of the servo would be helpful as well.
3. Did you check the spec's of said servo in regards to voltage/current requirements? are you meeting them?

Share this post


Link to post
Share on other sites
yes three cables and yes usually used for modell planes or the likes.
heres a picture:


heres the product: The product number is: 225508 - 14
here

According to the specs I should be using 4.8 V I think. Im using 4.5 which I think should be fine.

Oh and I attahed another cable at half the blacks cable length and attached that to the GND.

-CProgrammer

[Edited by - CProgrammer on August 6, 2004 3:27:52 PM]

Share this post


Link to post
Share on other sites
Oh I thought you were refering to a stepper motor of some sort, not a servo from hobby RC'ing. In that case another quick google brings up this page:

http://www.pontech.com/products/sv200/

which indicate pulse width modulated control, for those servo's.

BTW your link for the servo site doesn't work i get some page about cookies in german and i have cookies enabled, so you might want to fix it or give a model number to search for.

Look at the following page (i googled 'control servo with computer') :

http://www.taniwha.com/~paul/fc/rcout.html

for an idea of interfacing the servo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this