Wednesday, March 11, 2009

User Guide

Thanks, that helps. One thought - is there a compiler feature that can tell the user what clocks will be active with the program he has written and what current consumption he can expect? Users, like me, who are novices are more interested in creating apps than in optimizing them. Later, when we start thinking about optimization, we would want to know where the ducks are to shoot. Such a feature in the compiler might make the MSP430 more marketable. It might already exist.

Replying to:

Execution will suspend immediately. Code execution will pickup immediately after the device is awakened. So the lines of code will execute after the device wakes back up. The operating modes are described in Chapter 2 of the Family User s Guide. You can download this from the following link:

http://focus.ti.com/mcu/docs/mcuprodtechdoc.tsp?sectionId=95&tabId=1201&familyId=342&techDoc=6&documentCategoryId=6

Please let me know if you need further assistance.

Regards,

If you have further questions please reply to this email. And see the MCU Knowledge Base located at http://www-k.ext.ti.com/sc/technical-support/mcu-kbase

-----Original Message-----
Sent: 3/9/2009 05:45:43 PM
To: support@ti.com
Subject: eZ430-RF2500 demo app question


I am using this product from TI. My question is about the MSP430. What happens when the following line is encountered by the execution unit?
__bis_SR_register(LPM3_bits+GIE); // LPM3 with interrupts enabled

does it suspend operation immediately and go into a low power mode or does it finish execution of the current program before going into LPM3?

If it suspends execution immediately, how does it make sense to suspend execution during a program containing :

SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, "" );
__bis_SR_register(LPM3_bits+GIE); // LPM3 with interrupts enabled
SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_AWAKE, "" );

or even :

while (SMPL_SUCCESS != SMPL_Link(&linkID1))
{
__bis_SR_register(LPM3_bits + GIE); // LPM3 with interrupts enabled
BSP_TOGGLE_LED1();
BSP_TOGGLE_LED2();
}

In these examples, we say go into LPM3 and then we ask it to do other things. Does execution of the program pick up where it left off? Is there an online location I can find answers to such questions?

Monday, March 9, 2009

Surprise! P1DIR and Port_1 ISR

You can't use the push button on P1.2 of the eZ430-RF2500 to generate an interrupt if you have bit 2 of P1DIR set. Nice.

And, BSP_init() - though supposedly a utility, will mess this up. So watch out.

Sunday, March 1, 2009

Stage 3 - Day 2 ATR

Okay, the documentation is horrendous, but, still, kudos to the TI team for atleast putting something together that works. I think they have what it takes to send TXN soaring. But, it'll have to be a team effort.

In the demo app for the eZ430-RF2500, they're using a timer interrupt to wake the chip up and run the join-network, etc. Okay, figured that part out. Also, there's a lot of undocumented stuff scattered around like

__bis_SR_register(LPM3_bits + GIE); // LPM3 with interrupts enabled

without it being really easy to find out what the effect of this will be. Now, if they had a PDF of the source code with hyperlinks... ummm.