On 6/16/06, Roman Lim <[EMAIL PROTECTED]> wrote:
Hello

I noticed that the calculated lowpowermode in McuSleepC.nc is 1, when
there is a initiated radio (via ActiveMessageC), even when the radio is
in stopped  state.
Responsible for this is the following line in McuSleepC.nc
(getPowerState()):
    ((ME1 & (UTXE0 | URXE0)) && (U0TCTL & SSEL1))

Is it necessary to keep the uart running when the radio is set to sleep
mode?
I tried to force the OS to go to lowpower mode 3, even if the uart0 is
configured for radio. In this setup it was no problem to stop and start
the CC2420 and send packets.

Before the MCU can go to LPM3, the USART needs to be disabled. This should be done by the implicit power manager (TEP 115) using AsyncStdControl of the HplMsp430UsartxP.nc once all the clients release the USART. So, as long as the CC2420 code releases the resource before going into stop mode, the getPowerState() should work OK. Don't be confused by the UTXE0 and URXE0 names in the check. URXE0 is the same location as USPIE0 so the check covers potential use of SMCLK both in Uart and Spi mode.

Vlado
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to