Kurze Frage, ich steuere mein LCD mit ili9341 controller über einen at90can an. dieser hat 5 V ausgangsspannung. Wie regel ich diese spannung am besten auf 3,3 V runter? Gibt es dafür einen schnellen Tip? Vielen Dank im voraus
Wenn du nur das Display mit Strom versorgen möchtest reicht eine z Diode aus. Der ili9341 verträgt der 5v Steuersignale vom uC? Wenn nicht dann Pegelwandler. Oder dein komplettes Projekt wird mit 3.3V betrieben. :) Und ja, ein Regler ist möglich. SMD?
Martin T. schrieb: > Wenn du nur das Display mit Strom versorgen möchtest reicht eine z Diode > aus. Der ili9341 verträgt der 5v Steuersignale vom uC? Wenn nicht dann > Pegelwandler. Oder dein komplettes Projekt wird mit 3.3V betrieben. :) > Und ja, ein Regler ist möglich. SMD? das Display sollte iegtnlich 5 V vertragen. Da ich mit dem Initialisieren allerdings nicht weiter komme, dachte ich mir, dass ich mal Versuche die 3,3 V zu bekommen
> das Display sollte iegtnlich 5 V vertragen. Da ich mit dem > Initialisieren allerdings nicht weiter komme, dachte ich mir, dass ich > mal Versuche die 3,3 V zu bekommen Also ich habe auch den ili9341, Allerdings mit 3.3V soweit ich das datenblatt interpretieren kann, darf nix über 3.3V rein. Am besten wäre ein spannungsregler und ein Pegelwandler. Möchtest du SMD verwendet?
Martin T. schrieb: >> das Display sollte iegtnlich 5 V vertragen. Da ich mit dem >> Initialisieren allerdings nicht weiter komme, dachte ich mir, dass ich >> mal Versuche die 3,3 V zu bekommen > > Also ich habe auch den ili9341, Allerdings mit 3.3V soweit ich das > datenblatt interpretieren kann, darf nix über 3.3V rein. > Am besten wäre ein spannungsregler und ein Pegelwandler. > Möchtest du SMD verwendet? ich hab eins von adafruit und da steht dass es von 3,3 V-5 V betrieben werden kann. Nein SMD möchte ich nicht verwenden
> ich hab eins von adafruit und da steht dass es von 3,3 V-5 V betrieben > werden kann. Nein SMD möchte ich nicht verwenden Sag das doch. Dann brauchst du dir keine Gedanken machen, auf dem Board ist ein Wandler und Regler drauf. Warum willst du jetzt was auf 3.3v regeln?
Martin T. schrieb: >> ich hab eins von adafruit und da steht dass es von 3,3 V-5 V > betrieben >> werden kann. Nein SMD möchte ich nicht verwenden > > Sag das doch. Dann brauchst du dir keine Gedanken machen, auf dem Board > ist ein Wandler und Regler drauf. Warum willst du jetzt was auf 3.3v > regeln? Ist wohl mehr ein Verzweiflungsversuch, da ich das Initialisieren nicht hinbekomme und mir überlegt habe, ob es daran liegen könnte ... sorry hast du ein programmcode zum initialisiern des displays, dass du evtl. auch zu verfügung stellst. ich bin wirklich am ende mit meinem latein
Hast du einen Schaltplan? Welches Modul von Adafruit ist das? Ich habe das eine für den arduino und das 2.8 Breakout Board
Martin T. schrieb: > Hast du einen Schaltplan? > Welches Modul von Adafruit ist das? > Ich habe das eine für den arduino und das 2.8 Breakout Board http://www.exp-tech.de/adafruit-2-8-tft-lcd-with-touchscreen-breakout-board-w-microsd-socket
Martin T. schrieb: > Ich habe das eine für den arduino und das 2.8 Breakout Board Das sind ganz andere LCDs ! Der 9341 is üblicherweise ein 2.2 inch Display, der Controller mit SPI.
matthias s. schrieb: > http://www.exp-tech.de/adafruit-2-8-tft-lcd-with-t... Ja in diesem Fall passt es, aber Martin T. schrieb: > für den arduino und das 2.8 Breakout Board Es gibt nur eines, gell?
> hast du ein programmcode zum initialisiern des displays, dass du evtl. > auch zu verfügung stellst. ich bin wirklich am ende mit meinem latein Schick mal deine Routine. Nein Mitlesa, es gibt mehrere Varianten von Adafruit. Die Displays sind die gleichen. Bei dem http://www.exp-tech.de/adafruit-2-8-tft-lcd-with-t Ist z. B. Kein Touchcontroller drauf
Martin T. schrieb: > Schick mal deine Routine. void UTFT::InitLCD(void) { TCCR2A = (1 << COM2A1) | (1 << WGM20); TCCR2A = (1 << CS21); //CS Pin DDRB |= (1<<PB0); // DC Pin DDRA |= (1<<PA0); SPI.SPI_init(); CS_TFT_HIGH; DC_TFT_HIGH; _delay_ms(1); //alter Wert 100 LCD_Write_COM(0xCB); LCD_Write_DATA(0x39); LCD_Write_DATA(0x2C); LCD_Write_DATA(0x00); LCD_Write_DATA(0x34); LCD_Write_DATA(0x02); LCD_Write_COM(0xCF); LCD_Write_DATA(0x00); LCD_Write_DATA(0XC1); LCD_Write_DATA(0X30); LCD_Write_COM(0xE8); LCD_Write_DATA(0x85); LCD_Write_DATA(0x00); LCD_Write_DATA(0x78); LCD_Write_COM(0xEA); LCD_Write_DATA(0x00); LCD_Write_DATA(0x00); LCD_Write_COM(0xED); LCD_Write_DATA(0x64); LCD_Write_DATA(0x03); LCD_Write_DATA(0X12); LCD_Write_DATA(0X81); LCD_Write_COM(0xF7); LCD_Write_DATA(0x20); LCD_Write_COM(0xC0); //Power control LCD_Write_DATA(0x23); //VRH[5:0] LCD_Write_COM(0xC1); //Power control LCD_Write_DATA(0x10); //SAP[2:0];BT[3:0] LCD_Write_COM(0xC5); //VCM control //LCD_Write_DATA (0x2B); //LCD_Write_DATA (0x2B); LCD_Write_DATA(0x3e); //Contrast LCD_Write_DATA(0x28); LCD_Write_COM(0xC7); //VCM control2 LCD_Write_DATA(0x86); //-- // Memory Access Control // [MY] [MX] [MV] [ML] [BGR] [MH] 0 0 // 0 1 0 0 1 0 0 0 = 48 // 0 1 0 1 1 0 0 0 = 58 LCD_Write_COM(0x36); LCD_Write_DATA(0x48); LCD_Write_DATA(0x58); LCD_Write_COM(0x3A); LCD_Write_DATA(0x55); LCD_Write_COM(0xB1); LCD_Write_DATA(0x00); LCD_Write_DATA(0x18);// 79Hz //LCD_Write_DATA(0x13); //100 hz LCD_Write_COM(0xB6); // Display Function Control LCD_Write_DATA(0x08); LCD_Write_DATA(0x82); LCD_Write_DATA(0x27); LCD_Write_COM(0xF2); // 3Gamma Function Disable LCD_Write_DATA(0x00); LCD_Write_COM(0x26); //Gamma curve selected LCD_Write_DATA(0x01); LCD_Write_COM(0xE0); //Set Gamma LCD_Write_DATA(0x0F); LCD_Write_DATA(0x31); LCD_Write_DATA(0x2B); LCD_Write_DATA(0x0C); LCD_Write_DATA(0x0E); LCD_Write_DATA(0x08); LCD_Write_DATA(0x4E); LCD_Write_DATA(0xF1); LCD_Write_DATA(0x37); LCD_Write_DATA(0x07); LCD_Write_DATA(0x10); LCD_Write_DATA(0x03); LCD_Write_DATA(0x0E); LCD_Write_DATA(0x09); LCD_Write_DATA(0x00); LCD_Write_COM(0xE1); //Set Gamma LCD_Write_DATA(0x00); LCD_Write_DATA(0x0E); LCD_Write_DATA(0x14); LCD_Write_DATA(0x03); LCD_Write_DATA(0x11); LCD_Write_DATA(0x07); LCD_Write_DATA(0x31); LCD_Write_DATA(0xC1); LCD_Write_DATA(0x48); LCD_Write_DATA(0x08); LCD_Write_DATA(0x0F); LCD_Write_DATA(0x0C); LCD_Write_DATA(0x31); LCD_Write_DATA(0x36); LCD_Write_DATA(0x0F); LCD_Write_COM(0x11); //Exit Sleep _delay_ms(120); LCD_Write_COM(0x29); //Display on LCD_Write_COM(0x2c); _delay_ms(10); } void SPILibrary::SPI_init() { /* Set MISO output, all others input */ //SS als output DDRB |= (1<<PB0); //CS auf high PORTB |= (1<<PB0); //SCK output DDRB |= (1<<PB1); //MOSI output DDRF |= (1<<PF0); //MISO input //DDRF &=~ (1<<PF1); // speed SPCR |= (1<<SPE) | (1<<MSTR); SPCR &=~ ((1<<SPR0)|(1<<SPR1)); SPSR |= (1<<SPI2X); /* Enable SPI */ //SPCR |= (1<<SPE); } uint8_t SPILibrary::SPI_transfer(uint8_t cData) { /* Wait for reception complete */ while(!(SPSR & (1<<SPIF))); /* Return data register */ return SPDR; } SPILibrary SPI;
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.