Practical Microcontroller Engineering with ARM® Technology
Buy Rights Online Buy Rights

Rights Contact Login For More Details

More About This Title Practical Microcontroller Engineering with ARM® Technology

English

The first microcontroller textbook to provide complete and systemic introductions to all components and materials related to the ARM® Cortex®-M4 microcontroller system, including hardware and software as well as practical applications with real examples.

This book covers both the fundamentals, as well as practical techniques in designing and building microcontrollers in industrial and commercial applications.

  • Examples included in this book have been compiled, built, and tested
  • Includes Both ARM® assembly and C codes
  • Direct Register Access (DRA) model and the Software Driver (SD) model programming techniques and discussed

If you are an instructor and adopted this book for your course, please email [email protected] to get access to the instructor files for this book.

English

Dr. Ying Bai is a Professor in the Department of Computer Science and Engineering at Johnson C. Smith University (JCSU). Before joining JCSU, Dr. Bai worked as a software and senior software engineer at Motorola MMS, Schlumberger ATE Technology, Immix TeleCom, and LAM Research. He has published twelve (12) books with publishers such as Prentice Hall, CRC Press LLC, Springer, Cambridge University Press and Wiley-IEEE Press in recent years.

English

Preface xxix

Acknowledgments xxxi

Trademarks and Copyrights xxxiii

Copyright Permissions xxxv

About the Companion Website xxxix

Chapter 1 Introduction to Microcontrollers and This Book 1

1.1 Microcontroller Configuration and Structure 2

1.2 The ARM Cortex M4 Microcontroller System 3

1.3 The TM4C123GH6PM Microcontroller Development Tools and Kits 4

1.4 Outstanding Features About This Book 5

1.5 Who This Book Is For 5

1.6 What This Book Covers 6

1.7 How This Book Is Organized and How to Use This Book 8

1.8 How to Use the Source Code and Sample Projects 9

1.9 Instructors and Customers Supports 11

Chapter 2 ARM Microcontroller Architectures 13

2.1 Overview and Introduction 13

2.2 Introduction to ARM Cortex-M4 MCU 15

2.3 The Memory Architecture 27

2.4 The Nested Vectored Interrupt Controller (NVIC) Architecture 34

2.5 The Debug Architecture 37

2.6 Introduction to Tiva C Series ARM Cortex-M4 MCU-TM4C123GH6PM 38

2.7 Introduction to Tiva C Series LaunchPad TM4C123GXL Evaluation Board 72

2.8 Introduction to EduBASE ARM Trainer 77

2.9 Chapter Summary 77

Chapter 3 ARM Microcontroller Development Kits 83

3.1 Overview and Introduction 83

3.2 The Entire Tiva TM4C123G-based Development System 84

3.3 Download and Install Development Suite and Specified Firmware 86

3.4 Introduction to the Integrated Development Environment—Keil MDK μVersion5 87

3.5 Embedded Software Development Procedure 127

3.6 The Keil ARM-MDK μVision5 Debugger and Debug Process 128

3.7 The TivaWare for C Series Software Suite 140

3.8 The TivaWare for C Series Utilities and Other Supports 147

3.9 Program Examples 151

3.10 Chapter Summary 152

Chapter 4 ARM Microcontroller Software and Instruction Set 155

4.1 Overview and Introduction 155

4.2 Introduction to ARM Cortex-M4 Software Development Structure 156

4.3 Introduction to ARM Cortex-M4 Assembly Instruction Set 157

4.4 ARMðD Cortex-M4 Software Development Procedures 196

4.5 Using C Language to Develop ARM Cortex-M4 Microcontroller Applications 197

4.6 Chapter Summary 243

Chapter 5 ARM Microcontroller Interrupts and Exceptions 261

5.1 Overview and Introduction 261

5.2 Exceptions and Interrupts in the ARM Cortex-M4 MCU System 263

5.3 Exceptions and Interrupts in the TM4C123GH6PM Microcontroller System 273

5.4 Developing GPIO Port Interrupt Projects to Handle GPIO Interrupts 285

5.5 Comparison Among Four Interrupt Programming Methods 317

5.6 Chapter Summary 318

Chapter 6 ARM Microcontroller Memory System 333

6.1 Overview and Introduction 333

6.2 Memory Architecture in the TM4C123GH6PM MCU System 334

6.3 Memory Map in TM4C123GH6PM MCU System 361

6.4 Bit-Band Operations 362

6.5 Memory Requirements and Memory Properties 370

6.6 Memory System Programming Methods 375

6.7 Memory System Programming Projects 380

6.8 Chapter Summary 420

Chapter 7 ARM Cortex-M4 Parallel I/O Ports Programming 433

7.1 Overview and Introduction 433

7.2 GPIO Module Architecture and GPIO Port Configuration 434

7.3 GPIO Port Control Registers 437

7.4 On-Board Keypad Interface Programming Project 440

7.5 Analog-to-Digital Converter Programming Project 446

7.6 PWM-Controlled DC and Step Motors Programming Project 486

7.7 The PWM API Functions in the TivaWare Peripheral Driver Library 521

7.8 Chapter Summary 525

Chapter 8 ARM Cortex-M4 Serial I/O Ports Programming 547

8.1 Overview and Introduction 547

8.2 GPIO Module Architecture and GPIO Port Configuration 548

8.3 Synchronous Serial Interface (SSI) 551

8.4 Inter-Integrated Circuit (I2C) Interface 611

8.5 Universal Asynchronous Receivers/Transmitters (UARTs) 642

8.6 Chapter Summary 668

Chapter 9 ARM Cortex-M4 Timer and USB Programming 691

9.1 Overview and Introduction 691

9.2 General-Purpose Timers 692

9.3 Watchdog Timers 732

9.4 Universal Serial Bus (USB) Controller 743

9.5 Chapter Summary 788

Chapter 10 ARM Cortex-M4 Other Peripherals Programming 805

10.1 Overview and Introduction 805

10.2 The Controller Area Network (CAN) 805

10.3 The Quadrature Encoder Interface (QEI) 847

10.4 The Continuous and Discrete PID Closed-Loop Control System 871

10.5 The Fuzzy Logic Closed-Loop Control System 887

10.6 The Analog Comparators 899

10.7 Chapter Summary 908

Chapter 11 ARM Floating Point Unit (FPU) 927

11.1 Overview and Introduction 927

11.2 Three Types of the Floating-Point Data 928

11.3 The FPU in the Cortex-M4 MCU 934

11.4 Implementing the Floating-Point Unit 938

11.5 Chapter Summary 946

Chapter 12 ARM Memory Protection Unit (MPU) 951

12.1 Overview and Introduction 951

12.2 Implementation of the MPU 952

12.3 Initialization and Configuration of the MPU 959

12.4 Building A Practical Example MPU Project 960

12.5 The API Functions Provided by the TivaWare Peripheral Driver Library 964

12.5.3 The MPU Interrupt Handler Control API Functions 968

12.6 Chapter Summary 969

Homework 970

Index 975

About the Author 987

loading