Displays

Understanding the Relationship Between Touch IC Driver, Firmware, and Configuration

When working with a Capacitive Touch Panel (CTP) software engineering team, we often refer to the terms Driver, Firmware (FW), and Configuration. These three concepts are not only discussed during the design phase, but are also repeatedly involved in later stages such as testing and validation.
Understanding the relationship and differences between them is fundamental to carrying out our related work effectively.

Recently, one of my customer asked: is it possible that different Touch ICs can use a same driver. Well, as an engineer, I fully understand the reason behind this question. If we can use one driver on different touch ICs, it will greatly reduce the development effort, maintenance cost and overall system complexity.

This article may be helpful for you to understand the relationship between driver, firmware and configuration, and answer the question above.

  1. Driver

A driver is a host-side software that enables on the operating system (for example, Linux / Android / RTOS) or main controller to communicate with a hardware device. In a touch system, the driver is responsible for handing the communication protocol (such as I2C or SPI), reading and writing registers, parsing touch data, and reporting touch events to the system. The driver is a bridge between the host and the hardware, here, is the touch.

 

  1. Firmware (FW)

Firmware (FW) is the software that run on the internal MCU of the touch IC and controls its core functions and behavior. In a touch system, the firmware determines how the touch IC works want what data it output. It can capture the touch signals, execute touch algorithms, manages TX/RX channels, and defines the data format.

Here, you may notice the most significant difference between driver and firmware. Driver always works on the host MCU, it is on the host side; while firmware runs on the touch IC. In a word, the driver helps the host to understand and receive the touch date, it is the “translator” between the MCU and the touch IC. While, firmware is the “brain” of the touch IC, it tells the IC what to do and how to do.

 

  1. Configuration (Parameter Settings)

Different from driver and firmware, configuration itself is not a software, it is a set of parameters used to adjust how a touch IC operates, it provides the numerical and structural parameters that the firmware uses during operation. As a result, the same touch IC and firmware can work with different touch panels without modifying the touch algorithms*.

*What is algorithm logic? In one sentence summary, the algorithm logic are the firmware logic that converts the raw capacitive signals into accurate and reliable touch events. The algorithm logic determine whether a touch detected, where it is located, how many touch points are present.

*Here we can take a example to help you understand what a algorithm logic dose. Touch technology is widely used in kitchen appliances. For example, water droplets on an oven control panel can produce capacitive signals similar to a finger touch. The ability to tell water apart from a real finger touch depends on the touch algorithms.

Configuration is not code and does not contain any algorithm logic. It is stored in Flash of the touch IC, EEPROM, or sometimes it maybe also stored in the firmware. When the system turns on or initialization starts, firmware will read these parameters, and operate the touch algorithms based on these parameters. For example, there are two touch panels with different sizes and sensor patterns, however, we can use the same touch IC and firmware, this is achieved by setting up different configurations.

 

Now, let’s go back to our customer’s question: is it possible that different Touch ICs can use a same driver? The answer is yes. This is because a driver primarily depends on the communication protocol and data format. Do you remember, we have explain that the driver is the “translator” between the MCU and the driver IC. Same communication protocol and data format means they speak the same language. However, if the communication protocol is different, let’s say SPI and I2C, in this case, you will need two drivers. Normally, as long as the communication protocol and data format are consistent and the ICs belongs to the same series, the driver can be shared.

Should you have any questions, please consult our engineering.

Contact Us