Hallo ich habe folgendes Display von Amazon: https://www.amazon.de/QVGA-Display-SD-Karten-Slot-Arduino-Raspberry/dp/B01E0MGZU2/ref=sr_1_2?ie=UTF8&qid=1467992269&sr=8-2&keywords=ili9341 Wenn ich das Display mit 3-Wire-SPI@500khz betreibe, geht alles prima. Text, Füllen, an/abschalten. Wenn ich den SPI-Speed aber erhöhe, z.B. auf 2Mhz, dann geht nichts mehr. Das Display gibt dann nur noch Müll aus ... Laut einiger Foren sollen aber bis zu 40 Mhz möglich sein! Muss ich da in der Initialisierung etwas ändern? Oder wo stelle ich das ein? Datenblatt: https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf Grüße der norddeutsche Problembär
Problembär schrieb: > Laut einiger Foren > sollen aber bis zu 40 Mhz möglich sein! Das tut es auch (fast). Zumindest bis 10 Mhz laufen diese Displays bei mir zuverlässig, fehlerfrei. Das ist die maximale Datenrate bei 20MHz AVRs. Problembär schrieb: > Oder wo stelle ich das ein? An deinem physikalischen Schaltungsaufbau.
Hallo! Deine Infos sind zu wenig, um weiterhelfen zu können! ...wo betreibst Du das Display, welcher Hardware, mit welchem Programm, Lib usw.? Wie sieht es mit Hardwarebeschaltung aus? Hast Du 5V oder 3,3V Logik? Bisschen mehr Informationen würden uns dem Rätsel näherbringen :-)
Spannungsteiler schrieb: > .... > Beitrag "2.2" GLCD 320x240 mit ILI9341" Was soll das dem TO helfen?
Frickelfritze schrieb: > Was soll das dem TO helfen? ????? zum Beispiel diesen Zitat hier; Die Pegelwandlung vom 5V-Arduino zum nicht-5V-toleranten Display soll man laut elecfreaks einfach mit einem Serienwiderstand von 20...30 kOhm erreichen. Bastleralarm! Das muss einem doch auffallen, dass man 10 MHz Rechteck nicht durch einen 30k-Widerstand schicken kann. Mit 30k und einer angenommenen Eingangskapazität von 10 pF (das Datenblatt schweigt dazu) beträgt die -3dB-Grenzfrequenz 1/(2*Pi*R*C) gerade noch 500 kHz. Wenn es nur 5pF sind liegen wir immer noch eine Dekade unter der Taktfrequenz. Anderswo schlägt jemand einen mit 3,3V betriebenen Uralt-Buffer CD4050 vor. Der stammt aus der Zeit, als CMOS-Flipflops bei 5V gerade noch 2,5 MHz teilen konnten. Wenn schon aktiv, dann einen zeitgemäßeren 3,3V-Chip einer 5V-toleranten Familie, oder vielleicht auch die MOSFET-Serienschaltung nach Philips-Applikation - kann die eigentlich 10 MHz? Zitat Ende.
Oh, sry. 3v3 logik von einem PIC16@32mhz (intern), direkt verdrahtet mit 2cm leiterbahn - hardwaremäßig also alles im Lot. Ich vermute eher, dass bei der Initialisierung was im argen ist. Hab diese copy/paste aus einer arduinolib... lcd_send(LCD_REG, 0xCB); lcd_send(LCD_DATA, 0x39); lcd_send(LCD_DATA, 0x2C); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_DATA, 0x34); lcd_send(LCD_DATA, 0x02); lcd_send(LCD_REG, 0xCF); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_DATA, 0XC1); lcd_send(LCD_DATA, 0X30); lcd_send(LCD_REG, 0xE8); lcd_send(LCD_DATA, 0x85); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_DATA, 0x78); lcd_send(LCD_REG, 0xEA); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_REG, 0xED); lcd_send(LCD_DATA, 0x64); lcd_send(LCD_DATA, 0x03); lcd_send(LCD_DATA, 0X12); lcd_send(LCD_DATA, 0X81); lcd_send(LCD_REG, 0xF7); lcd_send(LCD_DATA, 0x20); lcd_send(LCD_REG, 0xC0); // Power control lcd_send(LCD_DATA, 0x23); // VRH[5:0] lcd_send(LCD_REG, 0xC1); // Power control lcd_send(LCD_DATA, 0x10); // SAP[2:0];BT[3:0] lcd_send(LCD_REG, 0xC5); // VCM control lcd_send(LCD_DATA, 0x3e); lcd_send(LCD_DATA, 0x28); lcd_send(LCD_REG, 0xC7); // VCM control2 lcd_send(LCD_DATA, 0x86); lcd_send(LCD_REG, 0x36); // Memory Access Control lcd_send(LCD_DATA, 0x48); // C8 lcd_send(LCD_REG, 0x3A); lcd_send(LCD_DATA, 0x55); lcd_send(LCD_REG, 0xB1); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_DATA, 0x18); lcd_send(LCD_REG, 0xB6); // Display Function Control lcd_send(LCD_DATA, 0x08); lcd_send(LCD_DATA, 0x82); lcd_send(LCD_DATA, 0x27); lcd_send(LCD_REG, 0xF2); // 3Gamma Function Disable lcd_send(LCD_DATA, 0x00); lcd_send(LCD_REG, 0x26); // Gamma curve selected lcd_send(LCD_DATA, 0x01); lcd_send(LCD_REG, 0xE0); // Set Gamma lcd_send(LCD_DATA, 0x0F); lcd_send(LCD_DATA, 0x31); lcd_send(LCD_DATA, 0x2B); lcd_send(LCD_DATA, 0x0C); lcd_send(LCD_DATA, 0x0E); lcd_send(LCD_DATA, 0x08); lcd_send(LCD_DATA, 0x4E); lcd_send(LCD_DATA, 0xF1); lcd_send(LCD_DATA, 0x37); lcd_send(LCD_DATA, 0x07); lcd_send(LCD_DATA, 0x10); lcd_send(LCD_DATA, 0x03); lcd_send(LCD_DATA, 0x0E); lcd_send(LCD_DATA, 0x09); lcd_send(LCD_DATA, 0x00); lcd_send(LCD_REG, 0xE1); // Set Gamma lcd_send(LCD_DATA, 0x00); lcd_send(LCD_DATA, 0x0E); lcd_send(LCD_DATA, 0x14); lcd_send(LCD_DATA, 0x03); lcd_send(LCD_DATA, 0x11); lcd_send(LCD_DATA, 0x07); lcd_send(LCD_DATA, 0x31); lcd_send(LCD_DATA, 0xC1); lcd_send(LCD_DATA, 0x48); lcd_send(LCD_DATA, 0x08); lcd_send(LCD_DATA, 0x0F); lcd_send(LCD_DATA, 0x0C); lcd_send(LCD_DATA, 0x31); lcd_send(LCD_DATA, 0x36); lcd_send(LCD_DATA, 0x0F); lcd_send(LCD_REG, 0x11); // Sleep out __delay_ms(120); //msDelay(120); lcd_send(LCD_REG, 0x2c); lcd_fill(global_bg_color); lcd_send(LCD_REG, 0x29); // Display on lcd_send(LCD_REG, 0x2c); zuvor vergessen. Sry! ;)
> Muss ich da in der Initialisierung etwas ändern? Oder wo stelle ich das > ein? Zeige deinen Aufbau, die Initialisierung der SPI-Schnittstelle und die Writefunktion.
Problembär schrieb: > zuvor vergessen. Sry! ;) Wichtige Regeln - erst lesen, dann posten! ......... ......... Formatierung (mehr Informationen...)
1 | [c]C-Code |
>Laut einiger Foren sollen aber bis zu 40 Mhz möglich sein!
Laut Datenblatt min. 100ns Clockcycle beim Schreiben und 150ns
beim Lesen. Also maximal 10MHz wenn du nur schreibst.
Und initialisieren muss man dazu im Display nichts.
@holger danke, ich hab das kapitel einfach übersehen. Das war die grundfrage, ob das display es kann. nachdem es auch an der initialisierung ich mal einen Schritt zurückgemacht. Fehler gefunden: ich hole das Display aus dem Reset und hab den Delay vergessen - blöder Fehler. Danke allen Helfern!
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.