0% found this document useful (0 votes)
5 views

Week2.2_hacettepe_introduction

Uploaded by

Sedat
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Week2.2_hacettepe_introduction

Uploaded by

Sedat
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

MSP430 Teaching Materials

Introductory Overview
Week2

Hacettepe University

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved

www.msp430.ubi.pt
Embedded System

An embedded system is an application


that contains at least one
programmable computer (typically in
the form of a microcontroller, a
microprocessor or digital signal
processor chip) and which is used by
individuals who are mostly even
unaware that the system is computer
based

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
2
Typical Applications

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
3
Analogue and Digital Signals (1/5)

 In nature, any measurable quantity in time or in space


can be considered a signal;
 Example: The velocity of a body, as function of time or as
function of position, can be represented by a signal.

 Analogue signal can:


 Represent every value possible;
 Swing through a “continuum” of values;
 Provide information at every instant of time.

 A digital signal assumes only a finite number of values at


only specific points in time.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
4
Analogue and Digital Signals (2/5)

 Example: analogue signal:

1.8

1.6

1.4

1.2
x(t)

0.8

0.6

0.4

0.2

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
t
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
5
Analogue and Digital Signals (3/5)

 Example: discrete analogue signal:


 This analogue signal can be discretized in time, using a
sampling period, T:
2

1.8

1.6

1.4

1.2
x(n)

0.8

0.6

0.4

0.2

0
0 10 20 30 40 50 60 70 80
n

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
6
Analogue and Digital Signals (4/5)

 The information contained in the signal only can be used


by a computer if an amplitude conversion from the
analogue domain to the digital domains is performed;

 Digital signal:
 Rounds off all values to a certain precision or a certain
number of digits.

 Digital signal advantage:


 Easiness of data storage and manipulation.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
7
Analogue and Digital Signals (5/5)

 Example: quantized digital signal:


 Result of the analogue signal conversion, performed by a
12-bit Analogue-to-Digital Converter (ADC) with 2.5 V full-
scale: 3500
3000

2500

2000
x[n]

1500

1000

500

0
0 10 20 30 40 50 60 70 80
n
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
8
How to Read Datasheets (1/6)

 Manufacturers of electronic components provide


datasheets containing the specifications detailing the
part/device characteristics;

 Datasheets give the electrical characteristics of the


device and the pin-out functions, but without detailing
the internal operation;

 More complex devices are provided with documents that


aid the development of applications, such as:
 Application notes;
 User's guides;
 Designer's guides;
 Package drawings, etc…

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
9
How to Read Datasheets (2/6)

 Datasheets include information:


 Concerning the part number of the device or device series;

 Electrical characteristics:
• Maximum and minimum operating voltages;
• Operating temperature range e.g. 0 to 70 degrees C;
• Output drive capacity for each output pin, as well as an
overall limit for the entire chip;
• Clock frequencies;
• Pin out electrical characteristics (capacitance, inductance,
resistance);
• Noise tolerance or the noise generated by the device
itself;
• Physical tolerances…
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
10
How to Read Datasheets (3/6)

 MSP430 device datasheet:


 Device has a large number of peripherals;
 Each input/output pin usually has more than one function;
 It has a table with the description of each pin function;
 Example, Pin number 2 = P6.3/A3;
• Digital Input/Output Port 6 bit 3;
• 3rd analogue input.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
11
How to Read Datasheets (4/6)

 MSP430 User’s Guide:


 Most peripherals are represented by Block Diagrams.

 Example: Part of the MSP430F44x clock module block


diagram:

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
12
How to Read Datasheets (5/6)

 MSP430 User’s Guide:


 Example: Part of the MSP430F44x clock module block
diagram: Detail SELMx;

 Multiplexed block: (4 inputs and 1 output):


• SELMx = 00: Output routed from the first input to the
multiplexer output;
• SELMx = 01: Output routed from the second one and so
on;
• SELMx is a 2-bit mnemonic: SELM1 (MSB), SELM0 (LSB).

 To use the peripheral, it is necessary to find out how the


register(s) need to be configured:
• SELMx is in the FLL_CTL1 register.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
13
How to Read Datasheets (6/6)

 MSP430 User’s Guide:


 SELMx are the 3rd and 4th bits of FLL_CTL1 control register.
FLL_CTL1, FLL+ control register 1
7 6 5 4 3 2 1 0
- SMCLKOFF XT2OFF SELMx SELS FLL_DIVx
Bit Description
6 SMCLKOFF Disable the submain clock signal (SMCLK):
SMCLKOFF = 0  SMCLK active
SMCLKOFF = 1  SMCLK inactive
5 XT2OFF Disable the second crystal oscillator (XT2):
XT2OFF = 0  XT2 active
XT2OFF = 1  XT2 inactive
4-3 SELMx Select the master clock (MCLK) source:
SELM1 SELM0 = 0 0  DCO
SELM1 SELM0 = 0 1  DCO
SELM1 SELM0 = 1 0  XT2
SELM1 SELM0 = 1 1  LFXT1
2 SELS Select the submain clock (SMCLK) source:
SELS = 0  DCO
SELS = 1  XT2
1-0 FLL_DIVx Select the auxiliary clock (ACLK) signal divider:
FLL_DIV_0 = 0 0  Divider factor: /1
FLL_DIV_1 = 0 1  Divider factor: /2
FLL_DIV_2 = 1 0  Divider factor: /4
FLL_DIV_3 = 1 1  Divider factor: /8
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
14
C as an embedded programming
language
Computers (such as microcontroller,
microprocessor or DSP chips) only
accept instructions in ‘machine code’
(‘object code’). Machine code is, by
definition, in the language of the
computer, rather than that of the
programmer. Interpretation of the
code by the programmer is difficult
and error prone.
All software, whether in assembly, C,
C++, Java must ultimately be
translated into machine code in order
to be executed by the computer.
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
15
 There is no point in creating ‘perfect’ source
code, if we then make use of a poor translator
program (such as an assembler or compiler)
and thereby generate executable code that
does not operate as we intended.
 Embedded processors – like the msp430 –
have limited processor power and very limited
memory available: the language used must
be efficient.
 To program embedded systems, we need
low-level access to the hardware: this means, at
least, being able to read from and write to
particular memory locations (using
‘pointers’ or an equivalent mechanism).

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
16
Using C as language

 It is ‘mid-level’, with ‘high-level’ features (such


as support for functions and modules), and
‘low-level’ features (such as good access to
hardware via pointers).
 It is efficient.
 It is popular and well understood.
 Even desktop developers who have used only
Java or C++ can soon understand C syntax.
 Good, well-proven compilers are available for
every embedded processor (8-bit to 32-bit or
more).
 Experienced staff are already available.
 Books, training courses, code samples and Web
sites are all widely available.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
17
Programming Issues (1/14)

 C programming language:
 C is an algorithmic language;

 C was developed for operating systems;

 It is based on expressions;

 An expression can be the result of an operation or a


function;

 The program flow control is achieved using a set of


appropriate structures that enable the choice, based on a
logic operation, of the sequence of operations to be
performed by the CPU;

 These structures allow cyclic execution of expressions that


compose a block of program.
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
18
Programming Issues (2/14)

 Programming styles:
 The style used in writing the code constrains the ease with
which the program can be read, interpreted or redeployed;

 The maintenance of the written source code, when


adhering to a coding standard is easy to interpret, maintain
and change;

 Programmers can develop their own programming style.


However, for team work, they must meet a set of rules
that provide uniformity to allow easy interpretation of the
code by all team members;

 A set of typical rules for a programming “house style” are


given.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
19
Programming Issues (3/14)

 Programming styles: Variables definitions conventions:

 Data types names: Start with a capital letter:


Line or AverageVelocity.

 Variable names: Start with a letter and should avoid


abbreviated names or the use of ambiguous names:
line, averageVelocity.

 The variables should be initialized when they are declared;

 The use of global variables should be avoided


(permanently use memory, but can make execution
faster);

 Use local variables whenever possible (used memory freed


up after use);
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
20
Programming Issues (4/14)

 Programming styles: Variables definitions conventions:

 Iterative control operation variables are identified as:


i, j, k.

 Constants: All in capital letters:


RED, GREEN, BLUE, WHITE.

 Functions: use verbs and always start with a small letter:


calculateVelocity( ) or activateOutput( ).

 Blocks of code must be grouped and separated from each


other by one or more blank spaces.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
21
Programming Issues (5/14)

 Programming styles: Indentation


 The program blocks should be aligned using indentation to
highlight them:

Code with indentation:


P3OUT |= 0x04;
while(1){
if(!CMBufIsEmpty()){//polling the command
//receiver buffer
cmd = CMGetComand();
//get the new command
ACStop(); //stops be action being executed
switch (cmd){
case DEMO1: //demo1 procedure
...

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
22
Programming Issues (6/14)

 Programming styles: Operators

 Separated by blank spaces in order to significantly improve


their readability;

 Words reserved from C programming language must be


followed by a blank space;

 A blank space should be used whenever commas, semi-


colon, or colons are used.

 Example:
a = (4 + c) * 2; // NOT: a=(4+c)*2

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
23
Programming Issues (7/14)

 Programming styles: Comments

 Source code should have additional information provided in


the form of comments so it can be clearly interpreted;

 Comment in a code line: Double diagonal ( // );

 Block of comments: Starts with ( /* ) and ends with ( */ );

 Example:
/* The source code should be written in such a way
that enough information is provided for the reader
to fully understand the function of the code */
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
24
Programming Issues (8/14)

 Data declaration:

 Variables can be integer or real;

 The null type (void) is reserved to indicate that a function


does not return any parameter;

 Integer data type can represent integer numbers (int),


signed or unsigned;

 Values are represented in two’s complement (except


unsigned types);

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
25
Programming Issues (9/14)

 Data declaration:

 Real type numbers are represented by a format (float),


which allows any fractional number to be represented;

 Allows the use of modifiers to change the types of


represented data:
• short: to reduce the range of representation of the
variable type;
• long: to increase the range of representation of the
variable type;
• signed: to specify the signed representation of the
variable type;
• unsigned: to specify the representation of positive
numbers only.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
26
Programming Issues (10/14)

 C data types (data structure depends on the C compiler's


implementation: CCE and IAR for MSP430):
Type Size Representation Range values
[bits]
Minimum Maximum
signed char 8 ASCII -128 127
char, unsigned char 8 ASCII 0 255
short, signed short 16 2’s complement -32768 32767
unsigned short 16 Binary 0 65535
int, signed int 16 2’s complement -32768 32767
unsigned int 16 Binary 0 65535
long, signed long 32 2’s complement -2147483648 2147483647
unsigned long 32 Binary 0 4294967295
float 32 IEEE 32-bit 1.175495e-38 3.40282346e+38
double 32 IEEE 32-bit 1.175495e-38 3.40282346e+38
long double 32 IEEE 32-bit 1.175495e-38 3.40282346e+38

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
27
Programming Issues (11/14)

 Declaration of variables:

 Must always be made at the beginning of a program;

 Global variables: Accessible throughout the code;

 Local variables: declared within one function and are only


accessible during the execution of this function;

 If a variable is declared within a program block, it is only


accessible while the flow of the program is underway within
the block.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
28
Programming Issues (12/14)

 Identifiers names:

 Rules:
• Maximum number of characters is 31;
• Only use letters, numbers, or the character '_';
• The first character must be a letter or character '_';
• Case sensitive;
• The variable name cannot be the same as a reserved
keyword in the programming language or to a routine
name.

 Examples:
unsigned int weight; // unsigned integer variable
int temperature; // signed integer variable
float speed, // real variable

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
29
Programming Issues (13/14)

 Identifiers names:

 const:
• Used to declare a constant (content is not changed in
the course of code implementation);
• Stored in program section memory.

 extern:
• Used to make reference to variables declared
elsewhere, for example in another module.

 register:
• Used to store a variable in a processor’s register;
• Promotes faster access to the contents of the variable;
• Only used locally and depends on the register’s
availability.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
30
Programming Issues (14/14)

 Identifiers names:

 static:
• Function declared within a function or a program block;
• Resources occupied are released, and with them their
contents;
• Preserves the variable even after a function or block has
been executed.

 volatile:
• Used if an event outside the program can change the
content of a variable, for example an ADC;
• A statement using this descriptor informs the compiler
that this variable should not be optimized.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
31
Operators and Expressions (1/9)

 Arithmetic operators:
Operator Name Syntax
Unary Plus +a
Addition (Sum) a+b
Prefix Increment ++a
Postfix Increment a++
Assignment by Addition a += b
Unary Minus (Negation) -a
Subtraction (Difference) a-b
Prefix Decrement --a
Postfix Decrement a--
Assignment by Subtraction a -= b
Multiplication (Product) a*b
Assignment by Multiplication a *= b
Division (Dividend) a/b
Assignment by Division a /= b
Modulus (Remainder) a%b
Assignment by Modulus a %= b
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
32
Operators and Expressions (2/9)

 Relational operators:

Operator Name Syntax


Less Than a<b
Less Than or Equal To a <= b
Greater Than a>b
Greater Than or Equal To a >= b
Not Equal To a != b
Equal To a == b
Logical Negation !a
Logical AND a && b
Logical OR a || b

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
33
Operators and Expressions (3/9)

 Other operators:
Operator Name Syntax
Basic Assignment a=b
Function Call a()
Array Subscript a[b]
Indirection (Dereference) *a
Address-of (Reference) &a
Member by Pointer a->b
Member a.b
Member by Pointer Indirection a->*b
Member Indirection a.*b
Cast (type) a
Comma a,b
Ternary Conditional a?b:c
Scope Resolution a::b
Size-of sizeof a
Size-of sizeof (type)
Type Identification typeid type
Allocate Storage new type
Allocate Storage (Array) new type[n]
Deallocate Storage delete a
Deallocate Storage (Array) delete[] a
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
34
Operators and Expressions (4/9)

 Compact forms:
Compact form Original form
x += y x=x+y
x -= y x=x-y
x *= y x=x*y
x /= y x=x/y
x %= y x=x%y
x &= y x=x&y
x |= y x=x|y
x ^= y x=x^y
x << y x = x << y
x >> y x = x >> y

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
35
Operators and Expressions (5/9)

 Priority of operators:
Priority Operator Description
Highest () [] -> Grouping, scope, array/member access
! ~ + - & Size of type cast (most) unary operations, …
* / % Multiplication, division, modulo
+ - Addition, subtraction
<< >> Bitwise shift left and right
< <= > >= Comparisons: less-than, ...
== != Comparisons: equal and not equal
& Bitwise AND
^ Bitwise exclusive OR
| Bitwise inclusive (normal) OR
&& Logical AND
|| Logical OR
? Conditional expression (ternary operator)
= += -= *= /= %= &= |= ^= <<= >>= Assignment operators
Lowest . Concatenation ("comma“)
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
36
Operators and Expressions (6/9)

 Bitwise operators:

Operator Name Syntax


Bitwise Left Shift a << b
Assignment by Bitwise Left Shift a <<= b
Bitwise Right Shift a >> b
Assignment by Bitwise Right Shift a >>= b
Bitwise One's Complement ~a
Bitwise AND a&b
Assignment by Bitwise AND a &= b
Bitwise OR a|b
Assignment by Bitwise OR a |= b
Bitwise XOR a^b
Assignment by Bitwise XOR a ^= b

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
37
Operators and Expressions (7/9)

 Bit shifts:
 Bits shifted out of either end are discarded (not in
assembler - there it would placed in Carry bit);

 Left-shift (with carry):


• In a left arithmetic shift, zeros are shifted in on the right;

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
38
Operators and Expressions (8/9)

 Bit shifts: Left-shift

 Left shift operator: ( << );

 The number of places to shift is given as the second


argument to the shift operators;

 Example: x = y << 2;

 Assigns x the result of shifting y to the left by two bits;

 To shift only one bit should be used: x = y << 1;

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
39
Operators and Expressions (9/9)

 Bit shifts: Right-shift (with carry)


 The sign bit is shifted in on the left, thus preserving the
sign of the operand;

 Right shift operator: ( >> );

 Example: x = y >> 1;
• Shift y value to the right at attributes the value to x.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
40
Good software practices for low power
consumption (1/2)

 C coding tips:
 Use local variable as much as possible (Local variables use
CPU registers whereas global variables use RAM);

 Use unsigned data types where possible;

 Use pointers to access structures and unions;

 Use “static const” class to avoid run-time copying of


structures, unions, and arrays;

 Avoid modulo;

 Count down “for” loops.


Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
41
Good software practices for low power
consumption (2/2)

 Principles for low power applications:


 Maximize the time in standby;

 Use interrupts to control program flow;

 Replace software functions with peripheral hardware;

 Manage the power of internal peripherals;

 Manage the power of external devices;

 Device choice can make a difference;

 Effective code is a must. Every unnecessary instruction


executed is a portion of the battery wasted that will never
return.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
42
Quiz (1/7)

 1. An analogue signal:
(a) Varies with discontinuities;
(b) Consists of a sequence of high-level and low-level signals;
(c) Varies smoothly and continuously;
(d) None of above.

 2. Digital quantities:
(a) Can be maintained with high accuracy and at high speed
rates;
(b) Can not be computed;
(c) Either have slow response or very high accuracy;
(d) None of above.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
43
Quiz (2/7)

 3. The highest number that can be represented by an


unsigned binary 8-bit value is:
(a) 256;
(b) 255;
(c) 16;
(d) 128.

 4. The computer performs signed arithmetic using:


(a) Unsigned binary;
(b) Two’s complement;
(c) All of above;
(d) None of above.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
44
Quiz (3/7)

 5. The representation of the signed binary string: 0111


0101 1011 in hexadecimal and decimal is:
(a) 0x75B , -188310;
(b) 0x8A4 , -188310;
(c) 0x8A4 , 188310;
(d) 0x75B , 188310.

 6. The main difference between the One’s and Two’s


complement representation is:
(a) The One’s complement represents both +0 and -0;
(b) Inverts the MSB bit;
(c) Inverts the LSB bit;
(d) The Two’s complement representation inverts all bits and
adds 1.
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
45
Quiz (4/7)

 7. In Two’s complement representation, a 1 in the MSB


bit indicates:
(a) A positive number;
(b) A negative number;
(c) A complex number;
(d) Carry.

 8. The value of 11012 in Two’s complement binary is:


(a) -5;
(b) -13;
(c) 3;
(d) -3.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
46
Quiz (5/7)

 9. The value of the string 1100.0112 in unsigned binary


is:
(a) -4.375;
(b) 12.375;
(c) 4.375;
(d) -12.375.

 10. The following addition will result in carry in the


unsigned binary interpretation of the result:
(a) 0111 11112 + 0000 00102;
(b) 1000 00002 + 1000 00002;
(c) 0111 11112 + 1000 00002;
(d) None of the above.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
47
Quiz (6/7)

 11. The represent of the decimal number −36 in


hexadecimal is:
(a) 0xDC;
(b) 0x24;
(c) 0xDB;
(d) 0x23.

 12. A signed addition will cause an overflow when:


(a) There is a carry out of the LSB;
(b) There is a carry out of the MSB;
(c) Adding two negative numbers results in a positive result;
(d) The magnitude of the result is smaller than the magnitude
of the smaller operand.

Copyright 2009 Texas Instruments


>> Contents All Rights Reserved
48
Quiz (7/7)

 Answers:
 1. (c) Vary smoothly and continuously.
 2. (a) Can be maintained at high accuracy at high speed
rates.
 3. (b) 255.
 4. (b) Two’s complement.
 5. (d) 0x75Bh , 188310.
 6. (d) The One’s complement represents both +0 and -0.
 7. (b) A negative number.
 8. (d) -3.
 9. (b) 12.375.
 10. (b) 1000 0000 + 1000 0000.
 11. (a) DC.
 12. (c) Adding two negative numbers results in a positive
result.
Copyright 2009 Texas Instruments
>> Contents All Rights Reserved
49

You might also like