Touch-Base Logo
i2C interface considerations

There are various touch screen hardware interfaces, the most common being USB and Serial. However, we are increasing asked if we support the i2c interface and this can't be answered with a simple yes or no as there are a number of factors involved when dealing with this interface.  Ultimately we can get a i2c interface working but the effort involved will very much be dependent on the interface method needed to access the i2c chip.

We have successfully completed a Windows CE project using the i2c interface and the Atmel mxt224e chip. This KB article is mainly based on the experience we had with this project which we believe will apply generally to i2c chips under other operating systems as the principle is the same.

This article applies to the use of an i2c chip utilised on the bus and not with any form a bridging chip that will introduce another interface.

The specifications of a i2c chip will indicate the registry usage for setup,configuration and data extraction. The driver needs to be able to manipulate these registers to be able to configure the chip and receive touch data.

The development involved in this interface is determined by the level and manner in which the driver can access the chip.  At the lowest level the driver has to communicate directly with the chip to manipulate the registers and this requires some form of bus driver that allows register reading and writing.

This interface may well need to be performed at a kernel mode level.

In some cases, or in some OS, the chip manufacturer may supply some form of user mode interface such that the registers can be accessed from user mode i.e. an application. In the CE project we were supplied a 'proxy DLL' for this purpose but due to some limitations we accessed the chip directly.

There could be situations where a software layer has been written that does the low level i2c interfacing and offers a API to an application / user mode driver to receive touch data without the need to interface with the chip. In this case you would be dealing with an application API interface and not a i2c interface albeit we are not currently aware of any such API level interfaces.





Details
Last Modified:17/01/2014 10:57:27

Last Modified By: Dave Bhattacharjee

Type: INFO

Article has been viewed 3,115 times.

Options