Hi,

Is it possible that while a packet is being received, another packet
arrives? How does CC2420X stack deal with this case? Thanks.

On Mon, Nov 19, 2012 at 10:45 AM, Janos Sallai
<janos.sal...@vanderbilt.edu>wrote:

> The two stacks differ in how the SFD interrupts are handled on the
> receiver, and in when the received packet is downloaded from the radio
> chip's FIFO. The default stack saves the SFD timestamp in a queue. After
> the SFD interrupt, the default stack waits until the entire packet is
> received into the radio chip's FIFO buffer. Only after the entire packet
> has been received does it start downloading it to a message_t structure in
> the MCU's RAM. When the download of the packet is complete and the CRC is
> OK, the corresponding timestamp is removed from the queue and placed in the
> metadata of the message_t structure. In the default stack, FIFO download of
> one packet may overlap with the reception of a subsequent packet. Of
> course, if something goes wrong during reception (e.g. length byte
> corrupted, bad CRC, etc.) the timestamp corresponding to the SFD event of
> that particular bad message must be discarded. This timestamp might not be
> at either end of the timestamp queue. Peope suspect that this what's done
> wrong in the CC2420 code, because the timestamp mixup only happens under
> heavy load, when the timestamp queue is "long".
>
> The CC282X stack, on the other hand, doesn't maintain a timestamp queue.
> If an SFD event occurs, it stays in interrupt context until the entire
> packet is downloaded from the radio chip's FIFO buffer. The bytes are
> downloaded as they are received (vs. the default stack, where the download
> starts after the entire packet is received). This way, if the message
> reception is complete, we can be sure that the correct timestamp is
> associated with the buffer.
>
> Janos
>
>
> On Sun, Nov 18, 2012 at 9:23 PM, Xiaohui Liu <xiao...@wayne.edu> wrote:
>
>> Hi,
>>
>> According to this 
>> figure<http://www.cs.wayne.edu/xliu/downloads/offset_vs_local_time.jpg>,
>> there is definitely some bug for timestamping in the default CC2420 radio
>> stack, especially under heavy load. Can you please tell me how timestamping
>> is done in CC2420X and how it avoids the potential bug CC2420 stack has?
>> Thanks.
>>
>>
>> On Thu, Nov 15, 2012 at 4:00 PM, Xiaohui Liu <xiao...@wayne.edu> wrote:
>>
>>> Thanks.
>>>
>>> Anyone else wants to share some experience implementing microsecond ftsp
>>> on TelosB?
>>>
>>> -Xiaohui Liu
>>>
>>> On Thu, Nov 15, 2012 at 3:49 PM, Janos Sallai <
>>> janos.sal...@vanderbilt.edu> wrote:
>>>
>>>> You will probably have to change the clock source (change T32khz to
>>>> TMicro). I'm not familiar with the code, so I can't tell you where this has
>>>> to be done in the code.
>>>>
>>>> Also, you'll have to prevent the MCU from sleeping, because the TMicro
>>>> clock stops when the mote goes to sleep.
>>>>
>>>> Janos
>>>>
>>>>
>>>> On Thu, Nov 15, 2012 at 2:39 PM, Xiaohui Liu <xiao...@wayne.edu> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Thanks again. Still one question in line.
>>>>>
>>>>> On Thu, Nov 15, 2012 at 3:35 PM, Janos Sallai <
>>>>> janos.sal...@vanderbilt.edu> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> > So essentially, ftsp only works with cc2420x stack, not cc2420.
>>>>>>  The cc2420 stack has a timestamping bug, so it won't work well.
>>>>>>
>>>>>> > What are the changes to the default cc2420 stack if the fix is to
>>>>>> be ported to it?
>>>>>> I can't tell that. I found the cc2420 stack to be very complicated.
>>>>>> Instead of trying to figure out how to fix the timestamping bug, I wrote 
>>>>>> a
>>>>>> complete new stack from scratch.
>>>>>>
>>>>>> > I find something under $TOSDIR/platforms/telosa/chips/cc2420x/ and
>>>>>> $TOSDIR/chips/cc2420x, but not sure which files to look at.
>>>>>> The file that contains the cc2420x timestamping implementation
>>>>>> is tos\chips\cc2420x\CC2420XDriverLayerP.nc.
>>>>>>
>>>>>>
>>>>>> > Provided that the fix solves the timestamping issue, what else has
>>>>>> to be changed to make microsecond ftsp work with cc2420 stack?
>>>>>>  If you can fix the timestamping issue on the cc2420 stack, then
>>>>>> FTSP should work correctly.
>>>>>>
>>>>> 32khz and millisecond ftsp should work. What about *microsecond*ftsp? 
>>>>> What changes are necessary?
>>>>>
>>>>>>
>>>>>>
>>>>> > BTW, can you please also help answer my previous 
>>>>> > question<http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2012-October/055927.html>
>>>>> >  related
>>>>>> to timestamping?
>>>>>> That question is related to the cc2420 stack, so I can't answer this.
>>>>>> I more than happy to answer questions related to the cc2420x stack, 
>>>>>> though.
>>>>>>
>>>>>> Janos
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Nov 15, 2012 at 2:12 PM, Xiaohui Liu <xiao...@wayne.edu>wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> So essentially, ftsp only works with cc2420x stack, not cc2420.
>>>>>>>
>>>>>>> What are the changes to the default cc2420 stack if the fix is to be
>>>>>>> ported to it? I find something under
>>>>>>> $TOSDIR/platforms/telosa/chips/cc2420x/ and $TOSDIR/chips/cc2420x, but 
>>>>>>> not
>>>>>>> sure which files to look at.
>>>>>>>
>>>>>>> Provided that the fix solves the timestamping issue, what else has
>>>>>>> to be changed to make microsecond ftsp work with cc2420 stack?
>>>>>>>
>>>>>>> BTW, can you please also help answer my previous 
>>>>>>> question<http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2012-October/055927.html>
>>>>>>>  related
>>>>>>> to timestamping?
>>>>>>>
>>>>>>> Your help is sincerely appreciated.
>>>>>>>
>>>>>>> -Xiaohui Liu
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Nov 15, 2012 at 2:12 PM, Janos Sallai <
>>>>>>> janos.sal...@vanderbilt.edu> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> There is weird bug in the timestamping code in the cc2420 stack.
>>>>>>>> Sometimes packets get timestamps that should be associated with a 
>>>>>>>> different
>>>>>>>> packet. A few people tried to fix it, yet unsiccessfully. That was the
>>>>>>>> primary reason why the cc2420x stack was created.
>>>>>>>>
>>>>>>>> Janos
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Nov 15, 2012 at 10:48 AM, Xiaohui Liu <xiao...@wayne.edu>wrote:
>>>>>>>>
>>>>>>>>> Hi everybody,
>>>>>>>>>
>>>>>>>>> I'm working on a TDMA protocol which requires high precision, even
>>>>>>>>> 32khz ftsp does not work for me. I can get microsecond precision if 
>>>>>>>>> cc2420x
>>>>>>>>> stack is used instead of the default cc2420 based on the discussions 
>>>>>>>>> like
>>>>>>>>> here<http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2011-April/050745.html>
>>>>>>>>>  and 
>>>>>>>>> here<http://ftsp%20microseconds%20synchronization%20usign%20telosb/>.
>>>>>>>>> However, there are many changes of the default cc2420 driver I made, 
>>>>>>>>> so
>>>>>>>>> it's much easier for me to stick to cc2420 than to apply all changes 
>>>>>>>>> to
>>>>>>>>> cc2420x. Is microsecond-level ftsp implemented on TelosB using default
>>>>>>>>> cc2420? If not, what changes are necessary to have it? Thanks for any 
>>>>>>>>> hint
>>>>>>>>> in advance.
>>>>>>>>>
>>>>>>>>> -Xiaohui Liu
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Tinyos-help mailing list
>>>>>>>>> Tinyos-help@millennium.berkeley.edu
>>>>>>>>>
>>>>>>>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to