This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Maximum sampling rate


Hi Gary,

I'm afraid I agree with you... I did not even thought about doing it "by
hand" since I will anyway have to reproduce it and have to be quite
independant of the processor clock (several-target-system!). My original
idea was to use an high-speed timer that would trigger interrupts, with
all the overhead involved, etc.

It is theoretically possible for sure but I am looking for real-world
information... even if I'm afraid I know the answer :-)

(just a precision - this operation will only have to take place from
time to time and will not last for long, so the issue is really about
feasability: it is acceptable to have only this running when it happens
!)

Thanks

VL

-----Original Message-----
From: Gary Thomas [mailto:gary@mlbassoc.com]
Sent: Tuesday, October 14, 2003 7:19 PM
To: Vincent Leclaire
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] Maximum sampling rate


On Tue, 2003-10-14 at 11:07, Vincent Leclaire wrote:
> Hi folks,
> 
> I have to design an application that will sample a given pin in order
to
> "reproduce" the recorded sequence. The signal might go up to 500KHz
> (sampling at 1MHz+), target is ARM7 100MHz clock (or more).
> 
> >From your experience, does this seem feasible safely ? What's the
best
> way to proceed (I will probably have to use some sort of
interrupt/timer
> so I'm talking about eCos relationship with interrupt handlers and the
> like) ?
> 

Is this some automatic sampling (i.e. triggered by an external clock or
timer), or must you do it "by hand?"  

If you have to do it manually, at these data rates, your processor 
won't be able to do much of anything except grab samples (one every 
2us).  I doubt that you could even write code which performs this
reliably:
  while (need_sample) {
    while (!sample_time) ;
    collect_sample()
  }
You might be able to use some sort of high speed timer to determine
"sample_time", but my guess is that you couldn't ask that question,
collect and store a piece of data and get around the loop again
fast enough (2us) to keep up.

-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]