Skocz do zawartości

Adafruit_ILI9341 - jak ustawić sprzętowe SPI ?


Roberttar

Pomocna odpowiedź

Cześć.

Robię obsługę wyświetlacza na ESP32 DevKit v1

Problem mam z szybkim odświeżaniem danych na wyświetlaczu.

Wyświetlacz mam podłączony tak (pod V-SPI)

#define TFT_DC          27

#define TFT_CS          26

#define TFT_MOSI        13

#define TFT_CLK         14

#define TFT_RST         32

#define TFT_MISO        12

Jak użyje:

Adafruit_ILI9341 tft = Adafruit_ILI9341( TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK );

Wyświetlacz działa ale widać mignięcia za każdym odświeżaniem danych

 

Klasa robiona za pomocą tego polecenia nie działa. Wyświetlacz pozostaje biały.

Adafruit_ILI9341 tft = Adafruit_ILI9341( TFT_CS, TFT_DC );

 

Czytałem że jak się użyje w klasie TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK wyświetlacz jest obsługiwany za pomocą programowego SPI. Nie wiem czy dobrze to rozumiem, trochę się pogubiłem w tych SPI w procesorach ESP32.

Dane z benchmarka z ustawiami:

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);

 

11:00:50.121 -> Display Power Mode: 0x0
11:00:50.168 -> MADCTL Mode: 0x0
11:00:50.168 -> Pixel Format: 0x5
11:00:50.213 -> Image Format: 0x80
11:00:50.213 -> Self Diagnostic: 0x0
11:00:50.259 -> Benchmark                Time (microseconds)
11:00:50.306 -> Screen fill              5337291
11:00:56.036 -> Text                     255812
11:01:00.325 -> Lines                    2417441
11:01:14.712 -> Horiz/Vert Lines         435363
11:01:16.718 -> Rectangles (outline)     276813
11:01:18.571 -> Rectangles (filled)      11025214
11:01:31.423 -> Circles (filled)         1240149
11:01:33.758 -> Circles (outline)        1056639
11:01:35.298 -> Triangles (outline)      551909
11:01:37.401 -> Triangles (filled)       3588680
11:01:43.138 -> Rounded rects (outline)  512051
11:01:45.239 -> Rounded rects (filled)   11009504
11:01:57.826 -> Done!

 

Edytowano przez Gieneq
Link do komentarza
Share on other sites

Po prostu biblioteki Adafruit w większości nie biorą pod uwagę istnienia tak egzotycznej płytki jak ESP32 (ostatnio też jakiś driver przerabiałem, bo  w kodzie było że jak nie AVR i nie STM to bit-banging).

Jest jeszcze jeden konstruktor:

Adafruit_ILI9341(SPIClass *spiClass, int8_t dc, int8_t cs = -1,
                   int8_t rst = -1);

Sprawdź jak to działa jeśli koniecznie musisz użyć tych a nie innych pinów.

Przy okazji: u mnie działa bardzo ładnie konstruktor:

Adafruit_ILI9341 tft(TFT_CS, TFT_DC, TFT_RST);

Tyle że trzeba użyć właściwego portu SPI (pamiętaj że ESP32 ma ich sztuk dwie, a Ty podłączasz nie te piny co trzeba). Pinologia z mojego programu:

 * 23 - MOSI
 * 19 - MISO
 * 18 - CLK
 *  5 - DC
 * 4  - RST
 * 2  - CS

 

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dziękuje za odpowiedź. 

Nie muszę tych pinów używać. Podłączyłem pod V-SPI bo wyczytałem że ta biblioteka używa defaultowo VSPI.

Będę wieczorem w warsztacie to podłączę układ według Twojej rozpiski.

Czy podłączenie Reset pod GPIO coś daje jeśli chodzi o szybkość działania LCD?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

37 minut temu, Roberttar napisał:

Czy podłączenie Reset pod GPIO coś daje jeśli chodzi o szybkość działania LCD?

Nie, ale robi reset wyświetlacza wtedy kiedy trzeba 🙂

A to czasem ważne - w przypadku innego wyświetlacza ESP startował na tyle szybko, że wyświetlacz nie zdążył nawet się porządnie zasilić, i musiałem dać 100 msec delay przed jego resetem.

  • Lubię! 2
Link do komentarza
Share on other sites

(edytowany)

Nie mogłem się doczekac wieczora. Poszedłem przelutować układ.

No rewelacja. Jak podpiąłem pod właściwe piny jak radził @ethanak to już na pierwszych testach jest zdecydowanie szybciej :).

Wieczorem potestuje na programie, który pisze.

Super, dziękuje.

Zastanawiam się jeszcze nad tym resetem. U mnie reset podłączony jest do pinu EN mikrokontrolera.

 

12:20:13.818 -> Display Power Mode: 0xC0
12:20:13.864 -> MADCTL Mode: 0x0
12:20:13.864 -> Pixel Format: 0x2
12:20:13.911 -> Image Format: 0x0
12:20:13.911 -> Self Diagnostic: 0x0
12:20:13.958 -> Benchmark                Time (microseconds)
12:20:14.005 -> Screen fill              195267
12:20:14.562 -> Text                     27700
12:20:17.626 -> Lines                    268209
12:20:19.345 -> Horiz/Vert Lines         17585
12:20:19.904 -> Rectangles (outline)     11612
12:20:20.458 -> Rectangles (filled)      405623
12:20:21.434 -> Circles (filled)         76621
12:20:21.528 -> Circles (outline)        118041
12:20:22.136 -> Triangles (outline)      58787
12:20:22.742 -> Triangles (filled)       154283
12:20:23.488 -> Rounded rects (outline)  42653
12:20:24.095 -> Rounded rects (filled)   412471
12:20:25.022 -> Done!

 

Edytowano przez Gieneq
Link do komentarza
Share on other sites

39 minut temu, Roberttar napisał:

Zastanawiam się jeszcze nad tym resetem. U mnie reset podłączony jest do pinu EN mikrokontrolera.

Jeśli masz jakiś wolny pin to lepiej podłącz do GPIO. Być może w niczym nie pomoże, ale na 100% nie zaszkodzi (szczególnie w czasie pisania i testowania programu).

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.