Screenkey

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Screenkey

Beitrag von Matt »

Screenkey ist Taste mit LCD Display drinnen (& rot und grüne Tastebeleuchtung)

Schaltkontakt ist extern, getrennt von LCD Display. Display ist unidirektional, redet über Serielle Interface mit externe Takt, klassische SPI ohne MOSI und CS wird daran bedingt funktioniert. Grund: siehe nächste Zeile.

Aufmerksame Datenblattleser wird anmerken, dass LCD Display Betrieb ohne Takt nicht wirklich möge.
lc24.2.pdf
(192.95 KiB) 70-mal heruntergeladen
Ich habe lang überlegen, wie ich das in AVR und co lösen werden.
Meine Mometane Idee: Timer-Interrupt erzeugen (100khz Interrupt = 50khz Takt) und holt Daten aus Ringbuffer, nur wenn es neue Daten hervorbringt. Einzig was Interrupt ständig auslöst: Flankenwechsel von Takt.

Auch echt gemein: Paritätsprüfung von Start & Stop-Byte und Commando & Daten ist unterschiedlich.

Meine aktuelle Stand ist bisher,dass SPI in Interrupt funktionsfähig ist. Ob ich den Switch & Case oder bit-shifterei nutzen sollen, ich wird beide aufbauen und eines anhand schnellste Laufzeit von interrupt auswählen.
SoftSPI_w_switchcase.png
Nächste Schritte: Ringbuffer fertigmachen.

Grüss
Matt
Benutzeravatar
Fritzler
Beiträge: 12597
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Screenkey

Beitrag von Fritzler »

Was die da machen ist eher ein USART.
Nur sind die so fies und brauchen auch Takte bei Start/Stop Bits, was ein USART eigentlich nicht vorsieht.
Das brauchen die wohl für den internen LCD Treiber Takt um die Pixel durchzuscannen.
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Auch geil dass Start & Stop andere Paritätsberechnung erfordert. (even-Parität, sonst ist odd Parität angesagt)
Und der will pausenlose Takt sehen, auch wenn keine Daten übergetragt wird.

Ich habe da kommentiert: typical british engineering, als ich las, dass Display ohne Takt sich zerlegt wird.
Ich dachte da: Selbst freilaufende RC Oszillator ist für Display-scannen mehr als gut genug.

OB Display 16 bit oder 12 bit Takt für eine Byte-Übertragung braucht, ist da egal. Wichtig ist dass Start & Stop (2x) und Paritätsbit übergetragt werden sollen.
Wahrlich seltsame Ding.
Benutzeravatar
Fritzler
Beiträge: 12597
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Screenkey

Beitrag von Fritzler »

Was is schlimmer? British oder French Engineering? :mrgreen:

Von diesen Tastern will man ja eigentlich nicht immer nur einen betreiben, sondern eher so 8.
Daher wäre ein STM32 hier besser, denn der kann 1 bis 16 Bit per DMA auf GPIO direkt raushusten (also 1 bis 16 Taster bespaßen)
Der DMA ist Timergetriggert und dieser Timer generiert auch das CLK Signal.
Der DMA gibt einen Buffer aus, der passend vorberechnet ist.
Der genannte STM32 kann dann entweder auch die Systemlogik beinhalten oder bekommt selber nur Befehle per UART/I2C/SPI/whatever.

Ich hab ja auch welche von den Tastern, aber der Habenwillrefelex war stärker als das Ausdenken einer Anwendung.
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Ok ok, ich gebe mich geschlagt. Hier ist auch habenwilleffekt stärker und dann habe ich eine Idee damit gehabt.

Ich habe eine französische Einbau-Instrument mit Nixie an jemand veraalt, nachdem ich festgestellt habe, dass Franzose nichtmal Überlauf-Schaltkreis verbaut hat. Ich kann 3x Überlauf auslösen, dann hängt der Ergebnisse fest irgendwas wie 3342, der auch von Netzspannung & Temperatur abhängt.

Ich hatte mit NEO6 GPS Module und alte 180kmh-Sperre-Entferner wegen ihre Display verheiratet. Dann habe ich mit auf Autobahn auf über 100knoten gebracht, um zu sehen, ob UART-Telegram bei Geschwindigkeit bei 99.99 knoten festhängt. Ne, da verschiebt GPS Modul Kommastelle um eine Stelle nach rechts. :-D

Ja, was du mit STM schrieb, wird ich so ähnlich umsetzen, nur bloss werde ich Ringbuffer inkl. fertig berechnete Paritätsbit nutzen


Grüss
Matt
Benutzeravatar
Fritzler
Beiträge: 12597
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Screenkey

Beitrag von Fritzler »

Bei zB 16MHz wird son AVR bei 100kHz IRQ Auslösung ganz schön ächzen.
Das sind nurnoch 160 Takte zwischen 2 IRQs!
Der kann dann wirklich nurnoch den LCD Controller machen.
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Das hast du gut gemerkt, ich habe ebenso gemerkt. Optimerung kommt schon, wenn ich mal Brainfart habe.
Benutzeravatar
sukram
Beiträge: 3108
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: Screenkey

Beitrag von sukram »

Und wenn du den SPI am AVR als Slave fährst? Die 100khz einfach von extern durchprügeln lassen und das SPI Interface nur zum Daten senden scharf schalten. Ggf. einen Hardware Timer als Taktgeber verwenden und den SCK mittels Dioden Oder Gatter Taub schalten.

MfG
Benutzeravatar
ferdimh
Beiträge: 9413
Registriert: Fr 16. Aug 2013, 15:19

Re: Screenkey

Beitrag von ferdimh »

Ich denke, der USART im synchronen Modus löst dein Problem.
Ob der Takt beim Betrieb als Master dauerhaft an XCK anliegt, habe ich auf die Schnelle nicht herausgefunden. Als Slave müsste es aber mit einer Brücke gehen:
Man nehme einen Timer, der 100kHz Rechteck erzeugt, klemme den an XCK und an den Screenkey.
Dann werden Daten durch den USART gesendet; das Datenformat ist, so wie ich das sehe, direkt einstellbar.
Benutzeravatar
Heaterman
Beiträge: 3990
Registriert: Fr 28. Jun 2013, 10:11
Wohnort: Am Rand der Scheibe, 6 m unter NN

Re: Screenkey

Beitrag von Heaterman »

Ich hab die Dinger einfach per SPI bespaßt, sogar (Fritzler: weghören) per Arduino und mit einem anderen C-Programm per AtMega32U4
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Klar, das geht, nur wenn Takt dauerend da ist.. Sobald Takt weg ist, dann hört der auf zu arbeiten und zeigt ne Strich in Display.


Ich bin zurück, USART mit externe Taktgeber, ich habe bisher nicht zum laufen gebracht.

Egal, ich habe meine Interrupt-Geschichte bisserl umgebaut, denn der Screenkey braucht nicht Takt mit 50:50. (d.H. Interruptsverarbeitungsdauer = Taktpulsbreite) Taktfrequenz wird dadurch auch auf 100khz erhöht. Ich belasse so. Für erste.


Erste Lebesnzeichen
IMG-20190423-WA0004.jpg
xanakind
Beiträge: 12590
Registriert: So 11. Aug 2013, 21:55

Re: Screenkey

Beitrag von xanakind »

Wichtiger Hinweis:
Die mit der weissen Markierung werden wahrscheinlich Kontaktprobleme haben.
Zum testen also am besten eins verwenden, welches nicht markiert ist.
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Das habe ich in deine Verkaufsangebot gelesen und diese gezeigte Exemplare ist von dir ausgelötet ;-)
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Ich habe den Screenkey fast vergessen und kürzlich ist es wieder entdeckt und mit Code weitergemacht.

Einfach ekelhaft, dass Display alle 2te Zeile 4 bit offset hat.
Dateianhänge
IMG-20190712-WA0001.jpg
Benutzeravatar
Hightech
Beiträge: 11454
Registriert: So 11. Aug 2013, 18:37

Re: Screenkey

Beitrag von Hightech »

Ist das normal das der DS18S20 mit 5V eine starke Eigenerwärmung 4-5°C hat?
Matt
Beiträge: 6089
Registriert: So 24. Aug 2014, 21:22

Re: Screenkey

Beitrag von Matt »

Ich glaub, du hast es in falsche Theard gepostet .
Benutzeravatar
Chefbastler
Beiträge: 2686
Registriert: Mo 12. Aug 2013, 20:21
Wohnort: Südbayern

Re: Screenkey

Beitrag von Chefbastler »

Hightech hat geschrieben:Ist das normal das der DS18S20 mit 5V eine starke Eigenerwärmung 4-5°C hat?
Wenn du ihn nonstopp ausliest ja. Bei jedem mal auslesen wird er Wärmer beim daten zurücksenden. Wenn du nur 1x in der Minute liest ghet dass oder an einen Kühlkörper spaxen.
Benutzeravatar
Chefbastler
Beiträge: 2686
Registriert: Mo 12. Aug 2013, 20:21
Wohnort: Südbayern

Re: Screenkey

Beitrag von Chefbastler »

Matt hat geschrieben:Ich habe den Screenkey fast vergessen und kürzlich ist es wieder entdeckt und mit Code weitergemacht.

Einfach ekelhaft, dass Display alle 2te Zeile 4 bit offset hat.
Aber er läuft. Beim Anblink vom Traffo hätte es sicher für das Display auch böse ausgehen können wenn es sich quer gestellt hätte.
Antworten