On Wed, Feb 2, 2011 at 4:09 PM, Gilles Chanteperdrix <
[email protected]> wrote:

> at91_enthus wrote:
> >
> >
> > On Wed, Feb 2, 2011 at 3:39 PM, Gilles Chanteperdrix
> > <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     at91_enthus wrote:
> >     > Hi.
> >     >
> >     > In order to get better accuracy with Xenomai, I modified the I-pipe
> >     > timebase (MCK divider) in arch/arm.mach-at91/at91_ipipe_time.c.
> >     > Unfortunately, I cannot mount the rootfs on the MMC, since the MMC
> >     > controller is no longer functioning. I tried to change TCx in
> kernel
> >     > configuration to no avail.
> >     > When I switch back to a timebase of 1 MHz, the MMC works fine.
> >
> >     The thing is that we are a bit tight on AT91. A 16 bits counter is
> used
> >     for both the timer and the tsc emulation, and this tsc must be
> refreshed
> >     at least once before it wraps. The problem is that since it is a 16
> bits
> >     counter, it wraps really fast, on my AT91SAM9263 it wraps in 20 ms,
> and
> >     since the Linux default period is 10ms we are actually quite close to
> >     the limit.
> >
> >     Anyway, trying to get a better accuracy than 1us is kind of useless
> on
> >     AT91, since even reading this counter takes more than 1us. So, you
> are
> >     not in fact improving anything. The 1MHz is even a bit overkill.
>
> On the other hand, the AT91SAM9G20 may be running at a better frequency.
> But with latencies in the order of tens of microseconds, having a better
> accuracy than 1us still does not make really much sense.




> Why do you need
> this accuracy?
>

I want to time stamp the samples from a 8 channel SPI-based ADC. I know that
a conversion takes between 3 and 5 microseconds depending on the SPI clock.
What I want is to adapt the code to acquire a fixed number of samples in
user space (I knew it was a long shot). Plain, Xenomai-free, userland
application was out of the question, so I figured that a userspace
application in Xenomai run at highest priority should do the trick.

On a second thought, a simple linux kernel module is what I want (this way I
can use interrupts and one of the platform's six timers).

R.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to