Guten Morgen, ich bin auf der Suche nach einem kleinen TFT-Display (so zwischen 0.9 - 2.2 Zoll) das mit einem integrierten Controller daherkommt, dieser sollte mit SPI programmierbar sein (warum? SPI kann man notfalls auch in Software machen, falls das Hardware-Modul mal wieder spinnt). Touch brauche ich nicht. Bis jetzt hab ich nur so eines hier liegen: http://www.ebay.de/itm/1-44-Serial-ILI9163-128X128-SPI-Farb-TFT-LCD-Display-fur-Arduino-Raspberry-Pi-/181931185121 Das Datenblatt des ILI9163 ist gruselig, den Code muss man sich im Internet zusammenklauben und die Initialisierung besteht aus 200 Zeilen. Eigentlich suche ich sowas nur mit verständlicherem Datenblatt. Gibts das? Grüße
Max M. schrieb: > ich bin auf der Suche nach einem kleinen TFT-Display (so zwischen 0.9 - > 2.2 Zoll) das mit einem integrierten Controller daherkommt Hast du auch irgendwelche Vorstellungen über die Auflösung/Farbe(ja/nein)/Farbauflösung oder ist das alles egal?
Max M. schrieb: > Das Datenblatt des ILI9163 ist gruselig So ein Display kann so einiges, daher muss man es entsprechend spezifizieren und beschreiben. Das Datenblatt ist - wie die anderen aus der ILI**** Serie - in Ordnung. Nur du musst dich vielleicht daran gewöhnen mit solch einem Teil umzugehen. Max M. schrieb: > den Code muss man sich im Internet zusammenklauben Bis jetzt gab es noch für jedes Display in der Kategorie "Arduino" das auf den Markt gekommen ist eine Lib für den Arduino die man ohne viel Denkarbeit verwenden konnte. Wenn du allerdings ohne Arduino Framework auskommen willst dann must du etwas mehr Gehirnschmalz investieren. Aber auch dann kann man sich zumindest an den vorgefertigten Libs orientieren (wenn man selbst was schreiben will).
Wolfgang schrieb: > Hast du auch irgendwelche Vorstellungen über die > Auflösung/Farbe(ja/nein)/Farbauflösung oder ist das alles egal? Ist alles egal. Ich möchte nur kein gruseliges Datenblatt mehr haben ^^ Wobei TFT ja schon mit Farbe wäre. Kann von mir aus aber auch ein OLED oder LCD sein. Es gibt ja so kleine 0.96" OLED-Displays für wenig Geld, die sind aber alle nur mit I²C programmierbar (außer man verkabelt das rohe Display selber).
https://de.aliexpress.com/item/Wholesale-1PC-2-2-Inch-240-320-Dots-SPI-TFT-LCD-Serial-Port-Module-Display-ILI9341/1755410916.html?spm=2114.13010608.0.0.khzTJX&detailNewVersion=&categoryId=400401 2.2 Zoll. Treiber dazu findet man im Netz genug. Max M. schrieb: > den Code muss man sich im > Internet zusammenklauben und die Initialisierung besteht aus 200 Zeilen. Die kopiert man in seinem Code rein und gut ist. War eigentlich kein Problem das Teil in Betrieb zu nehmen.
Unnnd bitteschön: http://m.ebay.de/itm/1-8-128X160-SPI-TFT-LCD-Display-Modul-SD-Card-fur-Arduino-AVR-/272292794530?hash=item3f65ea50a2%3Ag%3A3goAAOSwTZ1XmV8a&_trkparms=pageci%253Ae9dfd9cc-8dfe-11e6-8355-005056b687e7%257Cparentrq%253Aa8ac9ab21570a2a1a1e8cb61ffff166f%257Ciid%253A15 MfG dat Beast
BeastyK schrieb: > Unnnd bitteschön: > Ebay-Artikel Nr. 272292794530 Diese Displays sind (aus seiner Sicht) alle mit dem gleichen "Problem" behaftet ....
Gibts denn keine Displays mit Datenblättern die so gut strukturiert sind wie die von Atmel?
Arduinoquäler schrieb: > Diese Displays sind (aus seiner Sicht) alle mit dem gleichen > "Problem" behaftet .... Ja, echt Schei.... das man die Teile programmieren muss.... :=)
Mit der ug8 oder Adafruit Grafik Lib bekommt man doch so ziemlich alle gängigen Displays angesteuert. Bei größeren wird es mit 1-Bit seriell zu langsam, deshalb wirst du da eher parallele Interfaces finden. Oder Intelligente wie bei iTead Nextion zB.
Helmut L. schrieb: > Ja, echt Schei.... das man die Teile programmieren muss.... :=) Ich hatte damals, als ich mich mit dem ILI9163 rumgeärgert habe, einen Beitrag eröffnet und da konnte mir keiner erklären, wie man denn nun die Initialisierung aus dem Datenblatt heraus bekommt.
Max M. schrieb: > Gibts denn keine Displays mit Datenblättern die so gut strukturiert sind > wie die von Atmel? Ich sehe da keinen grossen qualitativen Unterschied. Es ist alles nur anders. Wenn ATMEL Displays bauen würde müssten sie es auch so machen. Allenfalls ist die technische Ausdrucksweise der Ostasiaten manchmal gewöhnungs- bzw verbesserungsbedürftig.
Max M. schrieb: > Ich hatte damals, als ich mich mit dem ILI9163 rumgeärgert habe, einen > Beitrag eröffnet und da konnte mir keiner erklären, wie man denn nun die > Initialisierung aus dem Datenblatt heraus bekommt. Ich hatte einfach die Lib von Adafruit genommen, etwas modifiziert und dann lief es. Max M. schrieb: > Gibts denn keine Displays mit Datenblättern die so gut strukturiert sind > wie die von Atmel? Das sind Chinesen, da gibt es so gut wie keine dicken Datenblaetter. Dafuer sind die Teile dann Spottbillig.
Arduinoquäler schrieb: > BeastyK schrieb: > Unnnd bitteschön: > Ebay-Artikel Nr. 272292794530 > > Diese Displays sind (aus seiner Sicht) alle mit dem gleichen > "Problem" behaftet .... Also der TO hat als Chipsatz den ILI9163 angegeben. Mein genanntes Display hat den Chipsatz ST7735S, total anders. MfG dat Beast
Max M. schrieb: > Ist alles egal. Ich möchte nur kein gruseliges Datenblatt mehr haben ^^ Graphik soll es aber schon können oder reicht ein 96x16 mit fest integriertem Charaktergenerator und HD44780 Controller? Dafür gibt es Bibliotheken wie Sand am mehr und du musst dich nicht mit dem Lesen von Datenblättern rumquälen.
Max M. schrieb: > und da konnte mir keiner erklären, wie man denn nun die > Initialisierung aus dem Datenblatt heraus bekommt. Braucht man auch nicht wenn man den (Initialisierungs-) Code nimmt den einmal einer geschrieben hat. Und wer das nicht will muss sich eben haarklein mit der Physik bzw des inneren Aufbaus dieses Displays auseinandersetzen um die Einstellparameter zu finden.
BeastyK schrieb: > Mein genanntes > Display hat den Chipsatz ST7735S, total anders. Ja schon klar, schlaf weiter.
Arduinoquäler schrieb: > BeastyK schrieb: > Mein genanntes > Display hat den Chipsatz ST7735S, total anders. > > Ja schon klar, schlaf weiter. Schön lieb sein! Ich werd ja auch nicht pampig. Das Datenblatt ist ja wohl mal anders und im Netz kann der TO sich mit Libs totwerfen.
Benutzt ihr diese OLED 0.96" Displays mit I²C? Sowas währe für Controller mit wenigen Pins (z.B. den Tiny85) ganz nett. Nur hat der kein I²C...
Max M. schrieb: > Es gibt ja so kleine 0.96" OLED-Displays für wenig Geld, > die sind aber alle nur mit I²C programmierbar (außer man verkabelt das > rohe Display selber). http://www.ebay.de/itm/1-3-SPI-Serial-128X64-OLED-LCD-Display-Screen-Modul-fuer-Arduino-UNO-R3-51-/272357856004?_trksid=p2141725.m3641.l6368
Die OLED Displays gibt's auch mit SPI, das wäre dann doch wieder was für dich, Bsp.: http://m.ebay.de/itm/0-96-OLED-Display-SPI-128x64-Punkte-SSD1306-Anzeige-Blau-Gelb-Modul-fur-Arduino-/222192663656?hash=item33bbb6fc68%3Ag%3AFJgAAOSwRgJXj0kS&_trkparms=pageci%253A3704ca0f-8e05-11e6-81a2-74dbd1807cbb%257Cparentrq%253Aa8d5e69a1570a2a235e9915bfffddee7%257Ciid%253A6
Max M. schrieb: > Benutzt ihr diese OLED 0.96" Displays mit I²C? Sowas währe für > Controller mit wenigen Pins (z.B. den Tiny85) ganz nett. Nur hat der > kein I²C... Und? Dann mancht man sich den I2C halt in Software, wo ist das Problem?
Helmut L. schrieb: > Dann mancht man sich den I2C halt in Software, wo ist das Problem? Das war meine indirekte Frage, geht sowas denn? Immerhin gibt es sowas wie Bit Stretching des Slaves falls es ihm zu schnell wird. Das kann man per Software ja eher schlecht beachten / abfragen?
Max M. schrieb: > Nur hat der kein I²C... Hier geht's wieder chaotisch quer durch den Gemüsegarten ... Na was jetzt .... I2C oder SPI oder was? Max M. schrieb: > Displays mit integriertem Controller + SPI
Max M. schrieb: > Das war meine indirekte Frage, geht sowas denn? Immerhin gibt es sowas > wie Bit Stretching des Slaves falls es ihm zu schnell wird. Das kann man > per Software ja eher schlecht beachten / abfragen? Der Tiny ist doch der Master und bestimmt das Timing. Ist ueberhaupt kein Problem. Das ist auf die schnelle sogar einfacher als Hardware I2C. Solange der Controller an einem Pin wackeln kann, geht auch Software I2C. Dann braucht man sich noch nicht mal ins Datenblatt zum Hardware I2C einzulesen.
> Der Tiny ist doch der Master und bestimmt das Timing. Nein. Zumindest theoretisch koennte ein Slave die Clockleitung runterziehen wenn er mehr Zeit braucht. Aber natuerlich koennte man das auch in Software erkennen und darauf reagieren. Allerdings kann ich mich jetzt nicht erinnern jemals mit einem I2C-Slave gearbeitet zu haben das dies macht. Von daher wuerde ich das nicht ueber bewerten. > Das ist auf die schnelle sogar einfacher als Hardware I2C. Das stimmt natuerlich. Vor allem weil man sich sowas nur einmal programmiert und dann den Rest des Lebens auf allen Controllern verwenden kann. Gerade bei I2C hat man das schneller in Betrieb genommen als bis man bei manchem Controller die I2C-Engine verstanden hat. Problem ist aber eventuell das SoftI2C mehr Rechenzeit kostet. Muss man abwaegen. Gerade das Display hab ich normalweise in einem niedrig priorisierten Interrupt laufen. (printf schreibt nur in einen buffer) Da kann soetwas schon etwas weh tun wenn man nicht die Bits einzeln in einem TimerIRQ rauswerfen will. Olaf
Olaf schrieb: > Da > kann soetwas schon etwas weh tun wenn man nicht die Bits einzeln in > einem TimerIRQ rauswerfen will. Das ist im I2C Fall unerheblich da der I2C Bus langsamer ist als der Prozessor. Im Software-Fall braucht man Delays um das Timing einzuhalten, im Hardware-Fall muss man (im Interrupt-Kontext) darauf warten dass die I2C-Maschine fertig ist.
Der gängige Controller bei diesem 0.96" OLED Displays (https://de.aliexpress.com/item/Free-shipping-1Pcs-128X64-OLED-LCD-LED-Display-Module-For-Arduino-0-96-I2C-IIC-SPI/32224983358.html) ist der SSD1306, oder?
Max M. schrieb: > ist der SSD1306, oder? Der ist sicher auch so "gruselig", kein bisschen besser. Max M. schrieb: > Das Datenblatt des ILI9163 ist gruselig
> Im Software-Fall braucht man Delays um das Timing einzuhalten,
Ich hab mich bemueht zu erklaeren warum das schlecht ist und was man tun
kann damit man das nicht muss. Aber das hast du nicht verstanden oder?
Olaf
> Max M. schrieb: >> Das Datenblatt des ILI9163 ist gruselig Ich hatte mal an einem Framework für den Chipsatz ST7735S programmiert und hatte mir vorher die LIB zum ILI9263 von Lady ADA angeschaut um zu verstehen, was so alles in die Lib gehört. Die eigentlich zugrundeliegenden Funktionen sind doch immer die gleichen. Ich glaube, kennst du einen, kennst du alle. Im wesentlichen musst du nur eine Initialisierung schreiben, den Schreibpunkt im RAM setzen können und die Rohdaten rausschreiben können. Der Rest ist bei allen Frameworks dann gleich. Alles lässt sich im Prinzip auf eine Routine reduzieren-> "Zeichne ein Pixel mit der Farbe "0xff31" mit der Koordinate "x/y"
Danke für euren hilfreichen Antworten! Ich denke, ich hol mir ein OLED Display und versuche I²C per Software auf nem Tiny85 nachzubauen. Das Datenblatt sieht gar nicht so schlimm aus: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf :D
:
Bearbeitet durch User
Dic Olaf schrieb: > Allerdings kann ich mich jetzt nicht erinnern jemals mit einem I2C-Slave > gearbeitet zu haben das dies macht. Von daher wuerde ich das nicht ueber > bewerten. Doch, ist üblich. Zu erkennen an den "hier drei nops sonst spinnt der Chip"- Kommentaren im master-code
Den SSD1306 kann man soweit ich weiss in diesen Varianten ansteuern: - direkt in den Framebuffer des SSD1306 schreiben - in einen Frambebuffer im RAM des µC zeichnen und dann den kompletten FB übertragen Beides hat Vor- und Nachteile, letzere Variante braucht mehr RAM (1 kB für den FB). Das passt nicht in den Tiny85, deshalb aufpassen wenn du ein Lib nimmst. Vielleicht erstmal mit einem grösseren Mega328 anfangen damit du nicht gleich wegen Speichermangel tricksen musst.
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.