Im trying to learn how to use the pulse width modulation feature of
the MC9S12DP256C by using it to control a simple futaba servo motor.
however I cant seem to get any movement out of it and im not exactly
sure why. I have the white command wire conencted to PortP0 and code
as followed:
$HC12
ORG $0D00
PWEN: equ $0042 ; PWM enable register
PWPER0: equ $004C ; PWM period channel for channel 0
PWCLK: equ $0040 ; PWM clocks and concatenate
PWDTY0: equ $0050 ; PWM duty cycle for channel 1
PWPOL: equ $0041 ; PWM clock select and polarity
PWSCAL0:equ $0044 ; PWM Scale register 0
PWCTL: equ $0054 ; PWM control register
org $08FA
MOVB #$00,PWCTL ; Left aligned pulses
MOVB #$00,PWCLK ; Do not Concate
MOVB #$11,PWPOL ; S0 is the source clock for ch1
MOVB #$F0,PWSCAL0 ; Set up an initial frequency
MOVB #$0F,PWEN ; Enable PWM
MOVB #$A5,PWPER0 ; Set channel 0 period
return: MOVB #$10,PWDTY0 ; right turn
jsr delay ; go to delay
MOVB #$18,PWDTY0 ; straight ahead
jsr delay
bra return ; start again
delay: ldx #$07FF ; x count
decrx: dex ; decrement x
ldy #$0FFF ; y count
decry: dey ; decrement y
cpy #$00 ; end of inner loop?
bne decry ; no, decrement y again
cpx #$00 ; end of outer loop?
bne decrx ; no, decrement x again
rts ; end delay
Any help is greatly appreciated
Thanks
Marc
Reply by Jefferson Smith●February 1, 20072007-02-01
--- In 6..., "Marc La***rt" wrote: > Im trying to learn how to use the pulse width
modulation feature of
> the MC9S12DP256C by using it to control a simple futaba servo motor.
> however I cant seem to get any movement out of it and im not exactly
> sure why. I have the white command wire conencted to PortP0 and code
> as followed:
Hint #1; Either use a scope or LED in place of the servo (white wire)
to "see" what the P0 output is doing. That helps eliminate some
possible hardware problems until the software is working.
Reply by Jefferson Smith●February 1, 20072007-02-01
--- In 6..., "Marc La***rt" wrote: > Im trying to learn how to use the pulse width
modulation feature of
> the MC9S12DP256C by using it to control a simple futaba servo motor.
These are the questions I come up with:
How are you telling the MCU to start at $08FA?
What is your bus speed and how did you verify it?
Did you calculate the pulse width you are applying to make sure it's
in range [1 mS to 2 mS]? Also rising edges should be at least 15 mS
apart. You don't even mention what you think any of the timing is.
Reply by theobee00●February 6, 20072007-02-06
--- In 6..., "Jefferson Smith" wrote: >
> --- In 6..., "Marc La***rt" wrote:
> > Im trying to learn how to use the pulse width modulation feature of
> > the MC9S12DP256C by using it to control a simple futaba servo motor.
> > however I cant seem to get any movement out of it and im not exactly
> > sure why. I have the white command wire conencted to PortP0 and code
> > as followed:
>
> Hint #1; Either use a scope or LED in place of the servo (white wire)
> to "see" what the P0 output is doing. That helps eliminate some
> possible hardware problems until the software is working.
For scopeless students it is possible to use a voltmeter.
Depending on type and settings it can measure average, peak or RMS.
Apart from peak measurement they can asses if the software doeas
actuallty vary the output.
For the really poor students at five volts they can use a led or the
tongue, crative is the key.
Cheers,
Theo
Reply by Anders Friberg●February 6, 20072007-02-06
I have had some use for a small earphone with small alligator clips, nice to
get a quick indication of any activity on e.g pwm signals, RS-232
communication links etc.
If you are a musician you should (with some practice) be able to get extra
information like baud rate etc :)
Anders > -----Original Message-----
> From: 6... [mailto:6...]
> On Behalf Of theobee00
> Sent: Tuesday, February 06, 2007 5:43 AM
> To: 6...
> Subject: [68HC12] Re: Controlling a servo motor with PWM
>
> --- In 6..., "Jefferson Smith"
> wrote:
> >
> > --- In 6..., "Marc La***rt" wrote:
> > > Im trying to learn how to use the pulse width modulation
> feature of
> > > the MC9S12DP256C by using it to control a simple futaba
> servo motor.
> > > however I cant seem to get any movement out of it and im
> not exactly
> > > sure why. I have the white command wire conencted to
> PortP0 and code
> > > as followed:
> >
> > Hint #1; Either use a scope or LED in place of the servo
> (white wire)
> > to "see" what the P0 output is doing. That helps eliminate some
> > possible hardware problems until the software is working.
>
> For scopeless students it is possible to use a voltmeter.
>
> Depending on type and settings it can measure average, peak or RMS.
>
> Apart from peak measurement they can asses if the software doeas
> actuallty vary the output.
>
> For the really poor students at five volts they can use a led or the
> tongue, crative is the key.
>
> Cheers,
>
> Theo
>
> Yahoo! Groups Links
>
Reply by "Heimes, Horst-Peter"●February 6, 20072007-02-06
check the following:
1-is the polarity of the Pulses correct, e.g. is the (center) 1.5 ms pulse
negativ or positive?
2-is the repetition-rate correct (about 20 ms pause, 1.5 ms Puls)
3-when you use the proposed earphone, you are able to determine if the pulses
are positive /negative
peter heimes
MEDOS AG
-----Ursprgliche Nachricht-----
Von: 6... [mailto:6...]Im Auftrag von Marc La***rt
Gesendet: Donnerstag, 1. Februar 2007 01:53
An: 6...
Betreff: [SPAM] - [68HC12] Controlling a servo motor with PWM - Der
Bayes'sche Filter hat eine Spam-Mitteilung entdeckt.
Hello,
Im trying to learn how to use the pulse width modulation feature of
the MC9S12DP256C by using it to control a simple futaba servo motor.
however I cant seem to get any movement out of it and im not exactly
sure why. I have the white command wire conencted to PortP0 and code
as followed:
$HC12
ORG $0D00
PWEN: equ $0042 ; PWM enable register
PWPER0: equ $004C ; PWM period channel for channel 0
PWCLK: equ $0040 ; PWM clocks and concatenate
PWDTY0: equ $0050 ; PWM duty cycle for channel 1
PWPOL: equ $0041 ; PWM clock select and polarity
PWSCAL0:equ $0044 ; PWM Scale register 0
PWCTL: equ $0054 ; PWM control register
org $08FA
MOVB #$00,PWCTL ; Left aligned pulses
MOVB #$00,PWCLK ; Do not Concate
MOVB #$11,PWPOL ; S0 is the source clock for ch1
MOVB #$F0,PWSCAL0 ; Set up an initial frequency
MOVB #$0F,PWEN ; Enable PWM
MOVB #$A5,PWPER0 ; Set channel 0 period
return: MOVB #$10,PWDTY0 ; right turn
jsr delay ; go to delay
MOVB #$18,PWDTY0 ; straight ahead
jsr delay
bra return ; start again
delay: ldx #$07FF ; x count
decrx: dex ; decrement x
ldy #$0FFF ; y count
decry: dey ; decrement y
cpy #$00 ; end of inner loop?
bne decry ; no, decrement y again
cpx #$00 ; end of outer loop?
bne decrx ; no, decrement x again
rts ; end delay
Any help is greatly appreciated
Thanks
Marc
Reply by theobee00●February 7, 20072007-02-07
--- In 6..., "Anders Friberg" wrote:
> I have had some use for a small earphone with small
alligator clips, nice to
> get a quick indication of any activity on e.g pwm signals, RS-232
> communication links etc.
>
> If you are a musician you should (with some practice) be able to get extra
> information like baud rate etc :)
Good stuff, I forgot about that one, although square waves are not very
compatible with music:-)
Somewhere in my misspent youth, when I was building gadgets instead of chasing
the girls like I should have, I made a probe type thingy.
It consisted of a high gain adjustable amp and a rectifier along the way,
wonderful to probe inside radios and amplifiers, you could pick of signals from
the antenna right through to the speaker outputs.
Ears are much neglected when it comes to trouble shooting, they really are
amazingly good at picking up a signal out of a multitude of others.
Probably less good with the higher frequencys of micros, but next time I need to
do some radiation testing I will give it a go and see if it is any good at
localisng RF noise.
Thanks for the reminder.
Cheers,
Theo
>
> > -----Original Message-----
> > From: 6... [mailto:6...]
> > On Behalf Of theobee00
> > Sent: Tuesday, February 06, 2007 5:43 AM
> > To: 6...
> > Subject: [68HC12] Re: Controlling a servo motor with PWM
> >
> > --- In 6..., "Jefferson Smith"
> > wrote:
> > >
> > > --- In 6..., "Marc La***rt" wrote:
> > > > Im trying to learn how to use the pulse width modulation
> > feature of
> > > > the MC9S12DP256C by using it to control a simple futaba
> > servo motor.
> > > > however I cant seem to get any movement out of it and im
> > not exactly
> > > > sure why. I have the white command wire conencted to
> > PortP0 and code
> > > > as followed:
> > >
> > > Hint #1; Either use a scope or LED in place of the servo
> > (white wire)
> > > to "see" what the P0 output is doing. That helps eliminate some
> > > possible hardware problems until the software is working.
> >
> > For scopeless students it is possible to use a voltmeter.
> >
> > Depending on type and settings it can measure average, peak or RMS.
> >
> > Apart from peak measurement they can asses if the software doeas
> > actuallty vary the output.
> >
> > For the really poor students at five volts they can use a led or the
> > tongue, crative is the key.
> >
> > Cheers,
> >
> > Theo
> >
> >
> >
> >
> >
> > Yahoo! Groups Links
> >
> >
>