On 4/28/06, cunningfellow <
andrewm1973@...> wrote:
> So far I have built a text-book 4046 PLL
> multiplier. This has been hooked up to a
> servo motor I scavanged from something.
My, what a lot of circuitry :-)
If you are going to use a 16MHz ATMega, you don't need the analog PLL
or XOR gates. Just pipe the encoder signals into the processor's
digital input ports.
You don't need the motor control chip either. Take a PWM output and
run it into an RC (low pass filter), so with 50% duty cycle you get
2.5V with say .1V sawtooth ripple. Compare that with the voltage
across the motor, lowpass filtered. Use the comparator output to
drive a high-side switch (PFET) to drive the motor.
The ATMega even has an analog comparator on-chip that you might be
able to use, but I think that might be taking things too far, and
there might be performance problems.
> Unfortunatly the encoder wheel on the servo
> does not have an index mark - so I will have
> to scavange another one from somewhere.
If you can keep an accurate count of the encoder pulses, you don't
need a super-accurate index pulse. In fact you don't need an index
pulse at all, if you are willing to set the cylinder at the "zero"
position manually before starting the cylinder motor.
If you do want an index pulse, you could use the laser to supply the light...
Now you know why they put microcontrollers in toasters - saves a bunch
of other parts :-)
> There is going to be another Atmel sitting on
> the end of a UART. You will simply X-Modem a
> BMP file to it and like magic it should come
> out the laser.
>
> I think this should be easy in assembly laguage
> using the IN and POP instructions.
>
> Main_Routine:
> IN Accumulator_A, XMODEM_Data
> POP That_Data_Out_The_Laser
>
> As long as I can get that to assemble in AVR
> studio the project should be finished tomorrow.
You just need a couple more lines of code to input the encoder lines
and control the PWM duty cycle.
Cheers,
- Jan