Microcontollers

Embedded and Microcontrollers

Contents

Top

Instruction Set Architectures (RISC-V, x86, and ARM)

RISC-V

x86

ARM

Evaluation board vs Development board vs System on Module

Evaluation Board

Development Board

System on Module (SoM)

Expansion Boards

Where to find expansion boards

Real-time operating system (RTOS)

Zephyr Real-Time Operating System

Zephyr RTOS:

FreeRTOS:

Embedded Security

Hardware Features

Attack Vectors

Regulations and the European Cyber Resilience Act (CRA)

Embedded Attributes

Core Size

Memory

Clock Source

Timers

General Purpose Input and Output (GPIO)

Analog-to-digital converter (ADC)

Microprocessor

Microcontroller (MCU)

STM32 Family of Microcontrollers from ST Microelectronics

MSP430 Family of Microcontrollers from Texas Instruments

ATMEGA328 Family of Microcontrollers from Microchip Technology

Digital Signal Processor (DSP) / Digital Signal Controller (DSC)

Field Programmable Gate Array (FPGA)

Single Board Computer (SBC)

SBC Downsides

Products

Embedded and Microcontrollers

Embedded systems are often the orchestrating pieces of the electronic system that receives, interprets, and sends signals. The power of the Embedded system comes from the combination of hardware and software. For those new to Embedded Systems the C programming language can be a good starting point for software development.

The diagram below represents how information in this page is organized, starting with the overarching topics (like Instruction Set Architectures), and finishing with a few of the larger product categories (like Microcontrollers).

Instruction Set Architectures (RISC-V, x86, and ARM)

What is an Instruction Set Architecture? View Answer

Instruction set architecture (ISA), also called computer architecture, is the definition of how code instructions, data types and supported hardware come together to form a Microprocessor Unit (MPU). There are a few different types of ISA, such as ARM, RISC-V, X86 and MIPS.

Can ISAs be used interchangeably? View Answer

Normally ISAs are not cross compatible, systems designed for one type of ISA will not work on another. For example, x86 systems and software will not work on ARM based chips as the two are different in how they handle code instructions and data sets.

Note: There are a few different workarounds for this problem on the market: 1.) software that mimics operating conditions of a different ISA, or 2.) by combining different ISAs into a single package. ARM has created a hybrid architecture called ARM big.LITTLE which is a Heterogeneous multi-processing architecture, by combining high power and low power processing cores into one system, high-power processes can be prioritized and handled separately from lower power and lower priority requests, allowing for greater flexibility and more precise power management.

What is the difference between a Reduced Instruction Set Computer (RISC) and a Complex Instruction Set Computer (CISC) processor? View Answer

RISC is a type of computer architecture that has been designed to use simple sets of instructions to perform single step actions during the computing process. More generally it can be thought of that each code instruction can do one action for the computer system. The simpler actions allow for a faster completion speed and reduced power consumption, making them popular in portable devices or other places where power efficiency is a driving factor.

CISC is a type of computer architecture that allows for multiple instructions and code actions to happen at each step of the computing process. More generally, it can be thought of as everything that is not RISC, as the term was developed in response to the development of RISC based chips and systems. While there is no official definition of CISC, they typically can be thought of as having a more complex designed system (which typically requires more power to operate).

RISC-V

RISC-V is an open standard ISA based on RISC. Unlike other chip designs, RISC-V is completely Open Source and has Open Architecture, which means that anyone, anywhere can make RISC-V chips and never pay any licensing fees to do so. However, while the core of the RISC-V is open source there may be other add on and expansions which are not considered public domain.

Image of BeagleBoard.org logo

Image of BeagleBoard's BeagleV-Fire®

Beagleboard.org's BeagleV-Fire® features 2 GB RAM, 16 GB eMMC, 1 Gb Ethernet connection, and one M.2 E-Key PCIe connector for a wide range of applications.

Image of Efinix logo

Image of Efinix's Titanium Ti375C529 Development Kit

Efinix's Titanium Ti375C529 kit is ideal for developing and prototyping designs for the Ti375 FPGA with fast time to market, high performance, and low power.

Image of M5Stack logo

Image of M5Stack's M5STAMP-C3 ESP32 Miniature Module

M5Stack's M5STAMP-C3 ESP32 miniature module features ESPRESSIF ESP32-C3 RISC-V MCU with Wi-Fi and Bluetooth® 5 (LE) connectivity for IoT edge devices.

x86

One of the oldest family of instruction set architectures for CISC processors. Started in the late 1970's as an expansion of Intel 8-Bit microprocessors, the family of x86 processors have continually adapted and improved to become one of the most common types of computer processors sold today. Typically found in laptops, desktops, workstations, and supercomputers, these chips have been made for peak performance.

Image of Advantech color logo

Image of Advantech's 3.5 in. Compact Single Board Computers

Advantech’s 3.5" compact single board computers have low-power Intel Atom™ processors and wide temperature support for harsh applications.

Image of SolidRun logo

Image of SolidRun's CN9132 Computer-on-Module

SolidRun’s CN9132 COM is based on the COM Express Type 7 form factor designed to provide a flexible, scalable, and robust networking computing module.

ARM

Originally known as Advanced RISC Machines but today better known as just ARM are a family of RISC processors developed and licensed by Arm LTD. Due to the lower power consumption and low heat generation ARM based chips can be found worldwide in mobile and portable devices today such as cell phones, tablets, some laptops, and other low power devices.

Image of STMicroelectronics color logo

STM32H573 Discovery Kit Based On the STM32H5 MCU - STMicroelectronics

STMicroelectronics' STM32H573I-DK Discovery kit is a complete demonstration and development platform for the STM32H573IIK3Q microcontroller.

Image of NXP Semiconductor Logo

Image of NXP's KE1xZ MCUs

NXP's KE1xZ MCUs are based on the Arm® Cortex®-M0+ core.

Image of Microchip color logo

Image of Microchip's PIC32CZ CA Family of MCUs

Microchip's PIC32CZ CA family of high-performance Cortex®-M7 MCUs have 8 MB Flash, 1 MB SRAM, and HSM with secure storage.

Image of RISC-V Reference Guide

Gain knowledge of RISC-V software and hardware with this guide from DigiKey.

Learn More

Image of RVfpga Webinar

Join Digi-Key for a close look at the inner workings of the RISC-V processor core and ways to implement a soft RISC-V processor core in a target (Xilinx) FPGA device.

Learn More

Image of RISC-V Chip

A quick introduction to, and overview of the open-source RISC-V architecture.

Learn More

Image of DigiKey Article Library

Use RISC-V to customize the instruction set and hardware for the optimum energy profile for an embedded system.

Learn More

Evaluation board vs Development board vs System on Module

Development of any new product will lead one to think through stages of prototyping, refining, and designing for production. To help in this design process, there are a range of circuit boards for experimentation, development, and production ready use.

DigiKey product classification as well as most manufacturers would classify Evaluation boards and Development boards as the same thing. It remains a handy method to sort and categorize boards by function and role in the development process from prototype to productionized product.

Evaluation Board

Image of Sparkfun Evaluation Board

For those first prototypes or experiments, there is the evaluation board. The board focuses on the Integrated Circuit (IC) in question. It has a minimum number of components to form a viable circuit.

Power is typically supplied off board with an external power supply and interface. Communication lines are very basic, no more then just a test point interface to allow a test probe to connect to a circuit path.

These boards are focused on one aspect of the ICs performance or function to the exclusion of everything else. While simple, they are larger in area to provide space to break out every line of the IC or chip, allowing the designer to pick and choose exactly what circuits are enabled or interfaced with.

Development Board

Image of Arduino Development Board

The Integrated circuit being experimented with would usually have all external communication lines broken out for ease of access to human useable interfaces and programming options, such as a USB port, header sockets, or other pluggable connectors. The power supply is controlled on board with a voltage regulator or other power devices, allowing the developer to focus on experimenting with core chip functions, rather than supporting circuitry.

The most popular lines of Development boards usually have some cross compatibly between manufacturers or product lines so that one expansion board could be reused across multiple devices. Examples of this are the Arduino line, whose arrangement of header sockets has found a place on other manufacturing circuit boards.

Typically, these are not suitable for direct interface to the end application circuit board due to their comparatively large circuit board size and awkward interface port arrangement.

System on Module (SoM)

Image of Microchip System on Module

The final step from taking your project from the workbench to the production line. System on Modules (SOMs) are the most essential parts of the circuit board condensed and compacted into the smallest possible space for direct integration onto the application circuit board.

Usually, SoMs have a very small footprint, the largest are typically only a few square inches in total area and made with surface mount components. SoMs typically do not have any human useable connection ports for cables or other interface methods. In fact, most SoMs have a development platform with the SoM placed directly on a breakout board for human scale usage and experimentation.

These can either be directly soldered onto the circuit board, with an edge connector interface like a RAM stick or by stacked mezzanine connector.

Image of The OSM Standard for System on Modules Explained

Open Standard Module, the latest industry standard for system on modules, is replacing credit card-sized modules with postage stamp-sized ones.

Learn More

Image of Using Microcontroller Development Boards as Single Board Computers

Microcontroller development boards can be used in industrial applications if proper selection and QA testing are done in advance.

Learn More

Image of Arduino Uno R4 Minima - Jayy's Odd Picks

Watch the "Jayy's Odd Picks" YouTube short covering the Arduino Uno R4 Minima

Learn More

Expansion Boards

What if I want to do more with my development board? View Answer

While Development boards are a powerful tool in developing applications from the initial idea stage to real world applications, they are still unable to do everything a developer can imagine right out of the box. For many applications, a development board will need other components beyond the main IC either to interface with the outside world, connect with other components and boards or simply just to expand the range of input it is able to receive.

In most cases to easily integrate sensors, displays, motor drivers, or other ICs most manufactures have already placed external ICs and required components on compatible plug and play boards, called expansion boards. The expansion boards can simply fit on top of the development board with software libraries for the development environment ready to be downloaded.

Typically, these expansion boards have names or themes that tie them to the main board, here is just a small list of some of the most popular development board series and the expansion boards.

Arduino – Shields can be found in the regular UNO R3 style or the larger MEGA R3 style. The Arduino R3 board layout has become a de facto standard with many companies and third-party manufacture producing boards in the same footprint.
Beaglebone – Capes typically expand functionality of the beagle board but may be defined for a specific version of the beagle board, typically based on board features rather than pinout or form factor.
Raspberry Pi - HAT (Hardware Attached on Top) may come in either the older 26 pin variant or the newer 40 pin variant. pHAT (partial HAT) is a variant designed to match the form of the Raspberry Pi Zero and Zero W boards.
Feather - FeatherWings are add on and expansion boards for the Adafruit Feather system of development boards allowing for the addition of prototype area, sensing and motor control, wired and wireless connectivity options, audio and display.
STM32 Nucleo – these expansion boards allow additional functionality to be added to the base STM32 Nucleo board. Functions that can be added include sensing, control, connectivity, power, and audio. The expansion boards can be plugged on top of the base board. Multiple added functionalities can be achieved by stacking expansion boards.
MikroE – Click Boards (mikroBUS™ Click™) are the family of expansion boards from MikroE. There's well over 1000 different options, the Click Board family of expansion boards from MikroE offers unparalleled design choice and speed when adding sensors, communication, display and data storage. For saving board more space, there's the MikroE Shuttle and click ribbon cable system which allows up to four different click boards to be added to the same data bus.
MicroMod - Modular ecosystem from sparkfun, that contains easily swappable connections for processors, communications, and sensors.More details on this platform for Makers.

Where to find expansion boards

Expansion boards are listed in different locations depending on function. You may typically find these boards listed in Accessories (Dev Boards, Kits, Programmers), as well as Eval Boards- Expansion Boards, Daughter Cards. Expansion boards with wireless communication functions can also be found in the RF Evaluation and Dev Kits, Boards page.

Image of Expansion boards thumbnail

Many development and prototyping board platforms have specifically defined form factors that allow for quick expansion of capabilities, and often times these form factors are given names.

Learn More

Real-time operating system (RTOS)

Source: DigiKey

Real-time operating systems (RTOS) are small and lightweight operating systems, typically designed to run on small embedded systems where computing resources are limited and run multi-threaded program applications with time critical needs.

In most circumstances, when terms like Operating Systems (OS) are used, people are referring to software found on computers like the Windows, macOS or Linux. Those are common types of General-Purpose Operating Systems (GPOS). A GPOS usually runs a Graphical User Interface (GUI) and is expected to run multiple applications at the same time.

While GPOSs have many of the same features of RTOSs there are several critical differences, the most significant being how much time is taken for code to be executed. In a GPOS, software is non-deterministic, which means that instructions written in code can flex the execution timing of those instructions, which can make it very difficult to estimate how much time is needed for tasks to complete.

In contrast, RTOS are designed to run on small, less powerful systems like microcontrollers or other embedded systems where operation speed and reliability outweigh features like user interface. RTOS ability to run concurrent or multithreaded applications (or appear to run concurrently if a single core) and meet strict timing deadlines make them significantly more reliable in applications where strict timing is necessary such medical, aerospace or safety critical environments.

In less demanding environments RTOS can still be a very popular choice for developers, with the ability to run multiple tasks concurrently on your microcontroller platform such balancing sensor readings and sending wireless communication to a central hub.

RTOSs such as FreeRTOS and Zephyr can be found on embedded microcontroller systems that need multi-threading support, they can also be found in applications that need to run modular code, allowing for portions of code to be executed in isolated sections, improving both security and shortening development time.

Both software projects are completely open-source projects, FreeRTOS under the MIT open-source license, and Zephyr under the Apache 2.0 license.

Zephyr Real-Time Operating System

Source: Zephyr

The Zephyr RTOS is a free and open source, real-time operating system designed for connected, embedded systems with minimum processing resources, like internet of thing devices and systems.

Designed as a small and lightweight operating system kernel and supporting services for embedded devices, the Zephyr RTOS require less than 8KB of flash-based storage and 5KB of RAM as minimum hardware requirements, Zephyr is scalable and expandable from small sensor-based nodes to complex multicore systems, able to fit in where other operating systems are too large or complex to fit.

Zephyr RTOS can operate on a wide range of microcontrollers and microprocessors with very disparate architecture ranging from the 32-bit STM32 and ARM lines of Cortex microcontrollers, RISC-V based microcontrollers to full featured 64-bit x86 processors and still run the same compiled software. By integrating drivers and libraries into the hardware abstraction layer (HAL) and written to be hardware agnostic allows for application code to be reused across different hardware platforms.

One of the most popular features of Zephyr RTOS is the flexibility and ability for customization to suit a range of end applications and needs. With the connection and networking abilities such as Bluetooth 5.3 and a native IP stack built into the native kernel concepts allows for Zephyr RTOS to connect with nearly any sensor or network hub.

Supported by some of the largest software and hardware developers such as Analog Devices, Google, Nordic Semiconductor, NEXP and Meta. The Zephyr RTOS project is one of the most popular open source RTOS projects.

Fully supported on Windows, macOS and Linux operating systems with long term support versions for over 2 years.

 

Zephyr RTOS:

Image of SparkFun Logo

Image of SparkFun's Thing Plus Matter – MGM240P

SparkFun's Thing Plus Matter – MGM240P enables fast prototyping and development of Matter-based IoT devices.

Image of Nordic Semiconductor logo

Image of Nordic Semiconductor's Thingy:53 IoT Prototyping Platform

Nordic Semiconductor's Nordic Thingy:53 leverages integrated motion, sound, light, and environmental sensors to help build proofs of concept and prototypes.

Image of Raspberry Pi Logo

Image of Raspberry Pi's PicoBoard

The Raspberry Pi PicoBoard is a low-cost, yet flexible development board for the RP2040 microcontroller chip that Raspberry Pi has developed in-house.

Full listing of Zephyr RTOS compatible boards: https://docs.zephyrproject.org/latest/boards/index.html

FreeRTOS:

Image of Microchip color logo

Image of Microchip's PIC32 Development Tools

Microchip offers a wide range of PIC32 development tools, for Bluetooth, CAN bus, and audio codecs.

Image of STMicroelectronics color logo

Image of STMicroelectronics' 32-Bit STM32 F7 Series MCU with ARM® Cortex®-M7 Core

STMicroelectronics' STM32 F7 MCU series operates at frequencies up to 200 MHz and uses a 6-stage super-scalar pipeline and floating point unit (FPU) to produce up to 1000 CoreMarks.

Image of Infineon Technology Logo

Image of Infineon Technologies AURIX™ TriCore™ 32-bit Microcontroller with Unified RISC Core

Infineon Technologies AURIX™ TriCore™ unified, single-core, 32-bit microcontroller DSP architecture is optimized for real-time embedded systems.

Image of DFRobot Logo

Image of DFRobot ESP32 Development Board - FireBeetle Series

The DFRobot FireBeetle development boards are based on the ESP32 module, including the ESP32, ESP32-S, and ESP32-C series.

Full listing of FreeRTOS compatible families: https://www.freertos.org/RTOS_ports.html

Image of How to Run the same C code

Golioth makes it easy to connect micrcontroller-based IoT devices to the cloud, making the data available on the cloud-side, and facilitating remote device management.

Learn More

Shawn Hymel blog and video

A real-time operating system (RTOS) is an operating system (OS) (often a lightweight OS) that runs multi-threaded applications and can meet real-time deadlines.

Learn More

Lim Jia Zh Article

The term “real-time” in Real-Time Operating System (RTOS) indicates predictability/determinism in execution time rather than raw speed.

Learn More

Embedded Security

Disclaimer: The below is a general / educational statement on embedded security, this information is not intended to replace actual security reviews or approvals needed for meeting security regulations.

Embedded systems are handling more sensitive data and are in control of more parts of our daily lives, with this, it increases the need for safe and secure devices. Embedded Security must be built into designs at the earliest stages as it no longer an option but a requirement for both consumer and marketplace protection.

As threats to embedded systems grow, a balanced approach to protect them is needed, with best practice software development and innovative hardware designs to keep threats at a distance and minimizing attack area.

Hardware Features

There are several hardware features that embedded systems can be designed with to offer increased security that are quickly becoming standard features:

  • Root of Trust (RoT) - Including Hardware Security Module (HSM) or Trusted Platform Module (TPM) which are the foundation for secure operations. They do this by managing the 'keys', encrypting / decrypting (based on those keys), and validating the system integrity. These ensure secure boot process, which authenticates the firmware / software when the system is being powered on.
  • Secure Data Storage - Includes tamper responsive storage (which will erase keys when intrusion is detected), or physically secure memory technologies that are resistant to common key retrieval attacks.
  • Hardware-Based Isolation - Trusted Execution Environments (TEEs) isolate processes (like authentication) within specified zones of the processor. Microkernel architectures can limit kernel-space operation, though they require hardware that can partition memory and isolate processes.

  • Cryptographic Acceleration - Dedicated hardware for encryption / decryption, this frees the primary instruction pipeline in the processor to focus on the instructions unique to it.
  • Sourcing / Key Provisioning - Secure provisioning (which injects keys within the manufacturing process to avoid exposure), and component traceability (which can be obtained by purchasing parts through authorized resellers, can ensure the parts have not been tampered with).
  • Secure Boot - Uses cryptographic functions to confirm and verify that both application code and metadata are correct and untampered with, typically reading from a Read only memory or flash-based memory with a level of write protection this used to ensure authenticated firmware/software.
  • Random Number Generation - Secure hardware-based entropy sources for cryptographic operations. Random Number Generator are used to create unpredictable keys and other variables used in cryptographic functions. These can either be classified as a true random using a physical source of entropy such as temperature sensor or voltage monitor, or pseudo random which uses a seed to generate a determinative set of values.

As the image below represents, security is a multi layer protection with Hardware controls of keys at the center, Firmware and Secure Boot, Operating System and finally Application Software each providing a layer of security built on top of the other layers.

The Security Onion diagram showing the different layers of computing protection, starting with Hardware layer at the core, moving out to Firmware, Operating System and finally Application Software layers

Image of Renesas Electronics America logo

Image of Renesas' RA6M5 32-Bit MCUs

Renesas’ RA6M5 32-bit high-performance 200 MHz Arm® Cortex®-M33 core microcontrollers with TrustZone®, security enhancements, and CAN FD.

Image of Microchip color logo

Image of Microchip's Embedded Security Solutions with dsPIC33 DSCs and PIC24 MCUs

Microchip's embedded security solutions combine dsPIC33 DSCs and PIC24 MCUs with CryptoAuthentication™ and CryptoAutomotive™ ICs to provide robust security.

Image of STMicroelectronics color logo

STM32H7R7/S7 Bootflash MCU - STMicroelectronics

STMicroelectronics' STM32H7R7/S7 scalable and secure bootflash microcontroller is designed for industrial, medical, and consumer applications.

Image of Microchip color logo

Image of Microchip's ECC204 Secure Authentication IC

Microchip's ECC204 secure authentication ICs are targeted for disposable and ecosystem control applications.

Image of Analog Devices color logo

Image of Analog Devices' Medical Disposables

Analog Devices' crypto-strong, cost-effective portfolio of DeepCover® secure authenticators and 1-Wire® memory devices protect medical disposables.

Screenshot of the NIST webpage for Cryptographic Module Validation Program

Can you recognize the need for a standalone Random Number Generator in your design? What are the benefits and drawbacks?

Learn More

Attack Vectors

Each application will have its own threat profile or attack surface. For example, devices out in the public domain have additional concerns around individuals being within the physical proximity of the device (this could lead to concerns around side channel attacks). The amount of focus given to the different attack vectors (listed below) will be based on the application of the system.

  • Malware – Computer virus that can be introduced by fake updates, drivers, or patches. Malware can be used for attackers to gain unauthorized access to a system.
  • Brute Force – By guessing all possible combinations of weak or common passwords to break into systems.
  • Man in the Middle (MitM) – Intercepting (or altering) communications between devices on the same network.
  • Denial of Service (DoS) – Sending an overwhelming flood of fake requests or data to a system to overwhelm it and disable from processing useful requests.
  • Side Channel – Attacking and compromising cryptographic keys inferred by power, timing, or electromagnetic analysis of the actual physical circuit components.
  • Counterfeit Parts – Fake parts can contain malicious code and firmware backdoors for others to access your system without your authorization.

 

What security hygiene can embedded developers employ? View Answer

  • Do not use default passwords
  • Only buy certified parts from certified distributors
  • Only download certified software

 

Regulations and the European Cyber Resilience Act (CRA)

As cybersecurity becomes an important feature for both protection of personal and business data, a few government regulations have been created to provide a framework for future development.

The European Cyber Resilience Act (CRA) raises the standards for Embedded Security. These are standards that are mandated for all digital products (which include embedded systems) sold within the European Union (EU).

  • Security designed in early in product life cycle and maintained throughout the lifecycle – Security features (like secure boot, access controls, and encryption) needs to be included from the initial phase, and not security as an after-thought.

  • Justification of security choices – Mandatory comprehensive risk assessment to identify vulnerabilities. Designers then must justify security choices made, balancing the feasibility and risk impact.
  • Component verification – Hardware and software needs to be verified to prevent introduction of vulnerabilities.

US Cyber Trust Mark was launched by the United States Federal Communications commission as a voluntary program that manufactures of wireless IOT devices (such as cameras, smart speakers, and wearable devices) have security guidelines allowing the Cyber Trust mark to be printed on the packaging with scannable QR code.

IEC 62443 is series of standards that define security for industrial automation control systems, launched in the early 2000’s and is updated by both the International Electrotechnical Commission (IEC) and International Society of Automation (ISA).

 

A close up wedge of a wheel detailing security features

Cyber threats are becoming increasingly sophisticated, and businesses must adapt to the latest security requirements to protect sensitive data and maintain trust. This webinar will delve into the changing landscape of security regulations, including the recently introduced Cyber Resilience Act (CRA).

Learn More

 

Embedded Attributes

DigiKey has parametric filters to help you find right sizing on these attributes. Most of these parametric data features are common with Microcontrollers, some other embedded systems like FPGAs may not have the same nomenclature.

Core Size

Core Size refers to the width of the data bus within a system. The size of the core determines the amount of data able to be processed during a clock cycle.

Most embedded systems are 8-bit, 16-bit, or 32-bit architectures, however microprocessors for computers currently run 64-bit.

Memory

Most modern microcontrollers have some amount of memory and storage built into the integrated circuit package. Each type of memory has a unique purpose.

  • Flash memory - used for the program memory, this is a location to store the code that runs the system. It is a type of non-volatile storage (meaning it will not get erased if the microcontroller is reset or powered down).

  • EEPROM – used for the data memory, and often saves configuration settings. It is a type of non-volatile memory (meaning it will not get erased if the microcontroller is reset or powered down).
  • SRAM – used for data memory. It is a type of volatile memory (meaning it will get erased if the microcontroller is reset or powered down).

Clock Source

Microcontrollers may contain internal Resistor-Capacitor circuit oscillators (RC oscillators) or depend on some type of external frequency source to keep time and cycles consistent.

  • RC Oscillators - temperature dependent, and the clock signals can vary 1-5%. They do work in some slower frequency timing needs (for example, low frequency analog-to-digital conversion).
  • Crystals - common for external oscillators circuits. Excellent stability and precision with the clock signal. Crystal oscillators generally measure their variation in parts per million (PPM) instead of percentage (like RC Oscillators do).
  • Ceramic resonators has a tolerance in the range of a tenth of a percent.
  • Passive RC Oscillators - while temperature variation can be better controlled once off the microcontroller, there's still variation caused by changes in the power supply level and electrical interference to take into consideration, which is a higher order impact and makes this the least accurate of the external oscillators.

Timers

Timers can either be counting to a limit or counting down to zero. There can be multiple timers on a microcontroller, including general purpose timers, and watchdog timers. Timers are generally connected to the Main CPU Clock (often labeled HCLK in the data sheet) and divided by a prescaler.

Communication Methods (UART, SPI, I2C)

Communication Ecosystems (QWiiC, STEMMA QT, Grove)

General Purpose Input and Output (GPIO)

General Purpose Input and Output (GPIO) pins allow you to connect with the real world and interface with external components. These are typically programmable ports on the outside of the IC package and can be used to either acts as inputs or outputs for the system.

  • Inputs – Buttons, actuators, and sensors
  • Outputs – LED lights, buzzers, relays, and displays

Analog-to-digital converter (ADC)

In order to more easily interface with external analog circuits that embedded systems have, most microcontrollers have some basic Analog-to-digital converter (ADC) circuity build into the package. Although Nyquist theorem says in order to accurately reproduce a pure sine wave, the sampling frequency must be double the rate of the incoming signal. A safer practice is taking the max frequency that you want to capture from the source and multiplying by 10 for the frequency to sample at.

Note: the voltage on the ADC can run at a different voltage than the other IOs (consult the data sheet for more info). It's good to be aware of this to avoid burning out the IOs.

Basics of Oscillators by Pat Sagsveen

Timing is critical in nearly every electronic application in the world. Oscillators are used in various applications including controlling the timing in microprocessors, MCUs, SoCs, and many other things.

Learn More

Crystal Oscillators with Bill Schweber

The crystal oscillator is the timing pulse of most circuits; its performance is characterized by parameters and perspectives matched to the application.

Learn More

Timers and Interrupts by Shawn Hymel

How to configure a timer using STM32CubeIDE, use it to measure execution time, and set up non-blocking code.

Learn More

Microprocessor

A Microprocessor Unit (MPU) is often thought of as the brains of the system. It is an Integrated Circuit (IC) that contains the logic where code runs, data is retrieved / sent to memory, and math is applied on the data.

Microprocessor can typically be found in servers, workstations desktops, and laptop computers. To get the most out of microprocessor-based designs, a General-Purpose Operating System will typically be included as well, further driving up memory and storage requirements.

Although MPUs are very performant, and have high clock cycles, the price is also much higher than a microcontroller.

When working with a Microprocessor, one usually looks to the socket type and finds compatible boards, which have communication and memory management chips built in.

When designing with a Microprocessor, it is also important to know the Instruction Set Architectures (RISC-V, x86, and ARM).

Where do Microprocessors get used? View Answer

  • Servers
  • Computers, including laptops
  • Mobile devices
  • Video game counsel
Screen shot of the Arduino vs. Raspberry Pi What’s the Difference? thumbnail by Becky Stern

Today we’re learning the difference between microcontrollers and single-board computers or SBCs. It’s common for beginners to ask, “Which processor type is right for a particular DIY electronics project, Arduino or Raspberry Pi?”

Learn More

Close up view of a table detailing the difference between Microprocessors and microcontrollers

Microprocessors and microcontrollers represent distinct components in the realm of digital computing, each tailored to specific applications and use cases.

Learn More

Block Diagram of the NXP i.MX 8M Mini processor

Use the NXP i.MX 8M Mini family with its 14 nm FinFET process for high performance applications and real-time embedded processing for smart products.

Learn More

Microcontroller (MCU)

While a microcontroller is lower performance than a microprocessor, it does have more of the system integrated within it, and it comes at a reduced price point.

Microcontrollers typically contain the processing circuitry, some amount of flash-based storage and Random Access Memory (RAM) for processing. The design is compact and efficient, it contains a range of peripheral interface circuity as well (like GPIOs and ADCs).

Whereas standalone Microprocessors generally run GPOS, a Microcontroller will run an RTOS: Real-time operating system (RTOS)

Where do Microcontrollers get used? View Answer

  • Vending machines
  • Medical devices
  • Home appliances
  • Robots

STM32 Family of Microcontrollers from ST Microelectronics

The STM32 Family of Microcontrollers from ST Microelectronics is one of the most popular microcontroller families. It combines ARM processing cores, Flash memory, static RAM along with a wide selection of peripheral in one package allows nearly any version of the STM32 to be a flexible component in many applications. The first generation of STM32 was release in 2007 and has gone under several design revisions since then. With Clock speed ranging from 48 MHZ to over 400 MHZ in the newest edition there is a part in the family for nearly every application.

Here are some reference specifications for a first generation STM32 microcontroller:

  • Core: 32-Bit Single-Core ARM® Cortex®-M3 operating at 72 MHz.
  • Connectivity: CANbus, I²C, IrDA, LINbus, SPI, UART/USART, USB
  • Data converters: Analog to Digital - 10 Channels (at 12-bit resolution)
  • Program Memory Size: 64KB (64K x 8) of Flash Memory
  • RAM Size: 20K x 8

MSP430 Family of Microcontrollers from Texas Instruments

The MSP430 Family of Microcontrollers from Texas Instruments is a line of low power and low cost 16-bit microcontrollers. First introduced in 1992, the MSP430 line has continually been updated and improved to incorporate the latest technologies from Texas instruments such as FRAM (Ferromagnetic memory) and other peripheral devices. Optimize for a more industrial environment, the MSP430 may not have every modern feature but their low power consumption and stability make it very popular for the right applications.

Here are some reference specifications for a third-generation low power variant:

  • Core: 16-Bit MSP430 CPU16 operating at 16 MHz.
  • Connectivity: Channels for I²C, SPI, USI
  • Data converters: Analog to Digital - 8 Channels (at 10-bit resolution)
  • Program Memory Size: 8KB (8K x 8) of Flash memory
  • RAM Size: 256 x 8

ATMEGA328 Family of Microcontrollers from Microchip Technology

The ATMEGA328 Family of Microcontrollers from Microchip remain an extremely popular line of 8-bit microcontrollers where simple, low power consumption and low cost is needed more than raw computational power. With a Clock speed of 20 MHz, 32 KB of flash memory and 2 KB of Static RAM.

The ATMEGA328 line has found success in applications that require a simple 8-bit microcontroller without the complexity or cost of more advanced models. This has led it to be the heart of the Arduino development boards for over 20 years.

Here are some representative specifications of a first generation ATMEGA328 microcontroller:

  • Core: 8-Bit AVR operating at 20 MHz.
  • Connectivity: I²C, SPI, UART/USART
  • Data converters: Analog to Digital - 6 Channels (at 10-bit resolution)
  • Program Memory Size: 32KB (16K x 16) of Flash Memory
  • RAM Size: 2K x 8
Thumbnail of Arduino Basic with Becky Stern Video

Learn the very basics of Arduino – what is it, how to get started building circuits, and coding for electronics. Becky Stern shows you how to wire up a simple breadboard circuit and blink an LED with Arduino code.

Learn More

A finger pressing down on a Optical heart rate sensor

The MCX N94 MCU from NXP, however, has an integrated DSP accelerator which allows this algorithm to execute quickly and affords greater flexibility to the embedded designer.

Learn More

Thumbnail of STM32 Audio Processing Video

STMicroelectronics STM32H735 has just been released. It is a new entry in their high-performance ARM Cortex-M7 line.

Learn More

A close up view of one end of the Raspberry Pi Pico evaluation board

Using the Raspberry Pi Pico development board for the RP2040 MCU, developers can quickly get applications up and running.

Learn More

Section of a Block Diagram of the Microchip ATMEGA1609 8-bit microcontroller

8-bit microcontrollers are still around because they are low-power, rugged, easy to use and have fast development times.

Learn More

A section of a Block Diagram for a secure application using hardware-based isolation

Security for embedded systems is complex, but it doesn’t have to be difficult to implement; a look at the PSoC 64 microcontroller and its tools shows why.

Learn More

Digital Signal Processor (DSP) / Digital Signal Controller (DSC)

Image of Analog Devices Inc. ADSP-BF592 Blackfin DSP in a 64-VFQFN IC package 

Digital Signal Processors (DSP) are embedded microprocessors that are designed for applications that require high speed digital signal processing, such as audio, video, or real time positioning processing. Typically, DSP chips have high resolution Analog Digital Converter (ADC) and Digital Analog Converter (DAC) along with the ability for digital filtering capabilities which can be programmed by the developer to suit the application.

 

 

 

An image of Microchip Technology dsPIC33F DSC in a 28-SOIC IC package 

Digital Signal Controllers (DSC) can be considered as a specialized mix between digital signal processors (DSP) and microcontrollers.

DSCs will often include features found in microcontrollers, such as Watchdog timers, pulse width modulation channels and the ability to be programed in a low-level language such as C programming language or native hardware assembly language.

Digital Signal Controllers will also include the core architecture and features of DSPs such as powerful Analog Digital Converters channels, data shift matrixes, and implementations of Finite Impulse Response filters, not commonly found in most MCU features.

Screen Capture of the DSP Product Selection Guide hosted at TechForum

This Product Selection Guide contains information to help select products in the DSP (Digital Signal Processors) category on DigiKey.com

Learn More

Cross Section of an ear canal with hearing aid device

The performance of PSAPs can be improved by mitigating the comb effect using anti-noise signals generated by advanced codecs such as the MAX98050.

Learn More

Block Diagram of a DSP application with IoT connections

Designers can quickly implement occupancy monitoring using a drop-in kit based on a proprietary algorithm running on a low-power digital signal processor.

Learn More

Field Programmable Gate Array (FPGA)

Image of AMD Spartan-6 LX XC6SLX16 FPGA in a 324-LFBGA IC package 

Field Programmable Gate Arrays (FPGAs) are semiconductor devices that are based around a collection of Configurable Logic Blocks (CLBs) connected with user programable interconnects. These CLB and connections between them make them able to be reprogrammed to fit applications and add functionality after leaving the factory.

FPGA's rugged construction and rapid computational speed make them very attractive in harsh environments or where more Applications Specific Integrated Circuits (ASICs) would be too expensive to set up.

While most FPGAs can be reprogramed many times due to Static Random Access Memory (SRAM) based memory, One Time Programmable (OTP) options do exist.

FPGAs typically have a higher price per unit compared to other embedded options. Also, development boards sometimes require specialized software.

Where do FPGAs get used? View Answer

  • Networking equipment
  • Signal processing for cell tower
  • Vision systems in cars
  • Defense guidance systems

What are soft-core and hard-core FPGAs? View Answer

A hard-core FPGA has a fixed / static microprocessor unit (MPU) included. This results in a faster, more performant processor. The hard-core processor cannot be reconfigured (as it's a predefined piece of silicon).

A soft-core FPGA has a processor implemented using the FPGA fabric. It generally runs slower, consumes more power, and is larger in size than a hard-core FPGA. It is however reconfigurable and can be suitable for more customized needs.

Image of AMD Logo

Image of AMD's Spartan™-7 SP701 FPGA Evaluation Kit

AMD's Spartan™ 7 SP701 FPGA evaluation kit is built for designs requiring sensor fusion such as industrial networking, embedded vision, and auto applications.

Image of Altera (Intel) color logo

Image of Altera Agilex™ 5 FPGAs and SoCs

Altera Agilex™ 5 FPGA E-Series 065B modular development kits deliver a complete prototyping and reference platform design environment.

Image of Efinix logo

Image of Efinix's Titanium Ti180 M484 Development Kit

Efinix's Titanium Ti180 M484 development kit is ideal for capturing video, aggregating sensor data, or designing for mobile or IoT applications.

Detail view of a Block Diagram showing a FPGA Logic Block

A brief introduction of Field Programmable Gate Arrays (FPGAs) and how to use them in an application.

Learn More

Detail view of a FPGA based Trenz TE0726-03M ZynqBerry dev board

You really need to design, fabricate, and solder up a prototype pc board, and who has time for that if there are better (faster and lower cost) alternatives?

Learn More

A detailed view of a FPGA logic architecture

Designers are looking beyond traditional microcontrollers (MCUs) or application processors (APs) and considering field-programmable gate arrays (FPGAs) with their parallel processing capabilities.

Learn More

Single Board Computer (SBC)

An image of the BeagleBone Black SBC 

Single Board Computers (SBC) offer both computational power and processing speed in a compact form factor. Like the name suggests SBCs are a complete microprocessor-based computer that has been shrunk down and compacted onto a single circuit board, typically only a few inches to a side.

Along With a common ARM or x86 based microprocessor core, these boards typically run a full General-Purpose Operating System (GPOS) most often a Linux distribution but there are other boards that can run the Android mobile device operating system or Windows 10 /11 Operating system.

With their small size they typically can't compete with modern desktop computers or workstations some newer boards are still capable of reaching up to 1 GHz of clock speed with up to 8 GB of Ram memory

SBC low price point and computational power has made them very attractive for a range of applications, from educational and maker spaces to industrial and aerospace applications. In a range of board sizes and interfacing options there is bound to be an SBC in some form factor that would be suitable for your application.

SBC Downsides

While these are powerful and flexible boards, there are several drawbacks that need to be considered before dropping an SBC into your project.

The first of which is that most SBC are not a simple plug and play platform and do require a setup process that often requires an external computer to fully set up and install operating system software from an external source.

There are also several peripherals that would need to be considered as well, a monitor, keyboard, external storage devices, adequate power supply and cabling often need to be purchased separately.

LiDAR camera returns RGB (left), and bitmap image (right) that represents distance from the camera.

Machine vision with object depth sensing can be easily added to industrial systems, improving safety, productivity, and efficiency.

Learn More

An image of a Raspberry Pi Single Board Computer

Initiate the flashing process over your home network using a beta bootloader, simply connect your Pi to your network and click a button in the imager app.

Learn More

A Smart Home Hub ecosystem based on a Single board computer

Let’s take a look at the installation and setup process of Home Assistant OS on a cost and power-effective x86 single-board computer.

Learn More

Image of Raspberry Pi Zero 2 W Board

The Zero 2 W is an impressive single-board computer perfect for IoT and robotics projects. Follow this guide to get your board up and running quickly and easily.

Learn More

Image of Seeed Studio ODYSSEY Single Board Computer

Single Board Computers (SBC) provide the connectivity needed for your IoT application from ethernet to Wi-Fi & more. Browse DigiKey’s large selection of SBCs today!

Learn More

Products