<< Chapter < Page Chapter >> Page >
Using the MSP-EXP430FG4618 Development Tool and the MSP430FG4618 device analyse the MSP430’s performance when makes a multiplication operation with the hardware multiplier. It is performed a task operational analysis in which is calculated the active power and the RMS value of an electrical system. The execution time is measured with an oscilloscope.

Laboratory hardware multiplier: lab3 - rms and active power calculation

Introduction

This laboratory explores the hardware multiplier peripheral. It is composed of three different tasks, each of which evaluates a different characteristic of the hardware multiplier peripheral:

- Multiplication operation execution time, with and without the hardware multiplier.

-Differences between the use of the operator “*” and direct write to the hardware multiplier registers.

- Task operational analysis, in which the active power and the RMS value of an electrical system are calculated.

Overview

This laboratory explores and analyses the MSP430 performance when it makes multiply operations using the hardware multiplier peripheral. In this laboratory, the active power and the RMS value of an electrical signal are calculated.

The execution times are measured using an oscilloscope.

Resources

This laboratory only uses Port P2.1 connected to LED2, in order to measure the execution time of the multiply operation when it is performed by the hardware multiplier.

The application uses the default configuration of the FLL+. All the clock signals required for the operation of the components of the device take their default values.

Software application organization

- The application starts by stopping the Watchdog Timer;

- Two _NOP() instructions are provided to associate breakpoints, in order to read current and voltage samples ( N = 200 ) from files;

- Power is computed by applying the following formula:

P = 1 N k = 1 N u k i k size 12{P``=`` { {1} over {N} } Sum cSub { size 8{k`=`1} } cSup { size 8{N} } {u"" lSub { size 8{k} } `i"" lSub { size 8{k} } } } {}

- A signed multiply operation is performed by writing the first sample of current to MPYS and the first sample of voltage to OP2 ;

- The result of the multiplication is stored in the RESHI and RESLO registers;

- A loop is performed with a signed multiply and accumulate ( MACS ) operation;

- The final result is transferred from the RESHI and RESLO registers to the long variable result ;

- The power is computed by dividing the variable result by the number of samples (N);

- Port P2.1 is active between MACS operations;

- The RMS current and voltage values are calculated from the following expressions:

I RMS = 1 N k = 1 N i k i k size 12{I rSub { size 8{ ital "RMS"} } ``=`` sqrt { { {1} over {N} } Sum cSub { size 8{k`=`1} } cSup { size 8{N} } {i"" lSub { size 8{k} } `i"" lSub { size 8{k} } } ``} `} {}
U RMS = 1 N k = 1 N u k u k size 12{U rSub { size 8{ ital "RMS"} } ``=`` sqrt { { {1} over {N} } Sum cSub { size 8{k`=`1} } cSup { size 8{N} } {u"" lSub { size 8{k} } `u"" lSub { size 8{k} } } ``} `} {}

- The two procedures are similar, with the exception of the square root ( sqrt ) operations;

- P2.1 is active during for all the RMS current calculation;

- The computation times of the sqrt and division operations are determined when the RMS voltage value is calculated;

- This application ends by putting the device into low power mode LPM4.

System configuration

Go to Properties>TI Debug Settings and select the Target tab. Uncheck the automatically step over functions without debug information when source stepping in order to allow stepping into the multiply routine;

Go to Properties>C/C++ Build>Linker MSP430 Linker v3.0>General options and choose the option 16 (default) at the Link in hardware version of RTS mpy routine . With this linker option, the application ( Lab3_HM.c ) will be built with the 16-bit hardware multiplier peripheral contained in the Experimenter’s board.

Rebuild the project and download to the target.

Analysis of operation

Loading samples from files

- Insert a breakpoint at line of code 61 (first _NOP() operation);

- Edit Breakpoint Properties and choose the Read Data from file action;

- Configure the following data fields:

File: i.txt

Wrap around: True

Start address: &i

Length: 200

- Include a breakpoint at line of code 63 (second _NOP() operation);

- Edit Breakpoint Properties and choose the Read Data from file action;

- Configure the following data fields:

File: u.txt

Wrap around: True

Start address: &u

Length: 200

Computing active power

- Connect the oscilloscope probe to port P2.1, which is available at Header 4 pin 2;

- Put the cursor at the line of code 88 and Run to line ;

- In the Variables view, add the global variable P and format it to decimal;

- The active power is in the region of 1204 W;

- The pulse width, as viewed on the oscilloscope, corresponds to the time to perform the 200 signed multiply and accumulate operations and is 5.4 msec.

Compute rms current value

- Starting at the last step of the previous task, put the cursor at line of code 105 { MPYS = u[0] } and Run to line;

- Add the global variable I (RMS voltage);

- Set the value to 10;

- The pulse width, as viewed on the oscilloscope, corresponds to the time required to perform the 200 signed multiply and accumulate operations, 1 division operation and 1 square root operation, and is 12.6 msec;

Compute rms voltage value

- Starting at the last step of the previous task, put the cursor at line of code 121 { _BIS_SR(LPM4) } and Run to line ;

- Add the global variable U (RMS voltage);

- Set the value to 240;

- The pulse width, as viewed on the oscilloscope, corresponds to the time to perform the 200 signed multiply and accumulate operations, and is 6.8 msec;

This example and many others are available on the MSP430 Teaching ROM.

Request this ROM, and our other Teaching Materials here (External Link)

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials. OpenStax CNX. May 19, 2009 Download for free at http://cnx.org/content/col10706/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials' conversation and receive update notifications?

Ask