Gilles Chanteperdrix wrote:
> 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 numb

er 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 doand 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?
> 

To make myself clear:
you got:
- the AD conversion (amounts for an unknown amount of time between 3 and
5us)
- the SPI interrupt
- some unknown interrupt latency which amouunts to several tens of
microseconds with Xenomai, and to a few hundreds of microseconds with Linux.
- the interrupt handler is invoked.

What good will it make to have a timestamping precision with a
sub-microsecond range in the interrupt handler code?

-- 
                                            Gilles.

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

Reply via email to