Embedded controller

This is an old revision of this page, as edited by Jesse Viviano (talk | contribs) at 18:58, 27 June 2014 (Add copy edit request tag. Also, add wikilink to the article showing stuff about BMCs.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An embedded controller (EC) is a microcontroller in computers that handle various tasks independently of the operating system.

Tasks

An embedded controller typically has the following tasks:

  • Receiving keystroke signals from both the keyboard and other buttons and switches (e.g., power-on button, lid switch)
  • Turning the computer on and off
  • Charge control of the batteries
  • Thermal measurement and management including controlling the fans and responding to thermal emergencies
  • Placing the actual computer system into a "sleep" mode (standby) and the reawakening of it (Resume)
  • Control any LEDs on the system
  • Optionally, remote diagnostics and remediation of a computer.

The embedded controller is always on when power is supplied to the mainboard (from the battery, external adapter, or +5VSB from a power supply unit).

The actual computer system can communicate with the embedded controller. For one of the following forms of communication is often used:

Software

The Embedded Controller has its own RAM and almost always its own flash ROM on which the executable software is stored. This software is depending on the manufacturer and often named differently:

  • "firmware", "EC Firmware" or "Embedded Controller Firmware"
  • "EC BIOS" or "Embedded Controller BIOS"
  • "Micro software"
  • "Keyboard BIOS", "Keyboard Controller BIOS" or "KBC BIOS"

Many BIOS updates also package updates to the embedded controller firmware.

In cases where there is no separate firmware for BIOS and the embedded controller, the embedded controller's firmware would be inside the BIOS ROM.

Name

The name "Keyboard Controller BIOS" comes from the fact that the embedded controller evolved from the keyboard controller and often still is used as a keyboard controller. Even today, an ACPI embedded controller communicates with the CPU by using the same I/O ports that keyboard controllers used in the past: I/O ports 0x62 and 0x66.

System architectures

Common microcontroller architectures for embedded controllers are:

Known embedded controller models

Ergonomics

Although the Embedded Controller is very "deep" in the system, because of the control of the cooling, it is for the user, important nonetheless. Often produce notebooks (even with power saving technology) as much waste heat that the controller based on the temperature decides to turn on the fan. The fan is not simply connected, but for a short time "turned up" and then at a lower speed left until a desired temperature was reached. This can for ergonomic work be very uncomfortable, especially if this occurs regularly and the fan - particularly in quiet rooms - is clearly audible.

If so, a change of control: The fan will no longer be "turned up" and the speed remains - at moderate temperatures - very low. In this case, it is likely that the resulting flow of air no longer turbulent but laminar and the fan therefore is hardly audible. Is often the cooling performance of such a modified system almost as good as that of the original system. But is it not, take a ventilation process until the target temperature was reached, longer.

To implement such a modification, a change in the embedded controller firmware is usually necessary. Sometimes a change in the ranges ACPI DSDT from (namely, when the fan control not by the embedded controller, but by the ACPI interpreter is carried out of the system).

See also