The Official ESP32 Book


Book Description




The Art of Assembly Language Programming Using PIC® Technology


Book Description

The Art of Assembly Language Programming using PIC® Technology thoroughly covers assembly language as used in programming the PIC® Microcontroller (MCU). Using the minimal instruction set, characteristic of most PIC® products, the author elaborates on the nuances of how to execute loops. Fundamental design practices are presented based on Orr's Structured Systems Development using four logical control structures. These control structures are presented in Flowcharting, Warnier-Orr® diagrams, State Diagrams, Pseudocode, and an extended example using SysML®. Basic math instructions of Add and Subtract are presented, along with a cursory presentation of advanced math routines provided as proven Microchip® utility Application Notes. Appendices are provided for completeness, especially for the advanced reader, including several Instruction Sets, ASCII character sets, Decimal-Binary-Hexadecimal conversion tables, and elaboration of ten 'Best Practices.' Two datasheets (one complete datasheet on the 10F20x series and one partial datasheet on the 16F88x series) are also provided in the Appendices to serve as an important reference, enabling the new embedded programmer to develop familiarity with the format of datasheets and the skills needed to assess the product datasheet for proper selection of a microcontroller family for any specific project. The Art of Assembly Language Programming Using PIC® Technology is written for an audience with a broad variety of skill levels, ranging from the absolute beginner completely new to embedded control to the embedded C programmer new to assembly language. With this book, you will be guided through the following areas: - Symbols and terminology used by programmers and engineers in microcontroller applications - Programming using assembly language through examples - Familiarity with design and development practices - Basics of mathematical knowledge in hexadecimal - Resources for advanced mathematical functions Approaches to locate resources - Teaches how to start writing simple code, e.g., PICmicro® 10FXXX and 12FXXX - Offers unique and novel approaches on how to add your personal touch using PICmicro® 'bread and butter' enhanced mid-range 16FXXX and 18FXXX processors - Teaches new coding and math knowledge to help build skillsets - Shows how to dramatically reduce product cost by achieving 100% control - Demonstrates how to gain optimization over C programming, reduce code space, tighten up timing loops, reduce the size of microcontrollers required, and lower overall product cost







Developing IoT Projects with ESP32


Book Description

Master the technique of using ESP32 as an edge device in any IoT application where wireless communication can make life easier Key Features Gain practical experience in working with ESP32 Learn to interface various electronic devices such as sensors, integrated circuits (ICs), and displays Apply your knowledge to build real-world automation projects Book DescriptionDeveloping IoT Projects with ESP32 provides end-to-end coverage of secure data communication techniques from sensors to cloud platforms that will help you to develop production-grade IoT solutions by using the ESP32 SoC. You'll learn how to employ ESP32 in your IoT projects by interfacing with different sensors and actuators using different types of serial protocols. This book will show you how some projects require immediate output for end-users, and cover different display technologies as well as examples of driving different types of displays. The book features a dedicated chapter on cybersecurity packed with hands-on examples. As you progress, you'll get to grips with BLE technologies and BLE mesh networking and work on a complete smart home project where all nodes communicate over a BLE mesh. Later chapters will show you how IoT requires cloud connectivity most of the time and remote access to smart devices. You'll also see how cloud platforms and third-party integrations enable endless possibilities for your end-users, such as insights with big data analytics and predictive maintenance to minimize costs. By the end of this book, you'll have developed the skills you need to start using ESP32 in your next wireless IoT project and meet the project's requirements by building effective, efficient, and secure solutions.What you will learn Explore advanced use cases like UART communication, sound and camera features, low-energy scenarios, and scheduling with an RTOS Add different types of displays in your projects where immediate output to users is required Connect to Wi-Fi and Bluetooth for local network communication Connect cloud platforms through different IoT messaging protocols Integrate ESP32 with third-party services such as voice assistants and IFTTT Discover best practices for implementing IoT security features in a production-grade solution Who this book is for If you are an embedded software developer, an IoT software architect or developer, a technologist, or anyone who wants to learn how to use ESP32 and its applications, this book is for you. A basic understanding of embedded systems, programming, networking, and cloud computing concepts is necessary to get started with the book.




SystemVerilog For Design


Book Description

SystemVerilog is a rich set of extensions to the IEEE 1364-2001 Verilog Hardware Description Language (Verilog HDL). These extensions address two major aspects of HDL based design. First, modeling very large designs with concise, accurate, and intuitive code. Second, writing high-level test programs to efficiently and effectively verify these large designs. This book, SystemVerilog for Design, addresses the first aspect of the SystemVerilog extensions to Verilog. Important modeling features are presented, such as two-state data types, enumerated types, user-defined types, structures, unions, and interfaces. Emphasis is placed on the proper usage of these enhancements for simulation and synthesis. A companion to this book, SystemVerilog for Verification, covers the second aspect of SystemVerilog.




Controller Area Network Projects


Book Description

The Controller Area Network (CAN) was originally developed to be used as a vehicle data bus system in passenger cars. Today, CAN controllers are available from over 20 manufacturers, and CAN is finding applications in other fields, such as medical, aerospace, process control, automation, and so on. This book is written for students, for practising engineers, for hobbyists, and for everyone else who may be interested to learn more about the CAN bus and its applications. The aim of this book is to teach you the basic principles of CAN networks and in addition the development of microcontroller based projects using the CAN bus. In summary, this book enables the reader to: Learn the theory of the CAN bus used in automotive industry; Learn the principles, operation, and programming of microcontrollers; Design complete microcontroller based projects using the C language; Develop complete real CAN bus projects using microcontrollers; Learn the principles of OBD systems used to debug vehicle electronics. You will learn how to design microcontroller based CAN bus nodes, build a CAN bus, develop high-level programs, and then exchange data in real-time over the bus. You will also learn how to build microcontroller hardware and interface it to LEDs, LCDs, and A/D converters. The book assumes that the reader has some knowledge on basic electronics. Knowledge of the C programming language will be useful in later chapters of the book, and familiarity with at least one member of the PIC series of microcontrollers will be an advantage, especially if the reader intends to develop microcontroller based projects using the CAN bus. The CD contains a special demo version of the mikroC compiler which supports the key microcontrollers including: PIC, dsPIC, PIC24, PIC32 and AVR. This special version additionally features an advanced CAN library of intuitive and simple-to-use functions to encourage programming with easy and comfortable development of CAN networks.




Electronics Projects with the ESP8266 and ESP32


Book Description

Discover the powerful ESP8266 and ESP32 microcontrollers and their Wi-Fi communication. The ESP32 microcontroller features Bluetooth and BLE communication in addition to Wi-Fi. The book emphasizes practical projects and readers are guided through Wi-Fi and Bluetooth communication, mobile app design and build, ESP-NOW and LoRa communication, and signal generation. Projects throughout the book utilize the Wi-Fi functionality and processing power of the ESP microcontrollers. Projects are built in the Arduino IDE, so you don't need to download other programming software. Mobile apps are now ubiquitous, making the app build projects of the book very relevant, as are the web page design projects. In Electronics Projects with the ESP8266 and ESP32, you'll see how easy and practical it is to access information over the internet, develop web pages, build mobile apps to remotely control devices with speech recognition or incorporate Google Maps in a GPS route tracking app. You will · Build practical electronics projects with an ESP8266 or ESP32 microcontroller with Wi-Fi communication · Use the Wi-Fi function of the ESP8266 and ESP32 to update web pages · Communicate with your mobile phone or smart watch by Bluetooth Low Energy · Transmit and receive information to control remote devices over the internet · Understand the design and build of mobile apps for internet based applications · Apply your computer programming skills in C++, JavaScript, AJAX and JSON · Use WebSocket, MQTT brokers and IFTTT for fast two-way communication with webpages Who This Book Is For The target audience is for Makers and Tinkerers who want to build internet/intranet based applications with more powerful microcontrollers, such as the ESP8266 or ESP32. A level of C++ programming expertise with the Arduino IDE is assumed, although all sketches are fully described and comprehensively commented.







The Definitive Guide to the ARM Cortex-M0


Book Description

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