This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Servo Control Problems on the ARM AEB1
- To: louis l legrand <legrand at u dot washington dot edu>
- Subject: [ECOS] Re: Servo Control Problems on the ARM AEB1
- From: Jonathan Larmour <jlarmour at redhat dot com>
- Date: Wed, 30 Aug 2000 23:50:25 +0100
- CC: ecos-discuss at sources dot redhat dot com
- Organization: Red Hat UK Ltd.
- References: <Pine.A41.4.21.0008281259090.142798-200000@dante01.u.washington.edu>
louis l legrand wrote:
[ AEB interrupt jitter ]
> The question is, what is causing the jitter? Even though there is no
> jitter at 50.00 and 48.00 Hz, I am uncomfortable using these settings
> without understanding why the jitter occurs at the other settings. I
> don't want this to be a problem later. The jitter direction indicates
> that the PWM pulse is erroneously staying on too long, which suggests that
> the timer interrupt latency is inconsistent. Is it possible that there is
> some hidden process, which periodically out prioritizes the timer
> interrupt? I believe I have set the interrupt priorities as high as
> possible. Is there any way to up their priorities even more?
>
> Things I have tried:
>
> To verify that the jitter isn't caused by the sevo itself, I used the
> hardware PWM to drive the servo at frequencies where the software PWM
> causes a jitter. The hardare PWM causes no jitter, ever.
>
> Played with the interrupt priorities. No change for any of the many
> combinations I tried.
Well, some other interrupt would certainly be my guess. For those symptoms
it could only really mean something disabling interrupts for a while -
which in a simple system like this would presumably only be other
interrupts.
The only other candidate I can think of is the real-time clock interrupt (
CYGNUM_HAL_INTERRUPT_TIMER0 ) - even though that hardly does anything in
its ISR. But still it may be all it takes.
To find out, disable the CYGVAR_KERNEL_COUNTERS_CLOCK config option
temporarily (or just edit kernel/VERSION/src/common/clock.cxx at
Cyg_RealTimeClock::Cyg_RealTimeClock(), and comment out the
interrupt.unmask_interrupt() call).
Jifl
--
Red Hat, 35 Cambridge Place, Cambridge, UK. CB2 1NS Tel: +44 (1223) 728762
"Plan to be spontaneous tomorrow." || These opinions are all my own fault