uracoli-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [uracoli-devel] radio_set_state(): how long to wait?


From: Axel Wachtler
Subject: Re: [uracoli-devel] radio_set_state(): how long to wait?
Date: Sat, 28 Nov 2009 13:12:29 +0100

Am Freitag, 27. November 2009 23:54:28 schrieb Joerg Wunsch:
>
> Note the @todo (I'm working in 868 MHz where things are slow), but the
> key point here is: this is a TX_ARET transaction, which can take
> *much* longer to complete (in particular in case of a busy channel, or
> a peer that doesn't respond at the first attempt).

Generally the huge waiting times for low data rates are the issue. 
The Symbol time in BPSK20 is 50us where 8 Symbols are used to transfer one 
byte, which means 400us for one byte, while OQPSK250 needs 32us to transfer
1 byte.

So waiting up to several x ms until any pending RX or TX operation finishes 
will eat up the whole CPU time. 

One idea to this issue is, to add a "bool force_change" parameter to 
radio_set_state(), which does FORCE_TRX_OFF before a state change and 
guarantees to be in the desired sate, when the function exits (if 
force_change = true). 

For a non-forced operation radio_set_state() should initialize the transaction
by writing the command word to the TRX_STATE register and return 
STATE_CHANGE_IN_PROGRESS.

radio_set_state() should also be acompanied by a function 
radio_verify_state(), the verification should be done against a global 
variable exp_state which is set in radio_set_state().

Two questions now arises:
 - How do deal with radio_set_state(SLEEP, 0); ?
 - Does  an awake state change should wait until TRX_OFF is reached?


Cheers, Axel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]