Overview
Aside from selecting the processor, peripheral components are an important part of embedded systems. Common peripherals include memory, clock sources (oscillators), timers, communication interfaces, input/output, and analog-to-digital converters. These components should be chosen based on the system's actual requirements. This article describes the types of these peripherals and the factors to consider when selecting them.
Memory types and characteristics
Memory is a key component in embedded systems for storing program code, data, and other information required for system execution. In addition to on-chip memory provided by microcontrollers, external memory can be added. Different memory types serve different purposes.
Flash memory is a common non-volatile memory type used to retain data even after reset or power loss. It typically stores program code, firmware, and other persistent data. Flash offers fast read speeds and relatively low power consumption. Flash comes in NOR and NAND variants with different read/write characteristics and use cases.
Random-access memory (RAM) is volatile memory used for temporary storage of data required during program execution. RAM offers fast read/write performance but loses stored data after reset or power loss. Common RAM types in embedded systems include SRAM (static RAM) and DRAM (dynamic RAM).
EEPROM (electrically erasable programmable read-only memory) is non-volatile and can be erased and reprogrammed, making it suitable for storing configuration parameters, calibration data, and other persistent information.
Some systems use external memory cards such as SD and MicroSD to expand storage capacity.
When selecting memory, consider cost, read/write speed, required capacity, power consumption, and endurance. Mobile and battery-powered systems often need low-power memory. Some applications require long write/erase lifetimes. Integrating multiple memory types on a single chip can save space and simplify design, while external storage devices provide scalability.
Clock sources for synchronization
Microcontrollers may include internal RC oscillators made of resistors and capacitors, or they may rely on external frequency sources to maintain timing. Clock sources synchronize system operations such as processor execution and peripheral communication. Common clock source types include:
RC oscillator: Built from resistors and capacitors, RC oscillators are temperature dependent and their frequency can vary by about 1-5%. They can satisfy slow timing requirements such as low-frequency ADC sampling.
Crystal oscillator: External crystal oscillators provide high accuracy and stability. Frequency variation is typically measured in parts per million (ppm) rather than percent. Crystal oscillators are suitable for applications requiring precise timing and are often paired with microcontrollers and processors.
Ceramic resonator: Lower cost than crystals but with lower accuracy and stability. Ceramic resonators may have tolerances on the order of 10%, so they suit cost-sensitive applications with relaxed timing requirements.
MEMS oscillator: Micro-electro-mechanical systems oscillators are compact, vibration resistant, and low power. Their accuracy is generally lower than crystal oscillators but they are well suited for size-constrained, low-power, vibration-prone applications.
Oscillator modules integrate an oscillator and related circuitry to provide a convenient external clock source and simplify system design.
GPS module: By receiving GPS signals, a GPS timing module can provide high-precision time synchronization for applications that require highly accurate timing.
Real-time clock (RTC): Low-power RTCs maintain timekeeping through power loss and are used when the system must retain wall-clock time across power cycles.
When choosing a clock source, consider accuracy and stability first, then cost, power consumption, integration level, and the operating environment such as temperature and vibration, as well as any synchronization requirements.
Timers are common hardware modules used to generate time bases for timing and counting operations. Timers produce precise delays and measure time intervals for tasks such as communication protocols and sensor polling. Counters track occurrences of external events, such as pulse counting or frequency measurement, and are used in devices like meters and step counters. Select timers and counters based on required precision and timing range.
Communication interfaces for hardware data exchange
Communication interfaces enable data exchange between hardware modules and are generally classified as parallel or serial. Parallel communication transmits multiple bits simultaneously over multiple lines, requiring wider data buses and more I/O lines and wiring. Serial communication transmits one bit at a time over a single line, reducing I/O and wiring complexity.
Serial communication can be synchronous or asynchronous. Asynchronous serial transfers do not require a shared clock signal, whereas synchronous serial requires a shared clock signal across devices to synchronize data transfers. Synchronous serial can achieve higher speeds at the cost of an additional timing line.
Transfer modes include simplex (one-way), half-duplex (two-way but only one direction at a time), and full-duplex (simultaneous two-way communication).
I2C is a two-wire serial bus that allows multiple endpoints to communicate with one or more controllers. I2C is typically half-duplex and supports data rates from 0.1 to 5 Mbit/s depending on bus configuration. It is commonly used for low-speed peripherals such as temperature sensors and EEPROMs.
SPI is a full-duplex, synchronous serial interface that commonly uses 3 or 4 lines. SPI requires a shared clock signal and can reach high data rates, often up to tens of megabits per second for nearby devices. The trade-off is higher I/O pin usage. SPI is widely used for memory, sensors, and displays.
UART is a bidirectional asynchronous serial interface configurable for simplex, half-duplex, or full-duplex communication. UART is typically slower and used for one-to-one links. Many systems include multiple UARTs to support several devices such as sensors or GPS modules.
Other common interfaces include CAN, Ethernet, USB, and various wireless interfaces. When selecting a communication interface, consider required data rate, transmission distance, power consumption, cost, integration level, real-time requirements, durability, and software support.
Input/Output and signal conversion
I/O interfaces connect and control external devices, sensors, and displays. GPIO (general-purpose input/output) pins can be configured as inputs or outputs and are used for buttons, LEDs, switches, and other simple peripherals.
ADC (analog-to-digital converter) modules convert analog signals to digital data for reading sensors such as temperature and light. DAC (digital-to-analog converter) modules convert digital signals to analog outputs for functions such as audio generation.
Selection summary
| Product type | Selection advice |
|---|---|
| Memory | Choose memory type based on intended use. Consider cost, speed, capacity, power consumption, endurance, integration, and expandability. |
| Clock source | Select clock source based on required accuracy and stability. Also consider cost, power consumption, integration, environmental conditions, and synchronization needs. |
| Communication interface | Choose based on required functionality, data rate, transmission distance, power consumption, cost, integration, real-time needs, durability, and software support. |
Conclusion
Peripheral components for embedded systems cover a wide range and offer diverse options. Select components that meet the specific requirements of the application.
ALLPCB