This textbook introduces readers to digital signal processing fundamentals using Arm Cortex-M based microcontrollers as demonstrator platforms. It covers foundational concepts, principles and techniques such as signals and systems, sampling, reconstruction and anti-aliasing, FIR and IIR filter design, transforms, and adaptive signal processing.
Features inexpensive ARM® Cortex®-M4 microcontroller development systems available from Texas Instruments and STMicroelectronics. This book presents a hands-on approach to teaching Digital Signal Processing (DSP) with real-time examples using the ARM® Cortex®-M4 32-bit microprocessor. Real-time examples using analog input and output signals are provided, giving visible (using an oscilloscope) and audible (using a speaker or headphones) results. Signal generators and/or audio sources, e.g. iPods, can be used to provide experimental input signals. The text also covers the fundamental concepts of digital signal processing such as analog-to-digital and digital-to-analog conversion, FIR and IIR filtering, Fourier transforms, and adaptive filtering. Digital Signal Processing Using the ARM® Cortex®-M4: Uses a large number of simple example programs illustrating DSP concepts in real-time, in an electrical engineering laboratory setting Includes examples for both STM32F407 Discovery and the TM4C123 Launchpad, using Keil MDK-ARM, on a companion website Example programs for the TM4C123 Launchpad using Code Composer Studio version 6 available on companion website Digital Signal Processing Using the ARM® Cortex®-M4 serves as a teaching aid for university professors wishing to teach DSP using laboratory experiments, and for students or engineers wishing to study DSP using the inexpensive ARM® Cortex®-M4.
The Designer’s Guide to the Cortex-M Family is a tutorial-based book giving the key concepts required to develop programs in C with a Cortex M- based processor. The book begins with an overview of the Cortex- M family, giving architectural descriptions supported with practical examples, enabling the engineer to easily develop basic C programs to run on the Cortex- M0/M0+/M3 and M4. It then examines the more advanced features of the Cortex architecture such as memory protection, operating modes and dual stack operation. Once a firm grounding in the Cortex M processor has been established the book introduces the use of a small footprint RTOS and the CMSIS DSP library. With this book you will learn: The key differences between the Cortex M0/M0+/M3 and M4 How to write C programs to run on Cortex-M based processors How to make best use of the Coresight debug system How to do RTOS development The Cortex-M operating modes and memory protection Advanced software techniques that can be used on Cortex-M microcontrollers How to optimise DSP code for the cortex M4 and how to build real time DSP systems An Introduction to the Cortex microcontroller software interface standard (CMSIS), a common framework for all Cortex M- based microcontrollers Coverage of the CMSIS DSP library for Cortex M3 and M4 An evaluation tool chain IDE and debugger which allows the accompanying example projects to be run in simulation on the PC or on low cost hardware
This textbook introduces basic and advanced embedded system topics through Arm Cortex M microcontrollers, covering programmable microcontroller usage starting from basic to advanced concepts using the STMicroelectronics Discovery development board. Designed for use in upper-level undergraduate and graduate courses on microcontrollers, microprocessor systems, and embedded systems, the book explores fundamental and advanced topics, real-time operating systems via FreeRTOS and Mbed OS, and then offers a solid grounding in digital signal processing, digital control, and digital image processing concepts — with emphasis placed on the usage of a microcontroller for these advanced topics. The book uses C language, “the” programming language for microcontrollers, C++ language, and MicroPython, which allows Python language usage on a microcontroller. Sample codes and course slides are available for readers and instructors, and a solutions manual is available to instructors. The book will also be an ideal reference for practicing engineers and electronics hobbyists who wish to become familiar with basic and advanced microcontroller concepts.
This new edition has been fully revised and updated to include extensive information on the ARM Cortex-M4 processor, providing a complete up-to-date guide to both Cortex-M3 and Cortex-M4 processors, and which enables migration from various processor architectures to the exciting world of the Cortex-M3 and M4. This book presents the background of the ARM architecture and outlines the features of the processors such as the instruction set, interrupt-handling and also demonstrates how to program and utilize the advanced features available such as the Memory Protection Unit (MPU). Chapters on getting started with IAR, Keil, gcc and CooCox CoIDE tools help beginners develop program codes. Coverage also includes the important areas of software development such as using the low power features, handling information input/output, mixed language projects with assembly and C, and other advanced topics. Two new chapters on DSP features and CMSIS-DSP software libraries, covering DSP fundamentals and how to write DSP software for the Cortex-M4 processor, including examples of using the CMSIS-DSP library, as well as useful information about the DSP capability of the Cortex-M4 processor A new chapter on the Cortex-M4 floating point unit and how to use it A new chapter on using embedded OS (based on CMSIS-RTOS), as well as details of processor features to support OS operations Various debugging techniques as well as a troubleshooting guide in the appendix Topics on software porting from other architectures A full range of easy-to-understand examples, diagrams and quick reference appendices
ARM-based Microcontroller Projects Using mbed gives readers a good understanding of the basic architecture and programming of ARM-based microcontrollers using ARM’s mbed software. The book presents the technology through a project-based approach with clearly structured sections that enable readers to use or modify them for their application. Sections include: Project title, Description of the project, Aim of the project, Block diagram of the project, Circuit diagram of the project, Construction of the project, Program listing, and a Suggestions for expansion. This book will be a valuable resource for professional engineers, students and researchers in computer engineering, computer science, automatic control engineering and mechatronics. Includes a wide variety of projects, such as digital/analog inputs and outputs (GPIO, ADC, DAC), serial communications (UART, 12C, SPI), WIFI, Bluetooth, DC and servo motors Based on the popular Nucleo-L476RG development board, but can be easily modified to any ARM compatible processor Shows how to develop robotic applications for a mobile robot Contains complete mbed program listings for all the projects in the book
This book introduces basic programming of ARM Cortex chips in assembly language and the fundamentals of embedded system design. It presents data representations, assembly instruction syntax, implementing basic controls of C language at the assembly level, and instruction encoding and decoding. The book also covers many advanced components of embedded systems, such as software and hardware interrupts, general purpose I/O, LCD driver, keypad interaction, real-time clock, stepper motor control, PWM input and output, digital input capture, direct memory access (DMA), digital and analog conversion, and serial communication (USART, I2C, SPI, and USB).
The Definitive Guide to the ARM Cortex-M0 is a guide for users of ARM Cortex-M0 microcontrollers. It presents many examples to make it easy for novice embedded-software developers to use the full 32-bit ARM Cortex-M0 processor. It provides an overview of ARM and ARM processors and discusses the benefits of ARM Cortex-M0 over 8-bit or 16-bit devices in terms of energy efficiency, code density, and ease of use, as well as their features and applications. The book describes the architecture of the Cortex-M0 processor and the programmers model, as well as Cortex-M0 programming and instruction set and how these instructions are used to carry out various operations. Furthermore, it considers how the memory architecture of the Cortex-M0 processor affects software development; Nested Vectored Interrupt Controller (NVIC) and the features it supports, including flexible interrupt management, nested interrupt support, vectored exception entry, and interrupt masking; and Cortex-M0 features that target the embedded operating system. It also explains how to develop simple applications on the Cortex-M0, how to program the Cortex-M0 microcontrollers in assembly and mixed-assembly languages, and how the low-power features of the Cortex-M0 processor are used in programming. Finally, it describes a number of ARM Cortex-M0 products, such as microcontrollers, development boards, starter kits, and development suites. This book will be useful to both new and advanced users of ARM Cortex devices, from students and hobbyists to researchers, professional embedded- software developers, electronic enthusiasts, and even semiconductor product designers. The first and definitive book on the new ARM Cortex-M0 architecture targeting the large 8-bit and 16-bit microcontroller market Explains the Cortex-M0 architecture and how to program it using practical examples Written by an engineer at ARM who was heavily involved in its development
Digital Signal Processing, Second Edition enables electrical engineers and technicians in the fields of biomedical, computer, and electronics engineering to master the essential fundamentals of DSP principles and practice. Many instructive worked examples are used to illustrate the material, and the use of mathematics is minimized for easier grasp of concepts. As such, this title is also useful to undergraduates in electrical engineering, and as a reference for science students and practicing engineers. The book goes beyond DSP theory, to show implementation of algorithms in hardware and software. Additional topics covered include adaptive filtering with noise reduction and echo cancellations, speech compression, signal sampling, digital filter realizations, filter design, multimedia applications, over-sampling, etc. More advanced topics are also covered, such as adaptive filters, speech compression such as PCM, u-law, ADPCM, and multi-rate DSP and over-sampling ADC. New to this edition: MATLAB projects dealing with practical applications added throughout the book New chapter (chapter 13) covering sub-band coding and wavelet transforms, methods that have become popular in the DSP field New applications included in many chapters, including applications of DFT to seismic signals, electrocardiography data, and vibration signals All real-time C programs revised for the TMS320C6713 DSK Covers DSP principles with emphasis on communications and control applications Chapter objectives, worked examples, and end-of-chapter exercises aid the reader in grasping key concepts and solving related problems Website with MATLAB programs for simulation and C programs for real-time DSP
EMBEDDED DIGITAL CONTROL WITH MICROCONTROLLERS Explore a concise and practical introduction to implementation methods and the theory of digital control systems on microcontrollers Embedded Digital Control with Microcontrollers delivers expert instruction in digital control system implementation techniques on the widely used ARM Cortex-M microcontroller. The accomplished authors present the included information in three phases. First, they describe how to implement prototype digital control systems via the Python programming language in order to help the reader better understand theoretical digital control concepts. Second, the book offers readers direction on using the C programming language to implement digital control systems on actual microcontrollers. This will allow readers to solve real-life problems involving digital control, robotics, and mechatronics. Finally, readers will learn how to merge the theoretical and practical issues discussed in the book by implementing digital control systems in real-life applications. Throughout the book, the application of digital control systems using the Python programming language ensures the reader can apply the theory contained within. Readers will also benefit from the inclusion of: A thorough introduction to the hardware used in the book, including STM32 Nucleo Development Boards and motor drive expansion boards An exploration of the software used in the book, including Python, MicroPython, and Mbed Practical discussions of digital control basics, including discrete-time signals, discrete-time systems, linear and time-invariant systems, and constant coefficient difference equations An examination of how to represent a continuous-time system in digital form, including analog-to-digital conversion and digital-to-analog conversion Perfect for undergraduate students in electrical engineering, Embedded Digital Control with Microcontrollers will also earn a place in the libraries of professional engineers and hobbyists working on digital control and robotics systems seeking a one-stop reference for digital control systems on microcontrollers.