at91_enthus wrote:
> 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).

You can use interrupts and the platform's six timers in a Xenomai driver
based on the RTDM skin. The thing is, what interrupt latency is your target?

-- 
                                            Gilles.

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

Reply via email to