Engineers who must investigate the use of touch or proximity
sensors in a front-panel design will like this board and the free software from Silicon Labs. I enjoyed working with
it and found it easy to use. The board provides four capacitive touch buttons,
a capacitive proximity sensor and an infrared (IR) proximity sensor. The IR
sensor detects a finger, for example, at about 10 cm, while the capacitive
proximity sensor detects an object at a shorter range. The pre-programmed
software worked well and provided a good demonstration of how these controls
operate. An LED associated with each sensor indicates its state. Software also
monitors sensor states. Silicon Labs provides excellent software tools.
In this kit, a C8051F800 microcontroller with capacitive-sensing
inputs handles the capacitive devices and a Si1120 proximity/ambient-light
sensor chip controls an IR LED and detects the proximity of an object.
 |
Silicon Labs' QuickSense software provides the key to using these
types of sensors successfully. You start by analyzing the performance of the
sensors on the board. Then you configure hardware for either an 'F700 or an
'F800 MCU and automatically generate configuration code, as well as a
ready-to-use project framework for a compiler. Silicon Labs provides an
integrated-development environment (IDE) that works with tools from Keil or
Raisonance, or with the Small Device C Compiler (SDCC). I used the Keil
compiler already installed from a previous Silicon Labs evaluation.
A Performance Analysis tool presented a display on my PC that
plotted values from one or more sensor as time versus counts from the MCU's
sensor inputs. Five signals arise from the touch sensors and proximity sensor.
A sixth signal comes from the IR proximity sensor. An image of a sensor board
on the PC display lets you choose sensors to monitor and it provides raw
numeric data for each sensor. You also can set thresholds for each sensor. The
QuickSense Front Panel User's Guide (UG) missed an important point, though: If
you want to see the upper and lower threshold percentage for a sensor, you must
first click on the
numeric value for
the sensor on the image. It took me a while to figure this out. The thresholds
represent the points - as percent of full-scale values - at which software
determined a change in sensor state. An engineer would use this type of
information when going from a prototype-sensor layout to the Configuration
Wizard that accepts parameters and provides working code for a design. The
graph of sensor activity includes two heavy black traces that go unexplained.
Silicon Labs has a revision of the manual underway that should clear up several
points and provide more information.
After I experimented with the threshold values and monitored
sensor activity, I printed the QuickSense Studio User's Guide that explained
how to create a new software workspace file, select an MCU, configure the MCU's
I/O pins for the sensors and for a serial port (UART, SPI, or SMbus), and
create the QuickSense firmware API files for a project. A section in the guide
provided detailed explanations of the several steps and programs involved.
Unfortunately, it does not explain all of the options. But if you "mouse
over" a parameter you get a short explanation on the screen. And when
applicable, the information refers to an application note. I liked that feature
and hope more development kit suppliers do something similar.
I didn't have my own prototype-sensor board and the SiLabs
information doesn't include a step-by-step tutorial, so I worked my way through
the steps by accepting most of the default values. At the end of the process, I
could view and export the new code in three files, QS_Config.c, QS_Config.h,
and QS_ExtDeviceConfig.h. According to Alan Sy at Silicon Labs, "The code
generated by the Configuration Wizard is best used as the base for your own
code development. So it's better to generate Config Wizard code, then import
the desired files from the EK board firmware to the Config Wizard code. The
desired file to be copied from the kit-specific code to the newly generated
code is QS_Events.c. This file is where the processing for the buttons takes
place."
To create your own code you must specify the compiler tool chain
you will use; Keil, Raisonance, or the Small Device C Compiler (SDCC). The
QuickSense Studio User's Guide explains how to open the project, either from
within the QS Studio or from within the Silicon Labs IDE. I used the Keil tools
to rebuild the original project code as supplied with the board. Unfortunately,
the Keil tools have a code-size limit that printed an error message. According
to Sy, "There is another project in the same code directory named
S_QuickSenseFrontPanelSTB.wsp. This project is configured for the SDCC
compiler. The SDCC compiler is a free, unlimited compiler which is available on
the Internet. SDCC is the best option for people who do not currently own a
code compiler."