In this walkthrough we will show you in detail all the necessary steps you need to do in SENSE in order to get the Counts of your touch sensor.
The whole process includes 8 steps:
- Import the layout, that is, the top view of the touch sensor including only the conductive parts as well as the outline of the sensor.
- Set up the StackUp, where the dielectric materials are defined and the vertical position of the dielectric and condcuctive layers.
- Set up the Pointer, which represents the finger touch so you can see later on how the Counts are affected by the finger touch.
- Run Equivalent Circuit (EC) Analysis, which gives you a representation of the physical model of your touch sensor into a system model, that is, a network of resistors and capacitors, as a netlist file.
- Select the Controller that drives the touch sensor, since Counts depend on the type and specifications of the controller used. Several MCUs of the STM32 family are included in the controller library.
- Set up the Sensor on a system level, which is actually to load here the netlist obtained through the EC Analysis (step 4).
- Set up the System Configuration that describes the connection between the controller and the sensor.
- Set up and run Counts Analysis, that will give you the values of Counts as affected by the finger touch.
For more information on all the specific steps, please browse our Help Center (https://support.fieldscale.com/en/).
Step 1. Import the layout
The layout used in this walkthrough is available as "walkthrough to get counts_4_buttons_mm.dxf".
Then you must do the same process once again to import the outline from the same .dxf file.
Your final layout design will look like this:
You have the option to rename any entity from the tree on the bottom right corner:
In case you want to prepare your own layout in a dxf file and import it into SENSE, first you need to have a look οn this detailed guide.
Step 2. Set up the StackUp
Now the stackup is ready, so you can go on and set up the pointer.
Step 3. Set up the Pointer
4. Set up and run Equivalent Circuit (EC) Analysis
Here you see the layout and you must click on the specific curves of the layout to set up the Voltage (sources) and GND (sinks) terminals that will be used later on, in System Configuration, as connections to the controller.
To do so you must zoom in, then left click on each curve and click on the button on top to assign it as a voltage or GND terminal:
Each surface of the layout must include only 1 Voltage terminal and/or 1 GND terminal. Curves that are going to be later on (in System Configuration) connected to each other should not be both assigned as the same terminal type, but the one must be assigned as Voltage terminal and the other one as GND terminal.
By using 16 CPU cores and 32 GB of memory, the EC Analysis will take less than 2 hours.
5. Select the Controller
In this example you may use the STM32F071C8Tx controller:
You can keep its default settings:
6. Set up the Sensor
Here you load the netlists derived from the previous EC Analysis (step 4):
7. Set up the System Configuration
Here you connect the physical model of the touch sensor with the controller pins.
Now you must select the Voltage and GND terminals to be connected with the controller pins.
If you zoom in, the terminals look like this:
The idea here is to split the 4 buttons into 2 groups, so the first button will be connected with G1_IO1 of Group 1.
The trace of the first button corresponds to the voltage terminal named “Source 1”, which will be connected with the G1_IO1 pin through a resistor of 10 kΩ. To do so, since the layout was properly designed and there is a pad next to the trace where the resistor will be connected, you can first connect G1_IO1 with the Source 5 of the pad and then connect the Source 1 with the Sink 1 of the pad. Alternatively, in case that there are no pads in your layout, you could connect directly the Source 1 with the G1_IO1 and then add 10 kΩ resistor through the “Circuit Element” option that you will see just below.
After clicking “Add connection” the Source 5 will appear on the right side connected with the G1_IO1:
Then you add the resistor:
The resistor is then displayed in the layout (left side) as R1:
Then you must do exactly the same process for the other three buttons as well:
· Source 6 – G1_IO2 and Source 2 – Sink 2 (Bank 2)
· Source 7 – G2_IO1 and Source 3 – Sink 3 (Bank 1)
· Source 8 – G2_IO2 and Source 4 – Sink 4 (Bank 2)
In a similar way you add also the sampling capacitors between the shielding and the specific pads of the layout.
For the sampling capacitor of Group 1:
The capacitor is then displayed in the layout (left side) as C1:
The “Source 9” terminal of the pad must be then connected to the G1_IO4 pin of the controller:
Do the same for the sampling capacitor of Group 2 (C2). C2 is connected between Source 12 and Sink 8.
Last, you must connect the Vss pin to the Sink 9 of the shielding:
Sink 9 and Vss are now connected to each other:
When everything is set up, the system configuration will look like this:
8. Set up and run Counts Analysis
First you must create a new Counts Analysis:
Then you select the System Configuration you set up in the previous step:
Let’s ignore noise for now:
With these options the Counts Analysis for all the finger positions takes less than 25 mins.
Now let’s see the results…
Counts show exactly what is measured by the controller.
With the aid of SENSE all this process is made virtually, without having to build and test any prototype at all.
When the finger touches on a button the Counts become lower; this is how the finger touch is detected.
So, the difference in Counts with and without a finger touch, called “Delta Counts”, is what actually matters:
The big changes in Counts of each button, as highlighted in the above table, correspond to the cases when the finger (pointer) touches on this button.
This could be visualized like this:
In general, values of Delta Counts between 100-200 are regarded as accepted values that ensure touch functionality.
This means that values lower than 100 cannot be detected by the controller, whereas values higher than 200 result in too high touch sensitivity, so the sensor is prone to false touches.
Besides Counts, here you can also get the acquisition time of each button for every finger position:
For the acquisition time it is important to be kept lower than a maximum value according to the specifications; this value is typically about 5-15ms.
Now that you have successfully run your first project in SENSE, you can further explore its capabilities, like trying to use another controller from STM32 family or change the settings of the current one.
Or you may also import your own dxf/Gerber file of the layout and build the stack up accordingly, so as to get answers for your specific project.
...keeping in mind that we 'll be happy to support you!