Hallo, ich bräuchte eine Plattform mit Grafikdisplay (320x240 reicht). Angezeigt sollen nur Menüs und Messwerte. Ich habe früher mal was mit µC gemacht und kann ein paar Programmiersprachen medium gut (C läuft auf jeden Fall). Ich würde gerne meine Energie und Zeit in das Produkt stecken und nicht in die Ansteuerung des Displays. Ich würde gerne in C programmieren (falls das geht). Fragen: Kann ich da einfach irgendein Arduino Shield mit Display nehemen und auch die Arduino Bib verwenden. Ich kenne mich mit Arduino überhaupt nicht aus und will auch eigentlich mit irgendeiner sdt lib programmieren. Atmegas habe ich mal vor 10 Jahren programmiert, STM32 Möhren (solls ja auch arduinos geben) kenne ich die sdt lib auch einigermaßen. Also Idee wäre die Arduino bib fürs Display zu klauen, um damit keinen Stress zu haben und Rest "normal" zu schreiben. Geht das? -> kenne Arduino überhaupt nicht, habe nur gehört dass die tolle Bibs haben die man sich sonst erst mühsam suchen müsste. Oft ist es dann auch so, dass man doch wieder ran muss da Fehler im Code sind etc. Habt Dank für Tips, gerne auch konkrete Kaufvorschläge, Thorsten. Achja die Anforderungen an den µC sind relativ bescheiden. Cool wäre 32 Bit (wegen den Timern) muss aber nicht. Rest ist ziemlich egal solange er noch ein paar Portpins hat (Messhardware ist alles extern).
Was ordentliches um ein derartiges Display softwaeremaessig zu treiben, waere EMWIN. Gibts auch fuer ST(M32) von ST. Die Libs die du da im Auge hast, haben immer ein C++-Beiwerk. Das wuerde z.B. ich nicht wollen. Warum wuerdest du selber auch bald feststellen. Ein LPC1768 kann ein ILI9341-Display bei kuerzer Leitungsfuehrung mit 50 MHz SPI-Clock betreiben. Das ist dann auch fuer kommerzielles Zeug, was nur Menues und Ergebnisse darstellen soll, schnell genug.
https://www.adafruit.com/product/1651 arduino m2560 + shield und du kannst in c und c++ loslegen evtl alternativ einen 32bitter mit Ardu Shield Buchsen https://www.ebay.de/itm/Klon-Due-SAM3X8E-32-bit-ARM-Cortex-M-Board-kompatibel-Arduino-Clone-/222837754329
Es gibt für Arduino viele Displays und Libraries mit sehr unterschiedlicher Qualität. Deswegen empfehle ich diese ausdrücklich nicht. Hier werden immer wieder die Displays von Nextion empfohlen. Sie enthalten einen eingebauten Grafik Controller und werden durch Befehle über eine serielle Schnittstelle gesteuert. Die bei Arduino üblichen Displays stellen hingegen nur Pixel dar. Da muss der arme kleine Mikrocontroller das ganze Bild selbst berechnen, bevor es an das Display übertragen wird. Das kostet eine Menge Speicher, mit 8bit AVR Mikrocontrollern machen diese Displays keinen Spaß. Um eine vernünftige Wahl treffen zu können, solltest Du mal beschrieben, was deine Plattform denn alles so können soll. Nur ein Display anzusteuern kann nicht der finale Sinn der Aktion sein.
>Ein LPC1768 kann ein ILI9341-Display bei kuerzer Leitungsfuehrung >mit 50 MHz SPI-Clock betreiben Ich habe noch im Kopf dass der ILI9341 max. 10 MHz SPI mitmacht. Bei mir gab es einzelne Pixelfehler ab 12,x MHz. Über Temperatur habe ich nie gemessen, nur unter Laborbedingungen.
Hab`s gefunden... Alles Andere ist außerhalb der Spec. Kann gehen, muss aber nicht!
> Ich habe noch im Kopf dass der ILI9341 max. 10 MHz SPI mitmacht. > Bei mir gab es einzelne Pixelfehler ab 12,x MHz. Ich schrub ja auch dazu, dass es einer: > kurzen Leitungsfuehrung bedarf. Dazu muss das Display so nah wie moeglich am Controller sitzen. Pixelfehler wuerde ich sehen, wenn es denn welche geben wuerde. Ich mache aber auch nur Schreibzugriffe auf das Display.
supergrobi schrieb: >> Ich habe noch im Kopf dass der ILI9341 max. 10 MHz SPI mitmacht. >> Bei mir gab es einzelne Pixelfehler ab 12,x MHz. > > Ich schrub ja auch dazu, dass es einer: >> kurzen Leitungsfuehrung > bedarf. Dazu muss das Display so nah wie moeglich am > Controller sitzen. > Pixelfehler wuerde ich sehen, wenn es denn welche geben wuerde. > > Ich mache aber auch nur Schreibzugriffe auf das Display. Paul Baumann, bist du es? ;-)
Hallo, interessanter Hinweis, ich hatte danach beim ILI9341 mal nicht ins Datenblatt geschaut. Am ESP32 bei 40MHz und Zimmertemperatur nach 2-3 Stunden Darstellungsfehler, mit 27MHz stabil. Da hat der Hersteller aber mal recht pessimistische Angaben gemacht. Gruß aus Berlin Michael
Thorsten schrieb: > ich bräuchte eine Plattform mit Grafikdisplay (320x240 reicht). > Angezeigt sollen nur Menüs und Messwerte. Ich habe früher mal was mit µC > gemacht und kann ein paar Programmiersprachen medium gut (C läuft auf > jeden Fall). Ich würde gerne meine Energie und Zeit in das Produkt > stecken und nicht in die Ansteuerung des Displays. Ich würde gerne in C > programmieren (falls das geht). Fangen wir mal hinten an: - in C programmieren: sollte OK sein, sofern du es kannst - Zeit ins Produkt und nicht ins Display: Das siehst du viel zu grob. Teile mal das Problem in 3 Teile: a) die eigentliche Display-Ansteuerung: entweder Port und Lowlevel-treiber oder RGB und nur mit dickeren µC nebst ausreichend RAM (vorher prüfen) b) die Gestaltung der grafischen Anzeigefläche, also Kringel malen, Flächen füllen, Fonts verwalten und Text zeichnen c) Menü-System und Menüelemente ausdenken. - Grafikdisplay 320x240: monochrom oder bunt? Wenn bunt, dann lieber 480x272 in 4.3", ist verbreiteter. Dafür brauchst du aber nen dickeren µC wie LPC178? oder LPC4088 oder so und du brauchst dafür einiges an externem RAM, weil der interne dafür nicht ausreicht. W.S.
W.S. schrieb: > Dafür brauchst du aber nen dickeren > µC wie LPC178? oder LPC4088 oder so und du brauchst dafür einiges an > externem RAM, weil der interne dafür nicht ausreicht. Ein STM32F407 reicht völlig aus, um QVGA oder WQVGA mit 256 Farben anzusteuern. Externes RAM ist nicht erforderlich!
m.n. schrieb: > Ein STM32F407 reicht völlig aus, was in etwa die gleiche M4 Klasse ist wie der LPC4088, nur billiger zu bekommen. Beim Chinesen gleich mit Display zum anstecken. Aber so wie die Frage vom TO gestellt wurde empfehle ich erstmal Alexa zu fragen. Thorsten schrieb: > Also Idee wäre die Arduino bib fürs Display zu klauen, um damit keinen > Stress zu haben und Rest "normal" zu schreiben. Geht das? -> kenne > Arduino überhaupt nicht, habe nur gehört dass die tolle Bibs haben die > man sich sonst erst mühsam suchen müsste. Dann wäre der erste Rat sich mal damit zu beschäftigen, klein anzufangen und wenn es klappt die weiteren Schritte zu machen und konkret zu fragen. Oder bei einer Arduino Bastelgruppe im nächsten Makerspace vorbeizuschauen.
Thorsten schrieb: > Fragen: Kann ich da einfach irgendein Arduino Shield mit Display nehemen > und auch die Arduino Bib verwenden Der Arduino reicht nicht für 320x240 Graphik. Das war die Domäne der ARM Prozessoren in früheren Windows-CE Computern. Wenn du nur Text und Rechtecke und Linien zeichnen lassen willst, kann es ein Graphikprozessor machen, aber so bald der uC zeichnen soll, brauchst du mehr Rechenleistung und RAM. supergrobi schrieb: > Ein LPC1768 kann ein ILI9341-Display bei kuerzer Leitungsfuehrung > mit 50 MHz SPI-Clock betreiben. Schau wie lahmarschig das geht: https://www.youtube.com/watch?v=z_P5L-dz23Y Besser: https://www.youtube.com/watch?v=DGmumTezHAs
Wer statt mit Argumenten mit utube kommt, braucht sich hier nicht weiter beteiligen. "Lahmarschig" ist zudem ein subjektiver Begriff. Fuer Textausgaben und vektorielle Ausgaben ist es mir schnell genug und laesst auch noch IOs fuer andere Zwecke als die Displayansteurung uebrig.
Michael B. schrieb: > Schau wie lahmarschig das geht: man kann auch einen Stm32F103/407 nehmen der via DMA SPI Daten wie Bilder und Colorfonts zwischen Spi-Flash und ILI-LCD schaufelt. das ist meine bevorzugte Methode.. wieso hat hier noch keiner Nextion erwähnt? (ich nicht)
Philipp K. schrieb: > wieso hat hier noch keiner Nextion > erwähnt? (ich nicht) da hast du den 4. Beitrag von Stefan überlesen
Wie wärs denn mit sowas? https://de.aliexpress.com/item/Free-shipping-STM32F407VET6-development-board-Cortex-M4-STM32-minimum-system-learning-board-ARM-core-board/32618222721.html?spm=a2g0x.search0104.3.1.59c17c4czX3eyB&ws_ab_test=searchweb0_0,searchweb201602_3_10320_10065_10068_318_10547_319_10548_317_10696_450_10084_10083_10618_452_535_534_10304_533_10307_10820_532_10821_10302_204_10843_10059_10884_323_10887_100031_10319_320_321_322_10103_448_449,searchweb201603_55,ppcSwitch_0&algo_expid=d38e66a6-c796-4b30-99a9-d2fb42e74b54-0&algo_pvid=d38e66a6-c796-4b30-99a9-d2fb42e74b54 Wenn man da "eine andere Farbe" wählt, erscheint das dazugehörige Display. Das ist parallel via FSMC angebunden und ziemlich schnell... https://www.youtube.com/watch?v=02-vUJkdGzs
Thorsten schrieb: > Angezeigt sollen nur Menüs und Messwerte. Ich würde erstmal ein Text-LCD benutzen. Dann kann man sich voll auf die Implementierung der Funktion konzentrieren. Und wenn man danach noch Lust hat, kann man sich ja immer noch mit einem GLCD abplagen. Die Funktion steht ja bereits, man muß also "nur noch" die Ausgaben umleiten.
Stefanus F. schrieb: > Um eine vernünftige Wahl treffen zu können, solltest Du mal beschrieben, > was deine Plattform denn alles so können soll. Nur ein Display > anzusteuern kann nicht der finale Sinn der Aktion sein. Im Prinzip nur das Display und Menüsteuern. Einen Drehencoder kann jeder µC und Daten empfangen per SPI auch. Mehr brauche ich nicht. W.S. schrieb: > - Zeit ins Produkt und nicht ins Display: Das siehst du viel zu grob. > Teile mal das Problem in 3 Teile: Damit war gemeint, ich will mich auf meine Kernkompetenzen nutzen und wenn es was fertiges gibt gerne nutzen. m.n. schrieb: > Ein STM32F407 reicht völlig aus, um QVGA oder WQVGA mit 256 Farben > anzusteuern. Externes RAM ist nicht erforderlich Hast du da ein Beispiel? W.S. schrieb: > - Grafikdisplay 320x240: monochrom oder bunt? Wenn bunt, dann lieber > 480x272 in 4.3", ist verbreiteter. Dafür brauchst du aber nen dickeren > µC wie LPC178? oder LPC4088 oder so und du brauchst dafür einiges an > externem RAM, weil der interne dafür nicht ausreic Sorry. Bunt wäre toll, 256 Farben reichen aber aus, wenn das den externen Speicher verhindern kann. Johannes S. schrieb: > Dann wäre der erste Rat sich mal damit zu beschäftigen, klein anzufangen > und wenn es klappt die weiteren Schritte zu machen und konkret zu > fragen. Dafür suche ich einen Start. Ich habe mir schon ein paar Sachen zu Displays durchgelesen und rausgeschrieben. Leider hat mich das etwas überfordert. Wenn mir jemand sagt, nimm einen STM32F407 und das Display mit paraller Ansteuerung könnte ich damit was anfangen. Johannes S. schrieb: > was in etwa die gleiche M4 Klasse ist wie der LPC4088, nur billiger zu > bekommen. Beim Chinesen gleich mit Display zum anstecken. Hast du hier mal ein Link. Ich habe gerade ebay durchsucht, konnte aber nichts finden. nur einen STM32F103 mit Display der dürft aber etwas klein sein. https://www.ebay.de/itm/3-2-TFT-Touch-LCD-board-Display-Screen-Panel-STM32-STM32F103VCT6-Dev-Boar/173078599180?hash=item284c49d60c:g:7wEAAOSwaB5XrU2i:rk:51:pf:0 Also stockeln soll es nicht. Anzeigen, Menüs und Messwerte. Ein paar Farben reichen aus (von mir aus auch 16), 256 wären aber schöner. Bevorzuge etwas was es in 5 Jahren auch noch gibt. Also vielleicht kein hochintegriertes Display mit speziellem Controller, sondern lieber einen µC mit Grafikcontroller und paralleler Ansteuerung. Doofe Frage, die ILI9341 kann man nicht parallel ansteuern? Muss man da das Interface nutzen?
Thorsten schrieb: > Hast du hier mal ein Link. ich benutze das gleiche board wie Harry L., https://de.aliexpress.com/item/Free-shipping-STM32F407VET6-development-board-Cortex-M4-STM32-minimum-system-learning-board-ARM-core-board/32618222721.html Software dazu wäre sein Beispiel oder selber etwas mit STM QubeMX generieren. Dann wird genau dieses Board auch von einigen Arduino cores unterstützt. Ich bevorzuge das mbed-os und habe die Adafruit GFX Lib dafür angepasst. Ein Menusystem oder GUI Elemente können dann darauf aufsetzen, da findet man sicher auch einiges (halb)fertig.
Peter D. schrieb: > Thorsten schrieb: >> Angezeigt sollen nur Menüs und Messwerte. > > Ich würde erstmal ein Text-LCD benutzen. Das kommt drauf an, ob die Messwerte in Zahlen- oder Kurvenform dargestellt werden sollen. https://www.ebay.com/itm/401087406846
Michael B. schrieb: > Der Arduino reicht nicht für 320x240 Graphik. Schau Dir mal an was ein Gameduino 3 ist.
Michael B. schrieb: > Schau wie lahmarschig das geht: > Youtube-Video "LCD driver ILI9341 2.2inch spi 320x240 65k 262k" Also mit ESP32 und 40 MHz SPI-Clock läuft trotz Freiluftverdrahtung super bei mir: https://drive.google.com/file/d/1z7eFo_Sp65fTyKtbV9RrXaBzKUksBabe/view?usp=sharing
Thorsten schrieb: > m.n. schrieb: >> Ein STM32F407 reicht völlig aus, um QVGA oder WQVGA mit 256 Farben >> anzusteuern. Externes RAM ist nicht erforderlich > > Hast du da ein Beispiel? Die Rechnung ist doch einfach. Wenn Du keinen Framebuffer nutzt, dann ist der Speicher fast Wurst und es geht auch mit ein paar Kilobyte RAM. Ein Framebuffer hat aber viele Vorteile. Vor allem kann man dann schön DMA nutzen und im Extremfall den kompletten Framebuffer per DMA ins DisplayRam übertragen. 320x240x8Bit -> 75kB 320x240x16Bit-> 150kB Ein grosser STM32F103 (RF/RG) reicht also schon für die 8Bit-Variante. Ansonsten halt ein F4. Bei spezifikationsgemäßen 10MHz am ILI9341 kommst Du mit Framebuffer und DMA immerhin noch auf 12Hz. Sollte für Deine Zwecke reichen. > Dafür suche ich einen Start. Ich habe mir schon ein paar Sachen zu > Displays durchgelesen und rausgeschrieben. Leider hat mich das etwas > überfordert. Wenn mir jemand sagt, nimm einen STM32F407 und das Display > mit paraller Ansteuerung könnte ich damit was anfangen. Parallel geht auch, ist aber etwas aufwendiger. SPI beim ILI9341 ist trivial. > Hast du hier mal ein Link. Ich habe gerade ebay durchsucht, konnte aber > nichts finden. nur einen STM32F103 mit Display der dürft aber etwas > klein sein. > https://www.ebay.de/itm/3-2-TFT-Touch-LCD-board-Display-Screen-Panel-STM32-STM32F103VCT6-Dev-Boar/173078599180?hash=item284c49d60c:g:7wEAAOSwaB5XrU2i:rk:51:pf:0 Der hat nur 64kB RAM. Für einen Framebuffer ist das zu wenig. Mit trickreicher Porgrammierung kann man auch nur einen rechteckigen Ausschnitt ans Display schicken. Du könntest das Bild also in "Etappen" aufbauen. Ist halt aufwendig von der Software her. Würde ich mir nicht antun. > Also stockeln soll es nicht. Anzeigen, Menüs und Messwerte. Ein paar > Farben reichen aus (von mir aus auch 16), 256 wären aber schöner. > Bevorzuge etwas was es in 5 Jahren auch noch gibt. Also vielleicht kein > hochintegriertes Display mit speziellem Controller, sondern lieber einen > µC mit Grafikcontroller und paralleler Ansteuerung. Doofe Frage, die > ILI9341 kann man nicht parallel ansteuern? Muss man da das Interface > nutzen? Der ILI9341 kann sowohl parallel als auch SPI. Parallel ist halt etwas aufwendiger (mehr Leiterbahnen bzw. Kabel, aufwendigere Initialisierung).
Stefanus F. schrieb: >> Um eine vernünftige Wahl treffen zu können, solltest Du mal beschrieben, >> was deine Plattform denn alles so können soll. Nur ein Display >> anzusteuern kann nicht der finale Sinn der Aktion sein. Thorsten schrieb: > Im Prinzip nur das Display und Menüsteuern. > Einen Drehencoder kann jeder µC und Daten empfangen per SPI auch. Ja aber das ganze Menü muss ja auch irgendeinen Sinn haben. Was willst du denn mit SPI machen? Einen Ethernet Controller ansteuern? Oder ein MP3 File von SD Karte abspielen? Oder Messwerte von Sensoren erfassen und darstellen? Irgend einen tieferen Sinn muss das ganze ja haben und davon hängt unter Umständen ab, welche Controller geeignet ist. SPI kann nämlich eben nicht jeder. Und die es können, haben vielleicht nicht genug Speicher oder sind zu langsam. Auch einen Drehencoder kann man nicht so ohne weiteres an jedes Board anschließen. Beim Raspberry Pi dürfte das zum Beispiel schwierig werden (wegen Interrupt Handling und fehlender Echtzeit-Fähigkeit). Dann wäre auch die Frage nach der Anzahl der Drehencoder.
Thorsten schrieb: > m.n. schrieb: >> Ein STM32F407 reicht völlig aus, um QVGA oder WQVGA mit 256 Farben >> anzusteuern. Externes RAM ist nicht erforderlich > > Hast du da ein Beispiel? Beitrag "TFT-direct-drive, WQVGA-TFT an STM32F4" Um es auf den Punkt zu bringen: Der Bildaufbau ist affenschnell! Thorsten schrieb: > Also stockeln soll es nicht. Anzeigen, Menüs und Messwerte. Ein paar > Farben reichen aus (von mir aus auch 16), 256 wären aber schöner. Viele Farben sind in meinen Augen etwas für verspielte Menschen. In der Praxis zeigt sich, daß wenige, prägnante Farben völlig ausreichen. Wer mag denn zum Beispiel dunkelblaue Schrift auf schwarzem Hintergrund oder gelbe Schrift auf weisser Fläche? Die üblichen TFTs sind so blickwinkelabhängig, daß feine Farbnuancen schon bei kleinen Ablesewinkeln deutlich anders abgebildet werden. Im technischen Umfeld stört diese Spielerei eher. Für meine Anwendungen wichtiger finde ich das Attribut Blinken, das per Hardware ausgeführt wird. > Bevorzuge etwas was es in 5 Jahren auch noch gibt. Selber verwende ich 5,7" QVGA TFTs von EDT (Glyn), die langfristige Lieferbarkeit bei gleicher Steckerbelegung bieten. An anderer Stelle hatte ich hier gebrauchte Anzeigen ohne Touch-Folie für einen 10er angeboten, dazu auch Leerplatinen. Aber einem fernostorientierten Bastler sind selbst diese zu teuer. Bei 4,3" TFTs gibt es auch eine Vielzahl an Angeboten, die die gleiche 40-pol. Steckerbelegung aufweisen und damit austauschbar sind. Wenn Dir kleine Anzeigen <4,3" reichen, dann gibt es billige Angebote, deren Leistungsfähigkeit ich aber nicht beurteilen kann und deren Verfügbarkeit wohl gewissen Modeerscheinungen unterliegt. Bessere Hardware wäre ein Discovery-Board (STM32F429 oder STM32F746), welche für relativ wenig Geld die komplette Hardware inkl. Display bieten. Nachteilig bei diesen ist allerdings, daß viele IO-Leitungen durch nicht benötigte Zusatzhardware blockiert sind. Die Programmierung erfordert zudem einigen Aufwand, wenn man nicht gerade eine zusammengeklickte Anwendung für den eigenen Bedarf findet. Ein Beispiel für Verwendung eines STM32F429 Discovery-Boards gibt es hier: http://mino-elektronik.de/FM_407/fmeter_407.htm#c1 Direkt danach noch eine Anwendung mit 4,3" und direkter TFT-Ansteuerung: http://mino-elektronik.de/FM_407/fmeter_407.htm#c2 Wenn der Winter lang und kalt wird, werde ich die Schaltung vielleicht noch einmal richtig überarbeiten ;-)
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.