- Silicon Labs Community
- Welcome and Announcements
- Silicon Labs Knowledge Base
- 8-bit MCU
- 32-bit MCU
- Bluetooth / Wi-Fi
- Other Products Category
- Optical/RH/Temp Sensor
- Other Products
- Hardware and Software Tools
- Simplicity Studio and Software
- General Discussions and Suggestions
- Chinese Forum
- Software Libraries
- Development Kits
- Reference Designs
- Third Party Tools
- White Papers
- Official Blog of Silicon Labs
- Chinese Blog
03-08-2017 07:16 AM
I have a slexp8008a eval board for testing the CPT112S capacitive slider functionality. I have programmed the CPT112S configuration parameter Slider max pos. to 65534. Unfortunately this is NOT working correctly: the hardware is reporting incorrect/unexpected values.
Lower values of Slider max pos. (below about 2000) are reporting better values, but it still seems to be depending on how the slider is touched and most irregularity seems at the end with the higher values. Very likely some internal hardware registers are overflowing at certain internal calculation, but unfortunately I cannot check or prove this.
Could you post which maximum Slider max pos. values would be working correctly without irregularities and which programmable parameters are influencing that (accumulation? Touch delta?).
03-09-2017 03:22 AM
Do you mind elaborating the issue more in detail.
What do you mean by "the hardware is reporting incorrect/unexpected values"?
What kind of unexpected data you saw, do you see any irregular pattern?
My views are my own and do not necessarily represent the views of Silicon Labs
03-09-2017 04:12 AM
The CPT112S default setting of "Slider max pos" of 64 which comes with the eval-board works as expected: touching the slider at the right side reports values of 0 and when sliding to the left I get reported increasing values until the value of 64 when the touch position is at the left side of the slider. This is as expected.
I use the Simplicity Tool to program the CPT112S "Slider max pos" to 65534. According to the documentation the value "can be any value between 40 and 65534". Now I expect slider-event values from the hardware of 0 when touching the slider at the right side, increasing values when moving to the left, until the value of 65534 when the touch position is totally at the left side. However, the values I get from the event buffer are almost random, never reaching values higher than about 200.
The behavior I get when programming the "Slider max pos" parameter to 3000, is that it seems to be working somewhat okay when lightly touching with the tip of my pointing finger. However when touching with my thumb and sliding from left to right, there seems to be a wrap of the reported values back from 0 at a position of about 3/4 of the slider. My belly feeling is that there is some register overflow of the internal algorithm when more than one sensor of the slider is touched.
We are designing a slider hardware of more than 4 sensors (probably 6) which will be of a smaller size, closer to each other. So likely, when touching with a finger, multiple sensors will be touched.
So it would be great if you can try to reproduce this behavior, to exclude my CPT112S-eval board has a failure. If it can be reproduced, I would be great to know what is causing the behavior, so we can choose safe values of "Slider max pos" (we'd like the best resolution possible) and know the dependencies to the number of sensors for a slider and the limitations of how many sensors can be touched at a time, which would have requirements to the slider sensor size and the size of the object touching them.
Please find attached the programmed hex-file for "Slider max pos" of 65534.