espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.34k stars 7.21k forks source link

tp_read_main.c locks itself out ... (IDFGH-6168) #7845

Open franz-ms-muc opened 2 years ago

franz-ms-muc commented 2 years ago

https://github.com/espressif/esp-idf/tree/v4.3.1/examples/peripherals/touch_pad_read/main/esp32s2 tp_read_main.c

Hello,

it seems the internal Driver locks itself out when it sees VERY High values.

so the Touch pad Reading working very well, but if you attatch very large Pads with a very big Finger (more Hand) you get Reading Values of e.g. 2699993 and then you get the same Values for all Channels until restart.

it is like the Measuring is in a Deadlock, not updating the internal Measurements anyhow, and just giving a "freezed" value out.

Tested on v4.3.1

Thanks, Franz

franz-ms-muc commented 2 years ago

just for proofing:

i tested with the "master" branch: ESP-IDF:          v5.0-dev-178-g417ef24b06

ESP32S2, 

T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]
T1: [85459] T2: [55743] T3: [71849] T4: [63331] T5: [1010637] T6: [1848183] T7: [2120671] T8: [1709241] T9: [249383] T10: [28832] T11: [30569] T12: [25658] T13: [7025] T14: [3315495]

it does also lock out. 

same as on v4.3.1

franz-ms-muc commented 2 years ago

I made a very very simple Test:

connected 2 Wires, 1 to GND, one to G14,  run the Example.  when i Touch Wire G14 all OK, Value goes up and down.  when i Touch G14 to GND (Hard, no Resistor in Between) the Lock is there. when i Touch G14 to 3V3 (Hard, no Resistor in Between) the Lock is there.

so both 3.3V and GND cause the Lock.

franz-ms-muc commented 2 years ago

The Programm still outputs Values, but always the same !

franz-ms-muc commented 2 years ago

so, it seems we have 2 Problems: if he see a GND: Lock, if he see a Very high Touch: Lock.

franz-ms-muc commented 2 years ago

i found a temporary solution to get out of the Lock:

touch_pad_fsm_stop();
touch_pad_fsm_start();

whenever you do this .. the Lock is away ..

franz-ms-muc commented 2 years ago

BUT: if one Electrode is bound to GND, the Error is not away. this helps only ig one Electrode is TEMPORARY bound to GND.