|
EEPROM
Considerations Revision 1.17 – 19th Oct
2011 www.touch-base.com\documentation\general |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Some pointer device controllers have onboard EEPROM (Electrically
Erasable Programmable Read Only Memory). EEPROM can be used to store
information pertinent to the controller and also offers a memory storage area
for applications and drivers to store data. One of the main uses for this
memory with UPDD is to store the calibration data within the controller
rather than locally on a system. In all cases an absolute pointer device needs to be calibrated with
the systems video display such that the point of contact is aligned with the
video image. UPDD
calibration is performed by drawing points on the video display at known
locations that are then touched and the touch co-ordinates are noted for the
given point of display. The driver can then use this data to scale and map
the touch input to the video location. This information, known as the
calibration data, needs to be stored for future reference, such that the
device is calibrated at each system power up. This information can be stored
locally on the system (e.g. the system’s persistent memory, within a file,
etc) or externally in the controller’s EEPROM. Given that UPDD supports 100’s of different pointer devices, all with
different characteristics, our driver generally stores its calibration data
locally within the system. However, there are cases where it is desirable to store calibration
data externally. This is especially true of systems where the calibration
data cannot be stored locally, such as some embedded system configurations
where the entire system is locked down and any changes made are lost when the
device is powered off. In other cases
it is desirable to calibrate a touch screen prior to usage on a similar
system so that it is calibrated when first used and will only require
recalibrating if the EEPROM calibration is inaccurate. As and when we have been requested to support EEPROM calibration for a
given controller it has been added. When one of these controllers is defined
in the UPDD build (and with EEprom
enabled) and added in the UPDD Console as an active device an EEPROM
check box is shown on the UPDD Console, Calibration screen.
When this EEPROM check box is enabled (or set internally in the UPDD
settings), it indicates that; 1)
EEPROM calibration is utilised at the NEXT
calibration. It is important to note that this setting enables the EEPROM
calibration procedure such that at the point of calibration the EEPROM
calibration procedure is invoked. 2)
Since UPDD 4.1.8,
build id 1738 the calibration EEPROM
retrieval function is invoked to read calibration data in cases where
UPDD native calibration data is stored on the controller. EEPROM implementationsEEPROM calibration falls into two distinct categories, one whereby UPDD stores its own native calibration data in EEPROM and one whereby the controller’s own firmware calibration procedure is invoked, more commonly known as a firmware calibration. EEprom is implemented in UPDD by the use of specific eeprom protocol code that is written for each controller. When a controller is defined in our controller production system we indicate the eeprom protocol to use to enable eeprom calibration. The protocol also indicates if eeprom calibration utilises the controllers own firmware calibration capabilities or stores UPDD calibration data for later retrieval, as described below
Enabling EEprom protocolsGive that the EEprom interface to each controller is unique there is
separate protocol code written for each controller. When we define a
controller we identify the protocol to use. If the EEprom protocol setting is
blank then the EEprom option will not be shown The protocol setting protocol identifiers are shown below. UPDD
versions numbers indicates when support was added. Those listed in Red
indicate additional development work is required to support in the OS and
those listed in Gray are untested but in
theory should work.
For UPDD 4.1.x the EEProm protocol id settings are held in the UPDD settings file, TBUPDD.INI, within the branch [updd\paramaters\n] (for configured/active controllers) and [updd\parameters\controller\ts00n] the default settings for controllers supported by the driver: eeprom calibration=0x1 eeprom protocol=’protocol id’ Any other EEprom settings within the file are redundant in 4.1.x and above. For earlier UPDD versions the EEprom interface is hard coded and does not utilise the protocol id setting. For CE see EEprom notes in the CE documentation. At the time of writing the 4.1.10 CE driver only supports EEprom in controllers whereby UPDD calibration is being stored and not firmware based calibration controllers. This support will be added as required. If you are using a driver which supports one of the above controllers but does not show the EEprom option then it is likely the EEprom setting was/is not defined in the definition of the driver at build time. If this is the case contact Touch-Base to request an updated build. Adding EEPROM supportWe can add support in UPDD for any EEPROM enabled controller as required once supplied the technical documentation which describes the controller’s EEPROM calibration interface. If you are a controller manufacturer and would like to add EEPROM capabilities to you controller, we are aware of three methods that have been utilised as described below: Raw ModeFirmware commands are used to specify that raw blocks of data can be stored and retrieved from EEPROM. In this mode, UPDD simply stores and retrieves the calibration from the controllers EEPROM. This is the simplest method to implement for both the firmware developers and our driver as the EEPROM read and write functions are already built into the UPDD calibration program. Formatted modeThe controller’s firmware dictates the format of the calibration data passed to the controller which is further processed by the controller. The co-ordinate data is then scaled and mapped to a grid co-ordinate range, based on the formatted data. In this case the calibration program has to gather calibration data as dictated by the data format requirement. Co-operative modeThe controller’s firmware exposes calibration commands such that the calibration program issues a firmware command for each calibration point displayed and the firmware captures the calibration points in real-time. The number of calibration points and the pattern used is dictated by the firmware’s requirements. The co-ordinate data is then scaled and mapped to a grid co-ordinate range, based on the capture calibration information. ContactFor further information or technical assistance please email the technical support team at technical@touch-base.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||