Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

Current consumption optimalization on MSP430 5x

$
0
0

Scenario: Wireless sensor network, battery driven (2 AA batteries) EDs, AP driven by external power source. The EDs send messages to the AP at fixed intervals, the message content consists of the keyword "true", i.e. the message is very short. 

Main concern: Low power consumption.

I would like some advice on how to achieve minimal power consumption, however, I realize that this is a vague and/or very large topic so I'm going to try to pose more specific questions:

My setup: TrxEB  rev 1.7 with a MSP430F5438A and CC1120 rev 1.1 as radio. The communication protocol is SimpliciTI.

1. I'm using a timer with ACLK and VLOCLK (which runs at 9.4kHz) as source to wake up the ED from LPM3 to send the message (I'm also considering using the watchdogtimer to fire an interrupt so the ED can wake up from LPM4). However, in active mode, the ED is using MCLK right? Slowing MCLK  should reduce power consumption, but might also increases active duty cycle. Obviously there's a trade off here. After some research I've came up with the number 8 MHz for MCLK. Does this seem like a reasonable number? Also, from what I've read this appears to be the default Hz value which MCLK is initialized to, is this correct?

2. The PMM allows for the V_CORE to be set to 4 different levels with the PMMCOREV bits, is it advisable to set PMMCOREV &= 0x00; in my main work loop so as to restrict the DVCC to 1.8V and thereby save power? Or is this somehow taken care of automatically?

3. I've come across some advice that suggests initializing the GPIO pins a certain way so as to minimize current consumption since they apparently experience shoot-through current. This, however, is a subject I have no knowledge of. What is seems like to me is that you enable I/O functionality on every pin that offers a choice between I/O or peripheral functionality with PxSEL = 0, set every pin to output mode with PxDIR = 1, and then finally set every pin to low by PxOUT = 0. Should I do this manually in my main function or exist there an already predefined function, invoked by BSP_Init() for example?

This ended up as a long post so feel free to answer only a selection (or none) of the questions, any help is greatly appreciated :)


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>