Power Sub-system is one of the most important aspects of any embedded system. Obviously, nothing works without electric power. Characteristics of a good power supply includes

  • Stable and smooth voltage supply
  • Sufficient current for the operation of the device
  • Good power efficiency
  • Stable performance over operating temperature range
  • Thermal performance with limited to no air flow
  • Proper filtering of noise (complying with EMI standards)
  • Proper decoupling
Replacemant Battery - 3.7V 750mAh. by MIKI Yoshihito, on Flickr
Creative Commons Attribution 2.0 Generic License

 

In this blog, in continuation of the series on embedded system design, we will discuss some power supply design considerations for a system.

Power Supply Design – Models

Considering wall power and batteries as the primary power sources, an embedded system could be powered in any one of the following models:

  • Wall powered
  • Wall powered with battery backup
  • Primarily battery backed up
  • Fully battery powered

Wall Powered Devices

These devices operate fully on power supply available from wall power. They typically consume more power and work in tandem with systems that consumes a lot of power, that they are redundant when the underlying system could not be powered on. Many of the devices in use fall under this category including medical devices, industrial systems etc.

Wall Powered with Battery Backup

These classes of devices are very similar to above case but will have a limited power backup using batteries. This backup is useful to properly shutdown the system and to store the system configuration and acquired values safely till full power is back.

Primarily battery backed up

The most common example of these devices is mobile phones. They are designed to work primarily with battery power supply. Whenever needed the system can be charged back. It incorporates a full-fledged battery charging and managing circuitry.

Primarily Battery Backed Up

The most common example of these devices is mobile phones. They are designed to work primarily work with battery power supply and whenever needed, the system can be charged back. It incorporates a full-fledged battery charging and managing circuitry.

Fully Battery Powered

These devices are designed to work only from battery supply that does not have a charging mechanism. These batteries have to be externally charged or non-rechargeable batteries used.

Apart from these, there are many power sources being used in embedded systems including photo-voltaic – solar power, etc. With the upcoming wearable computing becoming a trend, the power supplies include generating from unconventional sources like audio jack of smart phone, human/mechanical movements or even body heat etc.

Power Supply Design – Considerations

In this discussion, we will primarily look into the power supply design for wall power with battery backup devices. The below figure typically explains this case.

Power Supply Consideration

Embedded System – Power Supply

The DC power input from the wall socket is used to power the system. If the wall power is absent, the battery powers the system. The Power path controller is used to route the power from preferable source. The power conditioning circuit finally supplies to the load at the required voltage and current. Battery monitoring and charger circuit is necessary for managing the battery.

In the upcoming sections, we will discuss about the major components involved in power supply design.

Wall Power Input

Wall power is obtained from AC wall adapter plugged in the wall socket. It provides constant low voltage DC suitable for running the system from the high level AC source in the wall socket. The AC wall adapters are available in multiple ranges with different ampere current ratings. Adjustable wall adapters are also available were the DC output voltage can be varied suitably. The main factors to be considered on selecting the wall power are voltage and current.

The voltage supplied by the wall power should be more enough to satisfy the input voltage requirement of the power conditioning circuit usually comprising of linear or SMPS regulators. Also if the power supply system incorporates battery charging, then the voltage requirement of the battery charger should be taken into account.

Current consumption of the system should be carefully estimated before selecting the wall adapter. The efficiency of the regulators in the power conditioning circuitry should also be taken into account. The wall adapter with current rating more than the estimated amount should be chosen for proper working to allow unexpected surges. And quality of the COTS power supply is important as many low power supplies inject a large amount of noise as well as not able to provide voltage levels across rated current ratings.

Battery

Batteries are devices that store electrical energy in form of chemical energy and reconvert to DC current at the time of usage. The primary design consideration in using a battery in embedded design is its Capacity. The capacity of a battery is defined by the amount of electric charge it can supply at the rated voltage and temperature, generally measured as Ampere/Hour. For example, a 1000mA/h Lithium-Ion battery can deliver 1A current over a period of 1 hour without any drop below 3.6V, at room temperature.

While the capacity defines the amount of charge the battery stores, it does not defines how fast this stored charge can be used. For this, Charging rate or the C-rate is used as the important measure of the charge and discharge current of a battery. A charge rate of 1C implies that the battery can be discharged at the rated current in 1 hour while a 2C implies that the capacity can be utilized in even 30 minutes. So a 1000mA/h battery if rated at 1C, can deliver 1A in 1 hour, at 2C can deliver 2A in 30 min and at 0.5C can only deliver 500mA over 2 hours.

Another factor in battery selection is the self discharge rate. The batteries loose a certain amount of charge even without being used. So charge interval requirements of the application should be considered for the design.

Batteries are available in different chemistries which are suitable for difference operating conditions. The most commonly used chemistries are as follows,

Lithium-Ion

One of the most used technologies, Li-ion is used where high-energy density and lightweight is of prime importance. The technology is fragile and a protection circuit is required to assure safety.
The nominal cell voltage is 3.6V with nominal load current at 1C. No periodic discharge is needed, hence it requires less maintenance. Self-discharge is less than half that of NiCd and NiMH. It is more costly than the other battery technologies. Applications include notebook computers and cellular phones.

Nickel Cadmium

NiCd is used where long life, high discharge rate and economical price are important. Has relatively high self-discharge hence they require recharge after storage. The nominal cell voltage is 1.25V. Best result is obtained at load current at 1C. Many standard NiCd batteries allow peak current discharge to 20C. Main applications are two-way radios, biomedical equipment, professional video cameras and power tools. The NiCd contains toxic metals and is environmentally unfriendly.

Nickel Metal hydride

NiMh has a higher energy density compared to the NiCd at the expense of reduced cycle life. It contains no toxic metals. The nominal cell voltage is 1.25V. Best result is obtained at load current at 0.5C. 30 – 40 percent higher capacity over a standard NiCd. About 20 percent more expensive than NiCd. Applications include mobile phones and laptop computers.

Lead acid

Lead acid batteries are most economical for larger power applications where weight is of little concern. Nominal cell voltage available is 2V per cell. Best result is obtained at load current at 0.2C. The lead acid battery is the preferred choice for hospital equipment, wheelchairs, emergency lighting and inverter/UPS systems.

Suitable battery backup voltage corresponding to the regulator requirement can be selected by connecting the batteries in series. For example, if the power conditioning regulator requires at least 6V to provide fixed 5V, then 5 NiCd/NiMh (5*1.25V) or 2 Li-ion (2*3.7V) or 3-cell (3*2V) Lead acid battery can be connected in series.

For a detailed analysis of battery technologies, kindly refer to the Ivan Cowie blog on batteries.

Battery Manager and Charging Circuit

Different charging procedures are required for different battery chemistries. During a period of time, they may be charged in voltage mode and later in current mode. Such complex requirements make it impossible to be implemented using simple components. Separate battery charging IC’s are available for charging application. Using these charge management IC’s, battery can be safely charged to its final full charge voltage. These charge management IC will monitor the voltage at the battery terminals and cut off the charging when the voltage reaches the final full charge voltage. They also provide indication over pins or I2C interface about the current stored capacity, battery health status, charge indications etc.

The charge current should be carefully selected. While a higher charge current may charge the battery faster, it will add to input supply requirement if the main load is operating as well. Slower charge current will need more time that might not suitable for practical purposes. Once again it is a complex math of usage, battery chemistry, BoM costing etc.

Power Path Controller

The power path controller performs the switching of the power to the power conditioning circuit. The circuit powers the load with wall power till it is available. Once it is cut off, the battery back-up power is immediately routed to the load. The response time of these controllers should be very fast that the load should not be under-powered during this wall to battery power transition.

Power Path controllers can be implemented with simple mechanism like two diodes or with specialized controller IC’s . The drop in the voltage due to the presence of this circuit should be factored in the design along with the current ratings.

Power Conditioning Circuit

Power conditioning circuits are used to regulate the high voltage DC from the wall or battery power source to low voltage DC suitable for the embedded system.

An embedded system consists of many different peripherals that can operate from a wide range of power supply. So to power the entire system, multiple DC-DC voltage converters are used. Apart from stepping down the power supply, the regulators also minimizes the power supply noise and provides protection for the embedded system from any possible damages due to fluctuating input voltages/Electro static discharges.

Two types of regulators generally used in power supply systems are

Linear regulators

Linear regulators use at least one active component like transistor and require a higher input voltage than the output. Typically they accept the load current at the higher DC input voltage, reduces the voltage and delivers the current to the load at reduced voltage. They are very popular due to its small size, less noise and cheaper.  They provide clean output voltage with low noise. But since they dissipate the extra power as heat, they generate a lot of heat which must be dissipated using bulky heat sink. And with conversion to this unusable heat, they have low efficiency when compared to switching regulators.

Switching regulators

Unlike the linear regulators, the switching regulator can step up, step down or invert the input voltage. They work by transferring energy in discrete packets from the input voltage source to the output. This is carried out with the help of an electrical switches usually MOSFET.  In order to transfer the energy from input to the output they use inductors or capacitors. They deliver the power to the system upon requirement and hence they waste less power. So they are very much efficient than linear regulators and can typically have 85% efficiency. Since their efficiency is less dependent on input voltage, they can power useful loads from higher voltage sources. Switch-mode regulators are used in devices like portable phones, video game platforms, robots, digital cameras, and computers.

The drawback is that, they operate in high switching frequency which leads to more noise than linear regulators. Also they require more components which lead to more cost, more space and more complex circuit too.

Power Supply Design – PMIC’s

Nowadays for the stringent requirement of less floor space, all the above mentioned circuits are available in a single package as PMIC – Power Management IC. Silicon vendors often offer PMIC for the processor to be used with. The PMIC is tightly coupled with the processor and offers power scaling features for reducing consumption at the time of less load. Apart of these functionality, they may also incorporate other analog system functionalities like Audio Amplifiers, Touch controllers etc. Using PMIC reduces the number of components drastically as well as the cost at a higher design complexity.

Electromagnetic Interference (EMI) considerations

Electromagnetic energy whether intentionally or non-intentionally generated results in Electromagnetic Interference (EMI) with other equipments. This will affect other equipments by injecting noise into it.  Power supplies, especially SMPS based, are primary source of EMI. Suitable filtering mechanisms should be implemented to control the EMI along with proper enclosure design. Sometimes, even a passive LC filter will provide a good solution for filtering the EMI.

Embien Technologies has rich experience in designing various embedded system. Kindly contact us for your requirements of system design or for solving any issues in your design.

Any element that can retain a state with time is called memory. Memory is the most important part of a processing system considering the fact that both the instructions to be executed as well as the data being manipulated are stored in memory. In the fourth post of the series on embedded system design, we will discuss about the memory types and their applications.

Memory Usage

As mentioned earlier, memories are used to store primarily two kinds of information – Program and data.

Program information are the instructions i.e. opcodes that are to be executed by the processor. Generally they are stored in a non-volatile memory that is mapped directly to the address space of the processor. Or they might be stored in external memories (say as files in a partition) and loaded on to a volatile memory just prior to execution of the program.

Data memory can be used to store primarily two kind of information. One is relating to the intermediate data being processed- for e.g. a variable storing a value during course of execution of an algorithm or a Process Control Block in an OS etc. The other is the Stack which is used by the processor to store its return functions and local variables. In either case the memory type is volatile.

Memory Types

The primary differentiation of the memory is based on the volatility i.e. whether the stored data is retained after power cycling the device.  Accordingly, the memory can be either Volatile memory or a non-volatile memory.

Volatile memory

Volatile memories can hold their contents only when power is continuously applied to the memory devices. As soon as the power is removed, the contents in the memories are lost. The primary usage is to store the data/stack as well as storing the program instructions.

Examples of volatile memories include static RAM, dynamic RAM and static dynamic RAM.

Generally the volatile memories used are of type Random Access Memory (RAM) i.e. data at any address in the memory can be accessed by giving the address in the address bus of the memory. Primarily the volatile memory is divided in to two types:

SRAM – Static Random Access Memory

The static RAM is a type of memory that uses bi-stable latching circuitry to store each bit. Due to the design, the memories need not be refreshed. Thus the data stored will be static till the duration of power being applied to the RAM.

The primary advantage of SRAM is its speed. Fast SRAMs can operate on par with the processor speed enabling access times equal to a clock cycle used by the microprocessor. Synchronous SRAMs are the preferred way of implementing Instruction and Data caches in a processor system. Further since there is no need for specialized controllers to refresh the RAM, they are easier to use with low end microcontrollers.

The down side is that the density of the SRAMs is comparatively lower than the DRAMs. Also the cost is comparatively higher.

DRAM – Dynamic Random Access Memory

DRAM stores each bit in a storage cell consisting of capacitor and transistors. Since capacitors lose their charges quickly they need to be recharged. So by design, each bit in the DRAM must be refreshed periodically to maintain its contents and hence the name “Dynamic”. Due to the structural simplicity (only one transistor and a capacitor per bit), DRAM can be packed much denser than SRAM.

Even though they need specialized controller to take care of refreshing, their higher density provides a higher cost to memory ratio compared to SRAM’s.

The most popular type of DRAM used in the SDRAM.

SDRAM – Static Dynamic Random Access Memory

SDRAM is a type of DRAM that ‘Synchronous’ with the system bus. The device needs a SDRAM controller typically a part of the SoC for it to function properly. The data is organized as row and column and an internal state machine that takes care of fetch and refresh logic.

High speed varieties of SDRAM include DDR, DDR2, and DDR3. DDR – Double Data Rate RAMs can transfer data on both edges of the clock and hence the name. DDR2/DDR3 has higher data width and different power requirements even though internally they operate at the same rates as DDR.

Non-volatile memory

Non-volatile memories will retain their contents even when the power to the memory device is removed. This makes them better choice for storing the data that are to be retrieved after the system is restarted. The configurations settings are typically stored in the non-volatile memory. They are typically slower than volatile memory and require complex procedures for reading and writing.

Though there are many other kinds of technologies such as Disk-On-Chip, SSD, MMC Cards etc, are available, the most common non-volatile memories found in embedded systems are as follows

  • Flash memory
  • EEPROM
  • SD cards

Flash memory

Flash memory is a most commonly used type of non volatile memory in the embedded system for their durability and larger number of erase cycles.

Microcontroller unit mostly contains flash memory on which the programs are written for execution. Since flash memory is integrated on-chip with the microcontroller, its usage become easier. Flash memory is generally sector/block erasable, which means one sector/block of the memory can be erased at a time in which each bit erased is moved to a state ‘1’. When it is written, the state is changed from ‘1’ to ‘0’.

Apart from the on-chip flash memories, there are two types of flash memories available for external storage. They are NAND and NOR flash memories

NAND flash

NAND flash memories are the most commonly used types of flash memory. NAND type of flash memory can be written and read in blocks. They are generally smaller and are primarily used in USB flash drives and SSD’s. They have core cells connected in series either as 8 or 16 cells.

NOR flash

NOR flash contains core cells connected in parallel (common ground). Since random access is supported, they are used for storing Execute in Place code.

Though NAND technology is slower compared to NOR flash, it offers higher density and better cost ratio as well as a higher life span up to 10 times more than NOR. Typical interface for flash memory to the processor is the SPI bus.

EEPROM (Electrically Erasable Programmable Read Only Memory)

EEPROM is a special type of memory that supports erasing and programming of each bit of memory unlike the flash technology that supports only block erases.  Further the power consumption is very low for EEPROM. SPI, I2C are the most commonly available interface options for EEPROM.

SD cards (Secure Digital cards)

SD cards are the type of non volatile memory commonly used in portable devices. The SD card itself has a processor inside to take care of the complex interface requirements as well as performing internal operations like error correction, wear levelling etc. SD cards are also used as a boot device is most of the high performance embedded system.  Common SD card interface modes available are SD and SPI.

Memory Selection

Selection of suitable memory is very much essential step in high performance applications, because the challenges and limitations of the system performance are often decided upon the type of memory architecture.

Systems memory requirement depend primarily on the nature of the application that is planned to run on the system. Memory performance and capacity requirement for low cost systems are small, whereas memory throughput can be the most critical requirement in a complex, high performance system.

Following are the factors that are to be considered while selecting the memory devices,

  • Speed
  • Data storage size and capacity
  • Bus width
  • Latency
  • Power consumption
  • Cost

SRAM’s have lower data storage and capacity hence they are suitable for lower end systems where as SDRAM for higher end systems with complex requirements.

Among the high speed types of SDRAM, DDR2 memory modules can have memory capacities from 256MB to 4GB capacities. Most of the DDR2 memory chips come in FBGA (Fine Ball Grid Array) package. The package allows higher memory densities in smaller space with better electrical properties. DDR2 memory uses 1.8V for power, resulting in lower power and cooler operation, whereas the DDR uses 2.5V.

Further there are variations of DDR available that are fine tuned for particular applications. For example, the Graphic DDR (GDDR) memory is designed for higher performance than the standard DDR memory. To achieve this, they operate at additional voltage of 2.0V. But the capacity of GDDR memory devices in comparison to DDR tends to be reduced typically from 256Mb to 512Mb. This enables them to be used in resource intensive video cards. On the other end of the spectrum, Mobile DDR (MDDR) memory devices are optimized for low power applications such as battery operated and handheld devices. In deep power down (DPD) mode of operation, their current can go as low as 10uA.

The data rates are defined by the RAM manufacturer and are based on various factors such as CAS latency, RAS-CAS delay etc. Even a increase of 0.5 cycle, can impact a change of up to 10% of speed.

Again, these high speed varieties of SDRAM needs careful PCB layout with signal integrity considerations including presence of suitable terminations.

Obviously a 32-bit width memory can fetch more data in a same cycle as a 16 bit memory. Thus more the data width, better the transfer rate, provided the data line support is available.

Another factor, when going for non-volatile programmable storage, is deciding the programming model. For example, it could be ISP (In-System Programming) that allows programming the flash but needs the application to be stopped at that time. Or it could be IAP (In-Application Programming) that will allow re-programming of the memory even when the application firmware is running. This is determined by the memory architecture. Nowadays many microcontrollers support both the options and ISP is used for manufacturing and IAP is appropriate for field updates.

Though nowadays the memory controllers available in the SoC primarily dictate the selection of the memory devices, we believe this blog provides a good insight about various memory technologies, their application and selection. In the next blog, we will analyze about the power supply design in an embedded system.

In continuation with our Part 2 article on embedded processor classification where we discussed about the various processor architectures available and types, we will see about considerations in selecting the processor for an embedded product design.

Processor selection for an embedded system

With numerous kinds of processors with various design philosophies available at our disposal for using in our design, following considerations need to be factored during processor selection for an embedded system.

  • Performance Considerations
  • Power considerations
  • Peripheral Set
  • Operating Voltage
  • Specialized Processing Units

Now let us discuss each of them in detail.

Performance considerations

The first and foremost consideration in selecting the processor is its performance. The performance speed of a processor is dependent primarily on its architecture and its silicon design.  Evolution of fabrication techniques helped packing more transistors in same area there by reducing the propagation delay. Also presence of cache reduces instruction/data fetch timing. Pipelining and super-scalar architectures further improves the performance of the processor. Branch prediction, speculative execution etc are some other techniques used for improving the execution rate. Multi-cores are the new direction in improving the performance.

Rather than simply stating the clock frequency of the processor which has limited significance to its processing power, it makes more sense to describe the capability in a standard notation. MIPS (Million Instructions Per Second) or MIPS/MHz was an earlier notation followed by Dhrystones and latest EEMBC’s CoreMark. CoreMark is one of the best ways to compare the performance of various processors.

Processor architectures with support for extra instruction can help improving performance for specific applications. For example, SIMD (Single Instruction/Multiple Data) set and Jazelle – Java acceleration can help in improving multimedia and JVM execution speeds.

So size of cache, processor architecture, instruction set etc has to be taken in to account when comparing the performance.

Power Considerations

Increasing the logic density and clock speed has adverse impact on power requirement of the processor. A higher clock implies faster charge and discharge cycles leading to more power consumption. More logic leads to higher power density there by making the heat dissipation difficult. Further with more emphasis on greener technologies and many systems becoming battery operated, it is important the design is for optimal power usage.

Techniques like frequency scaling – reducing the clock frequency of the processor depending on the load, voltage scaling – varying the voltage based on load can help in achieving lower power usage. Further asymmetric multiprocessors, under near idle conditions, can effectively power off the more powerful core and load the less powerful core for performing the tasks. SoC comes with advanced power gating techniques that can shut down clocks and power to unused modules.

Peripheral Set

Every system design needs, apart from the processor, many other peripherals for input and output operations.  Since in an embedded system, almost all the processors used are SoCs, it is better if the necessary peripherals are available in the chip itself. This offers various benefits compared to peripherals in external IC’s such as optimal power architecture, effective data communication using DMA, lower BoM etc. So it is important to have peripheral set in consideration when selecting the processor.

Operating Voltages

Each and every processor will have its own operating voltage condition. The operating voltage maximum and minimum ratings will be provided in the respective data sheet or user manual.

While higher end processors typically operate with 2 to 5 voltages including 1.8V for Cores/Analogue domains, 3.3V for IO lines, needs specialized PMIC devices, it is a deciding factor in low end micro-controllers based on the input voltage. For example it is cheaper to work with a 5V micro-controller when the input supply is 5V and a 3.3 micro-controllers when operated with Li-on batteries.

Specialized Processing

Apart from the core, presence of various co-processors and specialized processing units can help achieving necessary processing performance.  Co-processors execute the instructions fetched by the primary processor thereby reducing the load on the primary. Some of the popular co-processors include

Floating Point Co-processor:

RISC cores supports primarily integer only instruction set. Hence presence of a FP co-processor can be very helpful in application involving complex mathematical operations including multimedia, imaging, codecs, signal processing etc.

Graphic Processing Unit:

GPU(Graphic Processing Unit) also called as Visual processing unit is responsible for drawing images on the frame buffer memory to be displayed. Since human visual perception needed at-least 16 Frames per second for a smooth viewing, drawing for HD displays involves a lot of data bandwidth. Also with increasing graphic requirements such as textures, lighting shaders etc, GPU’s have become a mandatory requirements for mobile phones, gaming consoles etc.

Various GPU’s like ARM’s MALI, PowerVX, OpenGL etc are increasing available in higher end processors. Choosing the right co-processor can enable smooth design of the embedded application.

Digital Signal Processors

DSP is a processor designed specifically for signal processing applications. Its architecture supports processing of multiple data in parallel. It can manipulate real time signal and convert to other domains for processing. DSP’s are either available as the part of the SoC or separate in an external package. DSP’s are very helpful in multimedia applications. It is possible to use a DSP along with a processor or use the DSP as the main processor itself.

Price

Various considerations discussed above can be taken in to account when a processor is being selected for an embedded design. It is better to have some extra buffer in processing capacities to enable enhancements in functionality without going for a major change in the design. While engineers (especially software/firmware engineers) will want to have all the functionalities, price will be the determining factor when designing the system and choosing the right processor.

In the upcoming blog, we will discuss about various memory technologies and factors to be considered when selecting them.