- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In our project we also have 2 mechanical rotary encoders + few capsense key. I am facing a problem with respect to encoder operation.
If we perform Fast/Rigorous scrolling of the encoder then a particular capsense key is always reported active by CSD_bIsSensorActive() even it is not touched by anyone. My suspension is that encoder operation is generating some kind of noise which activate capsense key.
What is your opinion about this?
Solved! Go to Solution.
- Labels:
-
PSoC 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When a mechanical switch is connected interrupt driven there might be the case that due to contact-bouncing several consecutive interrupts occur thus putting a very high load on the CPU and disabling other interrupts for a short time.
It could be better to use a separate timer driven interrupt (about 10ms) and look for several (5-10) same readings of the encoder. This will give other intterrupts time to execute.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This could be a number of things -
1) Layout, proximity of rotary encoder lines to capsense line, c coupling
2) Routing, capsense and encoder on same port, again c coupling
3) Rotary MIPs being used interfering with Capsense scan
Some design help -
http://www.cypress.com/?id=1575&rtID=435
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
will changing any of following values in software make a differecne?
- Finger threshold
- Noise threshold
- Baseline update threshold
- Sensors autoreset
- Hysteresis
- Debounce
- Negative noise threshold
- LowBaseline reset
- Scanning speed
- Resolution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any help would be helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is your rotary encoder interrupt-driven? Since CapSense uses interrupts this may turn out to disturb the CapSense readings?
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes rotary encoder is interrupt driven. is it bad?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I like to add one more bit, if i enable sensor auto-reset it sloves the partial problem. Earlier a perticular softkey reported active always however now its get reported active for one time only. since auto-reset updates the baseline always.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
if Scanning speed = slower, problem does not occures.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When a mechanical switch is connected interrupt driven there might be the case that due to contact-bouncing several consecutive interrupts occur thus putting a very high load on the CPU and disabling other interrupts for a short time.
It could be better to use a separate timer driven interrupt (about 10ms) and look for several (5-10) same readings of the encoder. This will give other intterrupts time to execute.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can also try to change the interrupt priority, so the CapSense interrupt will be executed with higher priority than the one for the rotary encoder.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using a timer driven interrupt only. However when i contineously roate the encoder at that time CPU may be overloaded.
I have found out that baseline is getting stuck during that period. I have darw a graph for Raw values and baseline values.
I am not able to find there is sudden drop in baseline values when problem appears. any suggestion?
please find the graph as an attachment.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
CPU clock set to Sysclk/1 in Global resources ? 24 Mhz ?
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wrong forum, ignore prior post.
Regards, Dana.