Mikrocontrollertechnik - Am Beispiel der MSP430-Familie

Matthias Sturm

Mikrocontrollertechnik

Am Beispiel der MSP430-Familie

2014

312 Seiten

Format: PDF, Online Lesen

E-Book: €  23,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446429642

 

Vorwort

6

Inhalt

10

1 Ein-Bit-Rechner

16

1.1 Rechenwerk

16

1.1.1 Register und Takt

17

1.1.2 Zwischenspeicher

18

1.1.3 Native und emulierte Datenmanipulationsbefehle

19

1.2 Steuerwerk

21

1.2.1 Programmsteuerbefehle

21

1.2.2 Befehlsliste

23

1.3 Programmspeicher

25

1.4 Befehlszähler

27

1.5 Zusammenfassung

28

2 Mikrorechentechnik-Grundlagen

30

2.1 Codes

30

2.1.1 ASCII-Code

30

2.1.2 BCD-Code

30

2.2 Darstellung von Zahlen in Mikrorechnern

31

2.2.1 Binäres Zahlensystem

31

2.2.1.1 Vorzeichenlose ganze Zahlen

31

2.2.1.2 Vorzeichenlose gebrochene Zahlen, Festkommazahlen

32

2.2.1.3 Vorzeichenbehaftete ganze Zahlen

32

2.2.2 Informationsgehalt eines Bytes

33

2.2.3 Hexadezimales Zahlensystem

34

2.2.4 Zahlendarstellung in 16-Bit-Systemen

34

2.3 Statusbits

36

2.3.1 Z-Flag

36

2.3.2 N-Flag

36

2.3.3 C-Flag

37

2.3.4 V-Flag

37

2.4 Rechnerarchitekturen

38

3 Das Mikrocontrollersystem –

3 Das Mikrocontrollersystem –

41

41

3.1 Die Mikrocontrollereinheit (MCU) – ein Überblick

41

3.1.1 Zentrale Verarbeitungseinheit (CPU)

42

3.1.2 Speicherarchitektur

42

3.1.3 Adressbereichsaufteilung (Memory Map)

42

3.1.4 Peripherie

43

3.1.5 Oszillator und Systemsicherheit

44

3.1.6 Adressbereich, Speicher und Inhalte

44

3.2 Die CPU der MSP430-Mikrocontroller-Familie

48

3.2.1 Register

48

3.2.2 Adressierungsarten

52

3.2.3 Befehle

62

4 Programmierung und Implementierung

68

4.1 Vorbereitungen zur Softwareentwicklung

68

4.2 Programmentwicklung

68

4.3 Preprozessor-Anweisungen

71

4.4 Das erste eigene Programm

73

4.5 Programmiertechniken

81

4.5.1 Unterprogrammtechnik

81

4.5.2 Interrupttechnik

85

4.5.2.1 Polling oder Interrupt

86

4.5.2.2 Funktionsgruppen im Interruptprozess

86

4.5.2.3 Interruptvektortabelle

87

4.5.2.4 Interruptquellen und Interruptlogik

88

4.5.2.5 Interruptpriorität

88

4.5.2.6 Interruptmaskierung

88

4.5.2.7 Interruptprozess

88

4.5.2.8 Verschachtelung und Reaktionszeit

90

4.5.2.9 Interruptprogrammstruktur

90

5 Hardwaremodule des Mikrocontrollers MSP430F2274

92

5.1 System Reset und Initialisierung

92

5.1.1 Die Signale POR und PUC

92

5.1.2 Der Initialisierungsstatus

92

5.2 Basic-Clock-Modul

93

5.2.1 DCO

94

5.2.2 Quarzoszillator

97

5.2.3 Taktsignale des Basic-Clock-Moduls

97

5.2.4 Low-Power Modi

98

5.2.5 Taktfehlererkennung

99

5.2.6 Register des Basic-Clock-Moduls

99

5.3 Watchdog-Timer

100

5.4 Die parallelen Schnittstellen

103

5.4.1 Überblick zu den parallelen Ports

103

5.4.1.1 Datenrichtung

103

5.4.1.2 Daten ausgeben

105

5.4.1.3 Signalzustände einlesen

105

5.4.1.4 Arbeiten mit gemischten Eingabe-Ausgabe-Ports

105

5.4.1.5 Pull-up und pull-down Widerstände

106

5.4.2 Die Interruptmöglichkeiten der parallelen Ports 1 und 2

106

5.4.3 Alternative Verwendung der Portpins

108

5.4.4 Einschaltzustand

108

5.4.5 Die Register der parallelen Ports

109

5.4.6 Ströme und Spannungen an den Portpins

109

5.4.7 Programmbeispiele

110

5.4.7.1 Parallelport ausgeben

110

5.4.7.2 Parallelport einlesen

113

5.4.7.3 LC-Display-Ansteuerung

115

5.5 Timer_A und Timer_B

125

5.5.1 Einführung am Beispiel Timer_A

125

5.5.2 16-Bit-Timer

126

5.5.2.1 Taktquellenauswahl und Vorteiler

127

5.5.2.2 Das CLR-Bit im TACTL-Register

127

5.5.2.3 Mode-Auswahl

127

5.5.2.4 Timer starten

130

5.5.3 Die Capture/Compare-Einheit

130

5.5.3.1 Capture-Funktion

131

5.5.3.2 Compare-Funktion

133

5.5.4 Signalerzeugung

133

5.5.4.1 Konstante Zeitintervalle im Continuous Mode

133

5.5.4.2 Zeitintervalle im Up Mode

133

5.5.4.3 Zeitintervalle im Up/Down Mode

134

5.5.5 Output Unit

135

5.5.6 Anschlüsse der Timer_A-Peripheriebaugruppe

135

5.5.7 Verhältnis zwischen Zeitintervall und Zählerstand

139

5.5.8 Die Register der Timer_A-Baugruppe

140

5.5.9 Interrupt Handling Timer_A

140

5.5.10 Programmbeispiele

141

5.5.10.1 Signalerzeugung im Continuous Mode

141

5.5.10.2 PWM-Signalerzeugung im Up Mode

143

5.5.11 Timer_B

144

5.5.12 Interrupt Handling Timer_B

146

5.6 USCI

148

5.6.1 Das asynchrone Übertragungsverfahren

148

5.6.1.1 USART – asynchrone Betriebsart

150

5.6.1.1.1 Baud-Rate-Generator

154

5.6.1.1.2 Weitere Features im asynchronen Mode des USART

157

5.6.1.2 Die Register der USCI-Baugruppe

158

5.6.1.3 Programmbeispiel

158

5.6.2 Synchrone Übertragung

160

5.6.2.1 USCI – synchrone Betriebsart

160

5.6.2.2 Programmbeispiel

164

5.6.3 USCI_B-Modul

164

5.6.3.1 I2C-Bus

165

5.6.3.2 Aufbau der USCI_B-Einheit in I2C-Betriebsart

168

5.7 ADC10

172

5.7.1 Hardware und Funktion der ADC-Peripherieeinheit

172

5.7.2 ADC-Betriebsarten

177

5.7.3 Hinweise zum PCB-Design

178

5.7.4 ADC10-Register

178

5.7.5 Anschlusspin der ADC-Peripheriebaugruppe

179

5.7.6 ADC-Beispielprogramm

180

5.7.7 Der versteckte DMA-Controller

182

5.7.7.1 Die Register der DTC-Einheit

184

5.7.7.2 Programmbeispiel zur DTC-Einheit

184

5.8 Flash Memory

185

5.8.1 Lesen vom Flash Memory

187

5.8.2 Löschen des Flashspeichers

187

5.8.3 Beschreiben/Programmieren des Flashspeichers

187

5.8.4 Flash-Memory-Register

189

5.8.5 Programmbeispiele zum Flash Memory

189

5.8.5.1 Löschen eines Flashsegmentes mit Software außerhalb des Flashmoduls

190

5.8.5.2 Löschen eines Flashsegmentes mit Software innerhalb des Flashmoduls

190

5.8.5.3 Schreiben eines 16-Bit-Wertes in ein Flashsegment mit Software außerhalb des Flashmoduls

191

5.8.5.4 Schreiben eines 16-Bit-Wertes in ein Flashsegment mit Software innerhalb des Flashmoduls

191

6 Mikrocontroller-Programmieren in C

193

6.1 Hochsprache C

193

6.2 C-Programmbeispiele

195

6.2.1 Parallele Ports

195

6.2.1.1 Verwenden zweier Leuchtdioden am Port 1

195

6.2.1.2 Taster am Port 2

196

6.2.2 Timer_A

197

6.2.2.1 Timer_A–Erzeugen von Impulsfolgen

197

6.2.2.2 Timer_A–Erzeugen von PWM-Signalen

198

6.2.3 ADC10

199

6.2.4 USCI

201

6.2.4.1 USCI im Asynchron Mode

201

6.2.4.2 USCI im I2C-Mode

202

6.2.5 LCD

202

Anhang

208

Anhang A

210

A1 Übersicht des Entwicklungstools

210

A1.1 Hauptbestandteile der IAR-Embedded-Workbench

210

Anhang B

215

B1 Das Education System zum Buch

215

B1.1 Hardware

215

B1.1.1 Leuchtdioden

216

B1.1.2 Taster

216

B1.1.3 LC-Display

219

B1.1.4 Drehencoder 24/360

221

B1.1.5 Lautsprecher

223

B1.1.6 Serielle Schnittstelle RS-232

223

B1.1.7 Potentiometer

224

B1.1.8 Servomotoransteuerung

225

B1.1.9 I2C Schnittstelle/Diodenmatrix

225

Anhang C

228

C1 MSP430-Befehlsliste

228

C2 Befehle des MSP430

230

Anhang D

252

D1 Peripheral File Map

252

D2 Special Function-Register SFR (.byte access)

255

D3 Port-Register (.byte access)

257

D4 Basic Clock Modul+Register (.byte access)

263

D5 USCI_A0-Register (.byte access)

266

D6 USCI_B0-Register (.byte access)

274

D7 Operational amplifiers-Register

281

D8 Watchdog Timer+Register (.word access)

284

D9 Flash Memory-Register (.word access)

285

D10 Timer_B-Register (.word access)

288

D11 Timer_A-Register (.word access)

293

D12 ADC10-Register (.word and .byte access)

297

Anhang E

303

E1 Die Interruptvektortabelle

303

Anhang F

304

F1 ASCII-Code Tabelle eines LC-Displays

304

Abkürzungen

307

Literatur

309

Index

310

 

© 2009-2024 ciando GmbH