Hallo, ich habe 3 Smart Displays von Aliexpress, die über eine Opensmart UART Schnittstelle angesteuert werden. Da UART nur ein Device ansprechen kann, weil es eben kein Bus ist wie I2C stellt sich folgendes Problem: Wie steuere ich mit einem uC Ausgang 3 Displays nacheinander an zur Darstellung von Messkurven, die TXD und RxD benötigen, ohne dass sie sich logisch und elektrisch in die Quere kommen? Abgesehen davon ein Gattergrab mit (De-)Multiplexern zu erzeugen fällt mir für die Heimlösung nur ein 3 kleine Reed Relais mit Doppel-Kontakt zu verwenden. Oder gib es da vielleicht was elektronisches? LG, Thorsten
:
Bearbeitet durch User
UART kann beliebig viele Devices ansprechen, Du musst Dir nur ein simples Protokoll überlegen.
Alle weiteren Infos solltest Du höflicherweise schon selbst ungefragt bereitstellen, oder hat man Dir das nicht beigebracht?
Thorsten M. schrieb: > Oder gib es da vielleicht was elektronisches? Klar: programmierbare Logik. CPLD/FPGA. Oder im Notfall auch: entsprechend programmierter (paralleler) NV-Speicher, also z.B. olle BIOS-Flash- oder EPROM-Bausteine. Für einen 1:3-UART-Mux/Demux brauchst du (im Minimum) 5 Eingänge und 4 Ausgänge. Wenn die Bitraten nicht zu hoch sind, sondern sich im üblichen UART-Bereich <=115200kbps bewegen, käme sogar ein kleiner dummer µC in Frage, bei dem die Mux-Logik rein in Software implementiert ist.
Man könnte natürlich auch "einfach" einen I²C-UART-Baustein mit mehreren UARTs verwenden, falls es sowas noch gibt. Oder gleich einen Controller mit einer passenden Anzahl an UARTs verwenden.
c-hater schrieb: > Klar: programmierbare Logik. CPLD/FPGA. Sowas habe ich nicht, kann ich auch nicht mit umgehen. Kanonen auf Spatzen. Und einen uC dazwischen setzen ... da kann man gleich 3 SoftUarts mit einem ProMini Arduino erzeugen und auf eine Hardware Uart abbilden. Ich suchte eher was einfaches. Bisher sind 3 Reed Relais und 3 Transistoren für mich einfach. Da ich recht neu hier bin: Ist dieses Forum moderiert? Ich wundere mich nämlich über recht viele Unverschämtheiten und Frechheiten die stillschweigend toleriert werden. Krankhafte Narzissten sind unter (selbsternannten) Experten nicht selten aber in manchem Thread wundert mich nichts mehr.
:
Bearbeitet durch User
Thorsten M. schrieb: > Abgesehen davon ein Gattergrab mit (De-)Multiplexern zu erzeugen fällt > mir für die Heimlösung nur ein 3 kleine Reed Relais mit Doppel-Kontakt > zu verwenden. Was ist an einem einzigen SO16/TTSSO16 Baustein ein Gattergrab? https://assets.nexperia.com/documents/data-sheet/74HC_HCT139.pdf Oder bedingt ein Opensmart UART da irgerndwelche seltsamen Logikpegel?
STK500-Besitzer schrieb: > Man könnte natürlich auch "einfach" einen I²C-UART-Baustein mit mehreren > UARTs verwenden, falls es sowas noch gibt. Sowas hier? Leider nur als TQFP verfügbar. https://www.maxlinear.com/product/interface/uarts/i2c-spi-uarts/xr20m1280
hubuk schrieb: > Was ist an einem einzigen SO16/TTSSO16 Baustein ein Gattergrab? Dann guck mal die Ausgänge an, die sind alle invertiert.
Thorsten M. schrieb: > hubuk schrieb: >> Was ist an einem einzigen SO16/TTSSO16 Baustein ein Gattergrab? > > Dann guck mal die Ausgänge an, die sind alle invertiert. Nur die gerade nicht selektierten Ausgängen sind H. Der aktive Audgang folgt ohne Änderung dem Enable-Eingang.
Thorsten M. schrieb: > ich habe 3 Smart Displays von Aliexpress Ohne Bezeichnung oder Link kennt die natürlich keiner. Manche Slaves kann man adressieren, d.h. es werden 9 Bits übertragen, ob Daten oder Adresse. Alle Slaves lauschen mit und nur der adressierte enabled seinen TXD.
1) Die TX der Displays können schonmal alle (über Dioden+Pullup )zusammengelegt werden und auf RX von Controller gehen. (Es wird ja nur EIN Display jeweils antworten, nämlich jenes mit dem gerade gesprochen wird) 2) TX vom Controller geht dann über EINEN simplen Analog-MPX (4051/52/53) auf die einzelnen RX der Displays.
Peter D. schrieb: > Manche Slaves kann man adressieren, d.h. es werden 9 Bits übertragen, ob > Daten oder Adresse. Alle Slaves lauschen mit und nur der adressierte > enabled seinen TXD. So smart werden die Dinger nicht sein.
hubuk schrieb: > Nur die gerade nicht selektierten Ausgängen sind H. Der aktive Audgang > folgt ohne Änderung dem Enable-Eingang. Ja, würde passen. Für TxD 1auf3. RxD muss auch zurückgeführt werden 3auf1. Je länger ich überlege ... glaube mit dem Arduino pro Mini lässt sich da ganz fix was machen: 3 SoftUarts mit der Paul Stoffregen Lib und die Master TXD/RXD. Diese Display stürzen übrigens komplett ab, wenn man da Müll reinschickt oder eine UART Sendung durch einen zu langen Interrupt unterbricht. Dann geht nur noch ein/aus.
hubuk schrieb: > Nur die gerade nicht selektierten Ausgängen sind H. Der aktive Audgang > folgt ohne Änderung dem Enable-Eingang. Richtig. Für die RX-Leitung braucht man aber auch noch was. Dann kann man sich gleich 74xx125 oder Analogschalter anschauen. Mit zwei Bausteinen '125, drei Steuerleitungen und drei PUs ist man dabei.
Hermann Kokoschka schrieb: > Die TX der Displays können schonmal alle (über Dioden+Pullup > )zusammengelegt werden und auf RX von Controller gehen. (Es wird ja nur > EIN Display jeweils antworten, nämlich jenes mit dem gerade gesprochen > wird Nein, Link kann ich nicht zeigen, Aliexpress ist hier gesperrt. Diese Displays werden unter OPENSMART verkauft, haben keine Adresse. Da gehen 2 Leitungen rein, RXD, TXD. Steuercodes für grafische Sachen rein, also CIR x,y,r,EOD heisst Kreis, Parameter, End of Data. Zurück kommt ein Steuercode für Befehl ausgeführt. Denn sendet man während einer noch läuft schmieren die Dinger ab. Made in China....
Thorsten M. schrieb: > Zurück kommt ein > Steuercode für Befehl ausgeführt. Denn sendet man während einer noch > läuft schmieren die Dinger ab. Stell mein Konzept aber nicht in Frage... Dann wartest Du eben bis die Rückmeldung kommt und schaltest den MPX ERST DANN auf ein anderes Display, wo ist das Problem?
Von welcher Sorte Controller sollen die Displays eigentich angesteuert werden? Wenn es sich z.B. um ein Raspberry Pi handelt, gäbe es noch USB-UART-Konverter mit mehreren UARTs.
Thorsten M. schrieb: > Sowas habe ich nicht, kann ich auch nicht mit umgehen. Kanonen auf > Spatzen. Und einen uC dazwischen setzen ... da kann man gleich 3 > SoftUarts mit einem ProMini Arduino erzeugen Versuch' es ;o) Tipp: Soft-UARTs sind langsam. Schreiben geht noch ganz gut, lesen nicht. Vor allem dann nicht, wenn auch noch mehrere Kanäle um Aufmerksamkeit ringen, in deiner Anwendung sind das immer mindestens zwei. ProMini-Arduino-Hardware geht natürlich, ist eigentlich sogar schon viel zu groß, hardwaremäßig wäre ein ATtiny24 angemessen, der kann alles nötige, um die gewünschte Funktion sicher für Bitraten bis 115200kbps bereitzustellen. Was aber nicht geht: Arduino-Soft-Serial. Jedenfalls nicht, wenn mit Bitraten >>9600 zu rechnen ist. > Ich suchte eher was einfaches. Boolsche Logik ist einfach. Und es spielt eigentlich keine Rolle, ob man die mit Transistoren und Relais implementiert oder als Programm. Jedenfalls dann nicht, wenn man die Logik verstanden hat...
Mit einem Bluepill Board. Das natierlich auch 3 SoftUart erzeugen könnte....
Thorsten M. schrieb: > Diese > Displays > werden unter OPENSMART verkauft Hilft auch nicht bei der Suche, gibt ja haufenweise LCDs bei Ali. Thorsten M. schrieb: > Diese Display stürzen übrigens komplett ab, wenn man > da Müll reinschickt oder eine UART Sendung durch einen zu langen > Interrupt unterbricht. D.h. die Leute haben keinerlei Ahnung vom Programmieren. Warum kauft man dann solchen Scheiß.
Thorsten M. schrieb: > Ich suchte eher was einfaches. Bisher sind 3 Reed Relais und 3 > Transistoren für mich einfach. Noch 'ne Idee: Standard-CMOS 4053. Sollte auch alles nötige können.
c-hater schrieb: > Standard-CMOS 4053 DANKE !!! 3.3V brauchen zwar Level Shifter aber der Stein sollte genau das machen. Bestelle ich gleich mal und teste den auf nem Breadboard.
:
Bearbeitet durch User
Thorsten M. schrieb: > DANKE !!! 3.3V brauchen zwar Level Shifter Nein. Standard-CMOS funktioniert i.A. bis runter auf 3V. Nur halt etwas langsamer als bei höheren Versorgungsspannungen oder auch mit sonstigen kleinen Einschränkungen bezüglich einiger Kennwerte. Ausnahmen bestatigen wie immer die Regel. Der CD4053 ist aber diesbezüglich keine.
c-hater schrieb: > Ausnahmen > bestatigen wie immer die Regel. Der CD4053 ist aber diesbezüglich keine. Erstmal auf Breadboard mit einem FG und Oszi testen. Dann Platine machen, nicht umgekehrt. Brauche auch die CD4052B und der ist in der Bucht nicht zu kriegen, nur noch bei Reichelt Apotheke.
:
Bearbeitet durch User
Beitrag #7295045 wurde von einem Moderator gelöscht.
Beitrag #7295077 wurde von einem Moderator gelöscht.
Thorsten M. schrieb: > Brauche auch die CD4052B und der ist in der > Bucht nicht zu kriegen, nur noch bei Reichelt Apotheke. Warum nicht den 74HC4052? Der ist niederohmiger, günstiger und läuft an 2..10V. Die Hochvolt CMOS sind bei 5V schon 1k hochohmig, für 3V habe ich keine Angabe gefunden.
c-hater schrieb: > Noch 'ne Idee: Standard-CMOS 4053. Sollte auch alles nötige können. Wie der TO in dem Screenshot bereits eingekreist hat: der CD4052 ist noch besser geeignet. Am TX-Pfad-Ausgang empfehle ich einen Pullup. Offen sollte der RX-Input am Empfänger ja nicht sein, sondern in Ruhe auf HIGH. Du hast vollkommen recht, den 4052/53 hatte noch niemand zuvor genannt, jedoch hatte ich allgemein schon mal einen Analogschalter erwähnt.
Beitrag #7295101 wurde vom Autor gelöscht.
Sowas hier? https://www.dx.com/p/open-smart-2-4-uart-serial-tft-lcd-module-touch-screen-expansion-shield-with-touch-pen-for-arduino-uno-r3-mega2560-nano-2033627.html So wie aussieht ist da schon ein Controller drauf und der hat auch mehr Pins rausgeführt. https://github.com/prenticedavid/MCUFRIEND_kbv/files/7027755/Serial.TFT.2.4INCH.with.touch.sreen.Schematic.pdf Vielleicht liegt für das Ding ja irgendwo eine Firmware herum die man entsprechend erweitern könnte auch noch auf einen Pin zu lauschen.
Thorsten M. schrieb: > Hallo, > ich habe 3 Smart Displays von Aliexpress, die über eine Opensmart UART > Schnittstelle angesteuert werden. ... > Oder gib es da vielleicht was elektronisches? > Dein Nick suggeriert eine Controllerfamilie, deren Peripherie üblicherwise CS für SPI (UART) unterstützt. Die Displays typischerweise auch. Heißt dort Evtl anders. Wo ist jetzt noch mal das Problem?
:
Bearbeitet durch User
Rudolph R. schrieb: > Sowas hier? > https://www.dx.com/p/open-smart-2-4-uart-serial-tft-lcd-module-touch-screen-expansion-shield-with-touch-pen-for-arduino-uno-r3-mega2560-nano-2033627.html Ja, genau die. Vergiss das mit der Firmware. Den kann man zwar neu flaschen aber nix gefunden. Und wenn man die Baud Rate verstellt ist das Ding Schrott, weil da was nicht stimmt. Man kann sie nie mehr zurück stellen. 2 Displays deswegen schon gebricked.
Peter D. schrieb: > Warum nicht den 74HC4052? Ich nehme diese Lösung und damit soll es auch gut sein. Die Displays sind nahezu statisch in ihren Anzeigen, da sollte das reichen.
Cortex User schrieb: > Ja, genau die. Vergiss das mit der Firmware. Ich gebe ja zu, dass das sehr hässlich ist danach zu suchen. Aber im Grunde genommen ist das Ding ein Arduino mit M328PB und einem ILI9325 Display, zum ansteuern des Displays wird wohl die Adafruit GFX Library verwendet. https://www.hackster.io/frankiemaker/simple-easy-to-use-serial-tft-lcd-5196cf Und da man auch den Schaltplan bekommt, halte ich es für sehr unwahrscheinlich, dass da noch niemand seit 2018 eine eigene Software für gemacht und ins Netz gestellt hat. Dieser Frankie Chu ist auch immer noch aktiv, die letzten Videos hat er vor 6 Tagen auf seinem Youtube Kanal veröffentlicht.
:
Bearbeitet durch User
HildeK schrieb: um 14:40 > Du hast vollkommen recht, den 4052/53 hatte noch niemand zuvor genannt, Hermann Kokoschka schrieb:um 10:50 > TX vom Controller geht dann über EINEN simplen Analog-MPX (4051/52/53)
Thorsten M. schrieb: > Wie steuere ich mit einem uC Ausgang 3 Displays nacheinander an zur > Darstellung von Messkurven, die TXD und RxD benötigen, ohne dass sie > sich logisch und elektrisch in die Quere kommen? Gar nicht. Man könnte mit einem Analog-Multiplexer zwar die Leitungen RxD und TxD von deinem µC auf verschiedene Kabel zu verschiedenen Displays aufschalten und dorthin senden (und nachher woanders draufschalten), aber was ist mit den Empfangsdaten? Die kommen asynchron herein und wandern unbemerkt ins Nirwana, wenn der Multiplexer auf einem anderen Kabel steht. Verodern geht auch nicht, denn dann kommen sich die Kanäle gegenseitig ins Gehege. Das Ganze ist also nicht wirklich durchdacht. W.S.
W.S. schrieb: > Verodern geht auch nicht, denn dann kommen sich die Kanäle gegenseitig ins Gehege.... aber was ist mit den Empfangsdaten? Es antwortet ja NUR das angesprochene Display, keines sendet "initiativ" Hermann Kokoschka schrieb: > Dann wartest Du eben bis die Rückmeldung kommt und schaltest den MPX > ERST DANN auf ein anderes Display, wo ist das Problem? W.S. schrieb: > Das Ganze ist also nicht wirklich durchdacht. HIER ist es völlig durchdacht, trivial+üblich, gelöst innert Stunden ab Frage. Wildester Kokolores der üblichen Theoretiker. Dies "grundsätzliche-nicht-vorab-lesen" bleibt ägerlich.
Hermann Kokoschka schrieb: > Es antwortet ja NUR das angesprochene Display, keines sendet "initiativ" So isses. Ich hab am CAN-Bus Slaves, die automatisch Statusmeldungen verschicken können. Aber das muß der Master nach dem Reset erstmal initiieren und ist bei CAN ja überhaupt kein Problem. Bei UART basierten Bussen ist sowas aber äußerst unüblich.
Peter D. schrieb: > Bei UART basierten Bussen ist sowas aber äußerst unüblich. Wären es Touchscreens, könnte es passieren; sind es aber NICHT.
Cortex User schrieb: > Ja, genau die. Vergiss das mit der Firmware. Den kann man zwar neu > flaschen aber nix gefunden. Hast du denn gefunden, welche Auflösung die haben ? ;-) > 2 Displays deswegen schon gebricked. Dann hast du ja nur noch eins. Vielleicht ist das ja auch ein himmlisches Zeichen, denn zur Darstellung von Messkurven braucht man viel Geduld oder schnellere Displays mit SPI-Ansteuerung. Wenn 3 x Relais für Dich eine gangbare Lösung sind, dann nimm sie. Thorsten M. schrieb: > Da ich recht neu hier bin: Ist dieses Forum moderiert? Ich wundere mich > nämlich über recht viele Unverschämtheiten und Frechheiten die > stillschweigend toleriert werden. Die Zeit bleibt stehen und hier ist immer 1. April.
W.S. schrieb: > Gar nicht. Man könnte mit einem Analog-Multiplexer zwar die Leitungen > RxD und TxD von deinem µC auf verschiedene Kabel zu verschiedenen > Displays aufschalten und dorthin senden (und nachher woanders > draufschalten), aber was ist mit den Empfangsdaten? Die kommen > asynchron herein und wandern unbemerkt ins Nirwana, wenn der > Multiplexer auf einem anderen Kabel steht. Natürlich sollte das verwendete Protokoll zu solchen Konstrukten passen. Wenn bidirektional, dann sollte es idealerweise ein Challenge-Response-Protokoll sein, d.h.: der "Slave" äußert sich ausschließlich als Reaktion auf eine Anfrage des "Master". Und wie der Zufall will, ist sowas alles andere als unüblich, sondern im Gegenteil sogar extrem verbreitet. Aber es gibt sogar durchaus auch Anwendungen, bei denen nicht einmal ein Challenge-Response-Protokoll zwingend notwendig ist, um eine im Sinne der Anwendung funktionierende Lösung zu erhalten. Nehmen wir mal das Beispiel einer Waage in einer "Anlage". Das Protokoll der Waage sieht vor, ständig "von sich aus" den aktuellen Wägewert rauszupusten und nicht änderbar. Ist das dann zwingend tödlich? Nein, natürlich nicht. Der Controller weiss aus anderen Quellen, ob überhaupt was auf der Waage ist und kann natürlich getrost die Datensätze verpassen, in denen diese stumpfblöd irgendwas um die 0,0g meldet. Wenn der Controller weiß, jetzt müsste was tatsächlich interessantes kommen, dann schaltet er auf den Waagen-Kanal und synchronisiert sich auf den Datenframe der Waage und fertig. Ja, man muss schon ein wenig programmieren können, um das Protokoll fehlertrolerant zu empfangen, aber für richtige Programmierer ist so etwas natürlich keine Herausforderung. Für dich hingegen wohl schon...
Thorsten M. schrieb: > Nein, Link kann ich nicht zeigen, Aliexpress ist hier gesperrt. Warum ignoriest du das nicht einfach? https://de.aliexpress.com/item/1005002115457168.html
Thorsten M. schrieb: > Abgesehen davon ein Gattergrab mit (De-)Multiplexern zu erzeugen Du brauchst nur Treiber mit Enable-Eingang, die bekommen alle die TxDaten, aber nur einer ist eingeschaltet. Georg
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.