Hallo, wie fange ich an... für ein Bastelprojekt möchte ich an einem CYD (Cheap Yellow Display JC2432W328C) mit kapazitivem Touchpanel eine Berührungssperre bauen. Das Touchpanel hat 6 Kontakte und ich möchte das mit nur einem Taster machen (im besten Fall ein Kontakt, der auf GND zieht, wenn er betätigt wird). Ohne Betätigung soll das Touchpanel inaktiv sein, bei gedrücktem Taster soll es funktionieren, also Taster gedrückt = alle 6 Kontakte verbunden. Nun habe ich schon versucht, nur den GND-Pin vom Flachbandkabel des Touchpanels zu trennen (das wäre meine liebste Lösung gewesen, weil dann keine weitere Schaltung außer dem Taster selbst nötig gewesen wäre). Dabei bleibt das Panel allerdings leider aktiv. Ziehe ich das ganze Folienkabel, deaktiviert sich das Panel - ich arbeite also an der richtigen Stelle. Nun hat der FPC-Connector ja 6 Pins. Ich überlege, einfach alle 6 Pins zu schalten, möchte das aber nur mit einem Taster machen und habe keinen Platz für einen riesigen 6UM-Taster. Da dachte ich an ein sehr kleines Relais mit 6 Kontakten, aber das zeiht für meine Anwendung zu viel Strom, schätze ich. Apropos Strom: Das kapazitive Touchpanel wird sicher auch nur mit dehr kleinen Strömen in den Signalleitungen arbeiten. Die zu schaltenden Kontakte müssen also nur wenige µA abkönnen. Gibt es eine elektronische Lösung mit wenig Stromverbraucht auf 5V-Spannungsniveau, mit dem ich mir da behelfen kann? Bin absoluter Elektroniklaie und kann nur nach vorgefertigten Schaltplänen Platinen ätzen/fräsen und bestücken. Entwerfen kann ich die Schaltungen nicht. Macht man sowas mit Optokopplern? Vielleicht kann ich auch fertige Module dafür einsetzen (gibt ja Optokopplerbausteine mit 1,2,4,8,... Schaltkontakten). Oder geht da der Einsatz von Reedrelais - gibt es die mir 8 oder mehr Kontakten? Kann mir jemand Helfen?
:
Bearbeitet durch User
Dann mache doch das Ganze in Software. Dann brauchst du überhaupt kein Relais! Ein Schalter/Relais mit so vielen Kontakten ist Mumpitz.
:
Bearbeitet durch User
Helmut hat recht. Das macht man nicht durch Hardware, sondern durch Software. Einfach nicht das Touchpanel abfragen, fertig.
Software ist leider keine Lösung - ich habe keine io mehr frei am CYD. Und es soll tatsächlich ein Hardwaretaster sein.
M. B. schrieb: > Und es soll tatsächlich ein Hardwaretaster sein. https://www.tme.eu/de/details/pbh6ueenagx/standard-schalter/e-switch/
M. B. schrieb: > Software ist leider keine Lösung - ich habe keine io mehr frei am CYD. Dann beschaff Dir das Datenblatt des Bausteins, der das Touchpanel abfragt, und finde raus, ob der irgendeinen Enable-Eingang hat, oder ob man das Interface zwischen diesem Baustein und dem ESP32 abklemmen kann.
Harald K. schrieb: > Dann beschaff Dir das Datenblatt des Bausteins, der das Touchpanel > abfragt, und finde raus, ob der irgendeinen Enable-Eingang hat, oder ob > man das Interface zwischen diesem Baustein und dem ESP32 abklemmen kann. Das Ding kommt aus China. dazu haben schon viele Leute Supportanfragen gestellt und keine Antwort erhalten. Optokoppler sind wohl keine gute Idee? Oder Photomos oder Reedrelais?
M. B. schrieb: > Optokoppler sind wohl keine gute Idee? Das ist ein kapazitives Panel. Was meinst Du, wofür das steht? Nein. Ändere was daran, daß "keine freine Pins" verfügbar sind. Das bekommt man hin.
Hier der Schaltplan. https://oshwlab.com/mariusmym/esp32_cyd_cheap_yellow_display Das Display auf dem Board ist ein Ili-9341 oder kompatibel. Das Touchpanel ist resistiv und nicht kapazitiv. Das Panel hat eine schaltbare Hintergrundbeleuchtung. Die könntest du also auch verwenden. Ist zwar nicht ganz aus aber immerhin schon dunkel.
Ich habe ein CYD mit kapazitivem Touch. Es ist das JC2432W328C. Die Pins von der RGB-LED sind bereits aufgebraucht und werden anderweitig verwendet. Es geht mir nicht darum, das Display auszuschalten, sondern nur das Touchinterface. Also ich möchte unterbinden, dass versehentlich ein Touchinput generiert wird, ohne dass der Taster gedrückt gehalten wird.
Chip Select des Touch Interface auf inaktiv ziehen, also auf High halten. Pullup direkt am XPT Chip installieren und per Taster die Leitung zum MC mit dem Taster unterbrechen. Musst halt ausprobieren, ob die Software meutert.
Capacitive touch driver: The chip is CST820 and there are CST820.h and CST820.c files in the documentation. I am using PlatformIO so I just created the CST820 folder inside lib and copied the files. https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/discussions/200 Wie wäre es dann einfach den CS vom Touch zu steuern? #define ST7789_DRIVER #define TFT_RGB_ORDER TFT_BGR #define TFT_WIDTH 240 #define TFT_HEIGHT 320 #define TFT_INVERSION_OFF #define ESP32_DMA #define TFT_MOSI 13 #define TFT_SCLK 14 #define TFT_CS 15 #define TFT_DC 2 #define TFT_RST -1 #define TFT_BL 27 #define TOUCH_CS 33 Laut der Doku. PIN 33 TOUCH_CS
Das klingt sehr gut, Bernd N. Wie kriege ich raus, ob der GPIO33 GND schaltet, um das Touchinterface zu aktivieren?
Der ESP32 wird den CS vom Touch IC steuern, alles andere macht ja keinen Sinn. Kannst du mit einem Osci messen sofern du einen hast. Dann Leitung auftrennen und schaltbar machen. Da du keinerlei Elektronik Kenntnisse hast wird selbst so etwas schwieriger werden. Wie weit reicht dein Veständnis / Fähigkeiten? traust du dir zu die Leitung aufzutrennen? und Tests durchzuführen? also die Verbinding zwischen ESP32 und dem Touch controller auftrennen wäre mal der erste Schritt.
Auftrennen traue ich mir zu. Habe ja auch schon den vermeintlichen GND-Pin am FPC-Connector aufgetrennt (ohne Wirkung). Oszi habe ich leider nicht.
Also ich habe jetzt Pin 9 von links oben getrennt, aber Touch funktioniert immernoch!
...und hier habe ich den rechten Pin getrennt (ist noch ein Foto, wo alles noch unberührt ist), weil das den Anschein erweckt hat, dass es GND ist.
Jetzt wo ich die Leitung gekappt habe, könnte ich messen. Laufe ich Gefahr, am ESP32 was zu zerstören, wenn ich ein Multimeter im Laufenden Betrieb an GPIO33 halte?
Also aktueller Stand ist: Mit getrennter Verbindung des vermeintlichen GND-Pin am FPC-Connector und getrenntem GPIO33 funktioniert touch immernoch.
Nein, kannst du messen, ist aber bei einem DMM eher unsinnig. Was soll der Messwert dir sagen? Also, wenn PIN 33 abgetrennt ist dann sollte das andere Ende der Leitung am Touch IC enden. Der Pin sollte jetzt spannungsfrei sein. Legst du diese CS Leitung auf 1 dann darf kein Touch mehr funktionieren.
M. B. schrieb: > Also aktueller Stand ist: Mit getrennter Verbindung des vermeintlichen > GND-Pin am FPC-Connector und getrenntem GPIO33 funktioniert touch > immernoch. Das dürfte nicht sein. Allerdings ist CS in der Luft, wer weiss. Der muss entweder GND oder VCC haben (0 oder 1).
Sollte ich lieber 0V zuerst probieren, aus Angst, dass der IC 3V3 nicht verträgt? Wird aber heute nichts mehr.
M. B. schrieb: > Sollte ich lieber 0V zuerst probieren, aus Angst, dass der IC 3V3 nicht > verträgt? Dann nimm halt nen Widerstand mit ca. 1 K
M. B. schrieb: > Was heißt auf 1 legen? M. B. schrieb: > Sollte ich lieber 0V zuerst probieren, aus Angst, dass der IC 3V3 nicht > verträgt? Hast du Grundlagenwissen von irgendetwas im Bereich Elektronik oder Informatik? M. B. schrieb: > Bin absoluter Elektroniklaie und kann nur nach vorgefertigten > Schaltplänen Platinen ätzen/fräsen und bestücken. Höchste Zeit daran mal was zu Ändern. Lege mal das CYD beiseite und führe dir z.B. mal https://www.elektronik-kompendium.de/sites/grd/index.htm https://www.elektronik-kompendium.de/sites/dig/2905121.htm zu Gemüte. M. B. schrieb: > Die Pins > von der RGB-LED sind bereits aufgebraucht und werden anderweitig > verwendet. Wie hast du es geschafft alle GPIOs zu verwenden? Evtl. gibt es da einen Ansatz das ganze Konzept zu überdenken.
:
Bearbeitet durch User
Obelix X. schrieb: > Hast du Grundlagenwissen von irgendetwas im Bereich Elektronik oder > Informatik? Elektrik geht, in Elektronik und Informatik bin ich eine Niete. Mit der Frage, was die 1 bedeutet ging es mir darum, ob ich 5V oder 3,3V nehme. Dass logisch 0 = GND ist und logisch 1 = 3,3V oder 5V wusste ich. In der TTL ist doch die 0 unter 1V und die 1 über 3V oder so ähnlich. Da wären ja auch 5V in Frage gekommen. Obelix X. schrieb: > Wie hast du es geschafft alle GPIOs zu verwenden? Evtl. gibt es da einen > Ansatz das ganze Konzept zu überdenken. Das Projekt baue ich einfach nach und versuche es um eine Tasten- und Displaysperre zu erweitern. Am CYD sind kaum GPIOs ungenutzt, sodass ich da keine Wahl habe.
:
Bearbeitet durch User
M. B. schrieb: > Mit der Frage, was die 1 bedeutet ging es mir darum, ob ich 5V oder 3,3V > nehme. Dass logisch 0 = GND ist und logisch 1 = 3,3V oder 5V wusste ich. > In der TTL ist doch die 0 unter 1V und die 1 über 3V oder so ähnlich. Da > wären ja auch 5V in Frage gekommen. Dann Frage dich, mit welcher Betriebsspannung arbeitet der ESP bzw. der Touchcontroller -> Datenblatt oder Schaltplan vom CYD schauen und was Pull-up /-down Widerstände sind. https://www.elektronik-kompendium.de/public/schaerer/pullr.htm
M. B. schrieb: > Am CYD sind kaum GPIOs ungenutzt, sodass ich > da keine Wahl habe. Kaum heißt nicht keine. Was jetzt?
Harald K. schrieb: > M. B. schrieb: >> Am CYD sind kaum GPIOs ungenutzt, sodass ich >> da keine Wahl habe. > > Kaum heißt nicht keine. Was jetzt? So wie MB fragt gehe ich davon aus, dass er die Software nicht ändern kann. Es ist also egal, ob GPIOs frei sind oder nicht. Der Taster soll dann wohl direkt mit dem Touch-CS verbunden werden.
Ist halt die Frage was das Programm bzw der Touch Treiber macht wenn er nach Auftrennung nur Nullen oder Einsen bekommt.
N. M. schrieb: > Ist halt die Frage was das Programm bzw der Touch Treiber macht wenn er > nach Auftrennung nur Nullen oder Einsen bekommt. Deswegen Touch-CS verwenden.
Harald K. schrieb: > M. B. schrieb: >> Am CYD sind kaum GPIOs ungenutzt, sodass ich >> da keine Wahl habe. > > Kaum heißt nicht keine. Was jetzt? Die, die frei wären, sind in dem Projekt schon vergeben.
Obelix X. schrieb: > Harald K. schrieb: >> M. B. schrieb: >>> Am CYD sind kaum GPIOs ungenutzt, sodass ich >>> da keine Wahl habe. >> >> Kaum heißt nicht keine. Was jetzt? > > So wie MB fragt gehe ich davon aus, dass er die Software nicht ändern > kann. Es ist also egal, ob GPIOs frei sind oder nicht. Der Taster soll > dann wohl direkt mit dem Touch-CS verbunden werden. Ja, ich habe keine Ahnung von der Software (bei mir langt es nur zum flashen).
N. M. schrieb: > Ist halt die Frage was das Programm bzw der Touch Treiber macht wenn er > nach Auftrennung nur Nullen oder Einsen bekommt. Deswegen hatte ich gehofft, dass nach Auftrennen der GPIO33 das Touchpanel schon deaktiviert ist und beim Verbinden per Taster einfach wieder mit mir spricht, aber nach Auftrennen geht es ja trotzdem noch. Wie dem auch sein: Heute Abend teste ich mal was passiert, wenn ich den Touch_CS mit 0 oder 1 verbinde.
M. B. schrieb: > N. M. schrieb: >> Ist halt die Frage was das Programm bzw der Touch Treiber macht wenn er >> nach Auftrennung nur Nullen oder Einsen bekommt. > > Deswegen hatte ich gehofft, dass nach Auftrennen der GPIO33 das > Touchpanel schon deaktiviert ist und beim Verbinden per Taster einfach > wieder mit mir spricht, aber nach Auftrennen geht es ja trotzdem noch. > > Wie dem auch sein: Heute Abend teste ich mal was passiert, wenn ich den > Touch_CS mit 0 oder 1 verbinde. Das ist auch der wesentliche Test. Chip Select CS meint eben der Touch Baustein ist an oder aus.
Bernd N. schrieb: > Hier der Schaltplan. > https://oshwlab.com/mariusmym/esp32_cyd_cheap_yellow_display Das ist das resistive Board. Sieht man auch am XPT2046. Das ist ein resistiver Touch Controller. Bernd N. schrieb: > Capacitive touch driver: > The chip is CST820 and there are CST820.h and CST820.c files in the > documentation. I am using PlatformIO so I just created the CST820 folder > inside lib and copied the files. > https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/discussions/200 Übersehen ich was? Der Ali Link spricht von einem 3248S035. Der TO von einem JC2432W328C. Das ist doch das falsche Board. Hier findet man eine Übersicht der Boards: https://github.com/rzeldent/platformio-espressif32-sunton In der Tabelle der Supported boards wird von einem CST816S als Touch Controller geredet. Das wäre dann I2C, kein SPI! https://www.waveshare.com/w/upload/5/51/CST816S_Datasheet_EN.pdf Sieht man auch in der Config Datei: https://github.com/rzeldent/platformio-espressif32-sunton/blob/main/esp32-2432W328C.json Scheint aber auch Port 32/33 zu sein:
1 | "'-D CST816S_I2C_CONFIG_SDA_IO_NUM=33'", |
2 | "'-D CST816S_I2C_CONFIG_SCL_IO_NUM=32'", |
Ich denke du hast recht. Leider habe ich kein Datenblatt für den Touch Controller gefunden. Aber man findet bei den Code Beispielen:
1 | #include <lvgl.h> |
2 | #include <TFT_eSPI.h> |
3 | #include "CST820.h" |
4 | #include <demos/lv_demos.h> |
5 | |
6 | /*Bildschirmauflösung ändern*/
|
7 | static const uint16_t screenWidth = 240; |
8 | static const uint16_t screenHeight = 320; |
9 | |
10 | /*Touchscreen-Pins definieren*/
|
11 | #define I2C_SDA 33
|
12 | #define I2C_SCL 32
|
13 | #define TP_RST 25
|
14 | #define TP_INT 21
|
Footprint habe ich auch gefunden sofern es passt? Bild im Anhang. Das ist ziemlich eindeutig I2C. Man könnte den Reset PIN versuchen oder ggfs die Interrupt Leitung unterbrechen sofern diese im Code ausgewertet wird.
Bernd N. schrieb: > Ich denke du hast recht. Leider habe ich kein Datenblatt für den Touch > Controller gefunden. Du meinst von dem Board selbst, oder? Da habe ich auch nichts gefunden. In der Sammlung auf GitHub fehlt das Schematic für das Board auch. Den Touch hatte ich oben doch verlinkt. N. M. schrieb: > Das wäre dann I2C, kein SPI! > https://www.waveshare.com/w/upload/5/51/CST816S_Datasheet_EN.pdf
N. M. schrieb: > In der Tabelle der Supported boards wird von einem CST816S als Touch > Controller geredet. Das wäre dann I2C, kein SPI! Ich habe grad ein Foto vom Touch-Controller gemacht. Es handelt sich um einen CST820. Dazu habe ich gefunden: "The touch controller is in fact a CST820 but this is upward compatible with the CST816S"
:
Bearbeitet durch User
Sollte ich nun vor dem Hintergrund, dass er nicht über SPI, sondern über I2C kommuniziert, lieber auf 3,3V bzw. 0 V auf der gestern aufgetrennten Leiterbahn verzichten?
N. M. schrieb: > Bernd N. schrieb: >> Ich denke du hast recht. Leider habe ich kein Datenblatt für den Touch >> Controller gefunden. > > Du meinst von dem Board selbst, oder? > Da habe ich auch nichts gefunden. > In der Sammlung auf GitHub fehlt das Schematic für das Board auch. > > Den Touch hatte ich oben doch verlinkt. > > N. M. schrieb: >> Das wäre dann I2C, kein SPI! >> https://www.waveshare.com/w/upload/5/51/CST816S_Datasheet_EN.pdf Das Pinout stimmt aber nicht. Auf dem Foto selbst sehe ich 6 PINs pro Seite, im PDF sind es 5. Gesucht wird also der PIN Reset bzw. Interrupt vom CST820. Sollte die Software in den Interrupt vom CST820 auswerten dann genügt es diese Leitung zu unterbrechen. Kein Interrupt sollte dann keine Touch Auswertung ergeben. 2te Möglichkeit der Reset PIN. Wenn der auf Reset steht sollte der Touch Baustein auch ohne Funktion sein. Datenblatt würde hoer helfen.
M. B. schrieb: > Sollte ich nun vor dem Hintergrund, dass er nicht über SPI, > sondern über > I2C kommuniziert, lieber auf 3,3V bzw. 0 V auf der gestern aufgetrennten > Leiterbahn verzichten? Ja.
Power on/Reset The built-in power-on reset module will keep the chip in reset until the voltage is normal. When the voltage is lower than a certain threshold, the chip will also be reset. When the external reset pin RSTn is low, the whole chip will be reset. This pin has a built-in pull-up resistor and RC filter, and the built-in watchdog ensures the chip can return to normal operation within the specified time when an abnormal situation occurs. Interrupt Mode The touch chip only informs the host to read valid data through the IRQ pin when it detects a valid touch and needs to report it to the host, so as to improve the efficiency and reduce CPU load. The interrupt edge can be configured as a rising edge or a falling edge as needed. The IRQ pin is also used to wake up the host when matching predefined gestures in standby mode. Ist die Software geheim oder kann man da einen Blick reinwerfen?
Bernd N. schrieb: > M. B. schrieb: >> Sollte ich nun vor dem Hintergrund, dass er nicht über SPI, >> sondern über >> I2C kommuniziert, lieber auf 3,3V bzw. 0 V auf der gestern aufgetrennten >> Leiterbahn verzichten? > > Ja. Dann mache ich das Auftrennen von gestern lieber erstmal wieder rückgängig und den in Eigenregie aufgetrennten GND auch.
Ich habe gerade den Kontakt zum Ersteller der Firmware/Software herstellen können. Eventuell hilft er mir mit einem neuen Feature, was vermutlich viele andere Nutzer von dem Teil überzeugen würde.
Um das Thema abzuschließen, der Kopf des Projektes hat für mich eine Codeanpassung vorgenommen, die für mich passt (als Eingang wurde der GPIO vom Fotowiderstand genutzt). Danke für euer Engagement!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.