I'd suggest reading the MSP430 Family Guide which can be found on the ti.com website.  In the section on the ADC12, you will find the registers to setup sample timing through the use of the hardware timers.
 
Matt
[EMAIL PROTECTED] wrote: -----

To: "Cory Sharp" <[EMAIL PROTECTED]>
From: "jagan nath" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
Date: 05/18/2006 07:01AM
cc: tinyos-help@Millennium.Berkeley.EDU
Subject: Re: Fwd: [Tinyos-help] Maximum samplingrate with TimerJiffy.nc

1.Its working now with setPeriodic, but if I put my counter in event
ADC.dataready() , the sampling seems to have reduced again, is it
because of the ADC conversion time, that the task queue is
overflowing.( I dont know how to increase the task queue size)

2.How do i use the hardware timers to achieve the desired 3Khz
sampling, I have already tried TimerJiffy Async ( connecting it to a
copy of TimerJiffyAsyncC) but here again the timer is not firing. I
have read the mail archive and found all the free timers,

http://www.mail-archive.com/tinyos-help@millennium.berkeley.edu/msg00815.html

and tried all the timers but still i'm not able to make the
application work(ie the timer doesnt fire) may be somebody can help.

-jagan

On 5/18/06, Cory Sharp <[EMAIL PROTECTED]> wrote:
> For your particular benchmarks, use setPeriodic.  Timers fire through
> a task, which must wait to be executed in the task queue.  With
> setOneShot, you are accumulating error.  setPeriodic sets the alarms
> at periodic times from the previous alarm, giving only jitter with no
> accumulation.
>
> But for fast sampling, you should use hardware timers, which will fire
> through hardware interrupts and not tasks.  Make sure you're not using
> an already allocated timer.  Search the archives, I've posted it
> before.  Or, use Moteiv Boomerang, where you can allocate a unique,
> individual timer with the instantiation of a generic component.
>
> Cory
>
> On 5/17/06, jagan nath <[EMAIL PROTECTED]> wrote:
> > I have removed the counter from ADC.dataready and put it in the
> > TimerJiffy.fired(). Although the performance is not good but it has
> > certainly improved. This is what I got
> >
> > with TimerJiffy.setoneshot(1) - 2590 samples/sec (  cant actually call
> > them samples, it is actually these many times the timer has fired)
> >
> > with TimerJiffy.setOneshot(10) - 1920 samples/sec
> >
> > with TimerJiffy.setOneshot(20) - 1255 samp/sec
> >
> > with TimerJiffy.setOneshot(40) - 705 samp/sec (closest to accurate, 40
> > corresponds to 800 samples/sec)
> >
> > This shows that the ADC conversion is also adding to the delay of the
> > timer being fired.
> > All though i'm using ADC.setsamplingrate(). It doesnt look like the
> > sampling time has actually reduced.
> >
> > -jagan
> >
> > PS.I dont know how accurate is TimerJiffyAsync( this is used in CC2420
> > for initial/congestion backoff). i even tried to use this. I connected
> > this to a copy of TimerJiffyAsyncC(timer changed to B2/B0) but this is
> > not working the timer doesnt fire.Maybe i have done something
> > wrong.Not Sure.........
> >
> >
> >
> >
> > On 5/18/06, jagan nath <[EMAIL PROTECTED]> wrote:
> > > ok..
> > > Now I have tried with TimerMilli with a setOneshot(1) and I was
> > > getting a max of 660 samples/sec.Maybe I think I will increment the
> > > Samplecounter in the fired() event itself (as against incrementing it
> > > in the ADC.dataready().  just to see if ADC conversion is the
> > > bottleneck.
> > >
> > > jagan
> > >
> > > On 5/18/06, Michael Schippling <[EMAIL PROTECTED]> wrote:
> > > > Well, you should definitely call it AFTER all the component and
> > > > module inits and starts, otherwise the default will get reset.
> > > > And, as I said, I don't have any concrete knowledge that it actually
> > > > works the way it should. Maybe I should try it myself...
> > > >
> > > > MS
> > > >
> > > > jagan nath wrote:
> > > > > ---------- Forwarded message ----------
> > > > > From: jagan nath <[EMAIL PROTECTED]>
> > > > > Date: May 18, 2006 9:30 AM
> > > > > Subject: Re: [Tinyos-help] Maximum samplingrate with TimerJiffy.nc
> > > > > To: Michael Schippling <[EMAIL PROTECTED]>
> > > > >
> > > > >
> > > > > I didnt miss that, i have set the ADCControl.setSamplingRate(7500ns),
> > > > > only thing i m not sure is whether this command shud be called in
> > > > > stdcontrl.init/start,
> > > > > i have called it in stdcontrol.start(maybe i shud try it in init also)
> > > > >
> > > > > jagan
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On 5/18/06, Michael Schippling <[EMAIL PROTECTED]> wrote:
> > > > >> Everyone seems to be going on about this recently and I forget
> > > > >> to whom I have already responded with dubious advice...
> > > > >>
> > > > >> You need to set the ADC pre-scaler to something other than the
> > > > >> maximum, which is the default. ADCControl.setSamplingRate() is
> > > > >> supposed to do this, see tos/interfaces/ADCControl.nc for details.
> > > > >> However I've only heard of negative results so far.
> > > > >>
> > > > >> Have any of you lurkers actually used setSamplingRate() successfully?
> > > > >>
> > > > >> MS
> > > > >>
> > > > >>
> > > > >>
> > > > >> jagan nath wrote:
> > > > >> > Hello all,
> > > > >> > I'm using TimerJiffy.nc to sample the ADC0 pin for my application.I
> > > > >> > actually wanted to sample at 3Khz but the highest sampling rate i
> > > > >> > could achieve is not more than 1200 samples/sec.
> > > > >> >
> > > > >> > I'm calling TimerJiffy.setPeriodic(11); here 11  corresponds to
> > > > >> > 3Ksamples/sec(apprx).
> > > > >> > whenever the timer fires I'm call ADC.getdata() and in the event
> > > > >> > ADC.dataready() I'm incrementing a counter
> > > > >> > Now I'm using a normal timer which is set to fire at intervals of
> > > > >> > 10/20 secs and when this timer fires Im sending this counter value
> > > > >> > over the radio and receiving it with TOSBase.
> > > > >> >
> > > > >> > I then further reduced the value of Timerjiffy.setperiodic(5) .with
> > > > >> > this also i'm getting a max of 1200 samples/sec.
> > > > >> >
> > > > >> > Am I checking it correctly or is there any other method to achieve the
> > > > >> > 3Khz sampling rate.
> > > > >> >
> > > > >> > TIA
> > > > >> > Jagan
> > > > >> >
> > > > >> > _______________________________________________
> > > > >> > Tinyos-help mailing list
> > > > >> > Tinyos-help@Millennium.Berkeley.EDU
> > > > >> >
> > > > >> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> > > > >>
> > > > >
> > > > > _______________________________________________
> > > > > Tinyos-help mailing list
> > > > > Tinyos-help@Millennium.Berkeley.EDU
> > > > > https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> > > >
> > >
> >
> > _______________________________________________
> > Tinyos-help mailing list
> > Tinyos-help@Millennium.Berkeley.EDU
> > https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>

_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to