Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Pytania, kody i porady dotyczące nie tylko Bascom.
Awatar użytkownika
Michał6201
Posty: 127
Rejestracja: 03 paź 2015, 20:07

Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: Michał6201 » 06 mar 2024, 21:40

Cześć

Orientuje się ktoś z Was czy ten wyświetlacz da się uruchomić w Bascom AVR i czy w ogóle jest jakaś biblioteka do obsługi tego wyświetlacza?
Sprzedający podał takie dane techniczne:
Rozdzielczość: 240(RGB)x320
Układ sterownika: ILI9341
Napięcie wejściowe: 5 V/3,3 V
Kolor: 262 tys./65 tys
Interfejs: 4-przewodowy SPI

Niestety na pcb wyświetlacze nie pisze nic, jaki to sterownik itd. Próbowałem wyszukać jakąś bibliotekę czy też działający program do obsługi wyświetlacza ze sterownikiem ILI9341, ale jest wiele takich wyświetlaczy tylko ze one mają inne wyprowadzenia (włącznie z portami DB0 - DB15)
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
tomaszdko
Posty: 78
Rejestracja: 06 gru 2018, 19:58

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: tomaszdko » 06 mar 2024, 22:17

Wejdź na forum bascom i w wyszukiwaniu wpisz model "ILI9341" . Będziesz miał masę tematów z bibliotekami .
Tu masz przykład jak ja używam dla atmega328
  1. $REGFILE = "M328PDEF.DAT"
  2. $CRYSTAL = 20000000
  3. $BAUD = 9600
  4. $HWSTACK = 80
  5. $SWSTACK = 80
  6. $FRAMESIZE = 80
  7. ENABLE INTERRUPTS
  8. '------------------------------------------------------------------------------------------------------------------
  9. '--------------------------------------------- UART ---------------------------------------------------------------
  10. '------------------------------------------------------------------------------------------------------------------
  11. CONFIG COM1 = 9600  , SYNCHRONE = 0 , PARITY=NONE , STOPBITS=1 , DATABITS=8 , CLOCKPOL=0
  12. OPEN "COM1:" FOR BINARY AS #1
  13. CONFIG SERIALIN0 = BUFFERED , SIZE = 30 , BYTEMATCH = 13
  14. DIM COM1 AS STRING*30
  15. DIM RS232 AS  LONG
  16. ENABLE URXC
  17. '----------------------------------------------------------------------------------------------------------------------------
  18. '------------------------------------------------- LCD 240x320 --------------------------------------------------------------
  19. '----------------------------------------------------------------------------------------------------------------------------
  20. 'Designate the connection port of LCD. Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
  21.  
  22. CONFIG Graphlcd = Color , Cs1 = PortB.7 , Rst = PortB.6 , A0 = PortB.5 , Si = PortB.4 , Sclk = PortB.3
  23. CONST Portrait = 0
  24. CONST Rotate_180 = 1
  25. DIM Offset256 As Byte
  26. $LIB "glcd-ILI9341_2R8_240x320.lib"
  27. INITLCD
  28. CLS
  29. SETFONT Color8x8
  30. CONST Black = &B0000_0000
  31. CONST Red = &B1110_0000
  32. CONST Green = &B0001_1100
  33. CONST Blue = &B0000_0011
  34. CONST Magenta = &B1110_0011
  35. CONST Yellow = &B1111_1100
  36. CONST Cyan = &B0001_1111
  37. CONST White = &B1111_1111
  38. CONST Orange = &B1111_0100
  39. CONST Brightgreen = &B0011_1110
  40. CONST Brightblue = &B0001_1111
  41. CONST Darkred = &B1100_0000
  42. CONST Darkgreen = &B0001_0100
  43. CONST Darkblue = &B0000_0010
  44. OffSET256 = 1
  45. BOXFILL(0 , 0) -(64 , 240) , Black
  46. OFFSET256 = 0
  47. BOXFILL (0 , 0) -(255 , 240) , Black
  48. '----------------------------------------------------------------------------------------------------------------------------
  49. '-------------------------------------------------         PROGRAM           ------------------------------------------------
  50. '----------------------------------------------------------------------------------------------------------------------------
  51.  
  52. DO
  53.  
  54. LCDAT   20 , 0 ,"RS232- "; RS232 ; "    " , WHITE ,BLACK
  55.  
  56. LOOP
  57. END
  58. '-----------------------------------------------
  59. SERIAL0CHARMATCH:
  60. PUSHALL
  61. INPUT #1,COM1 NOECHO
  62. RS232=VAL(COM1)
  63. POPALL
  64. RETURN
  65. '----------------------------------------------------------------------------------------------------------------------------
  66. $INCLUDE "color8x8.font"
  67. '----------------------------------------------------------------------------------------------------------------------------
Ściągnij i sprawdź czy będzie chodzić ta biblioteka :
DRV.rar
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 06 mar 2024, 22:23 przez tomaszdko, łącznie zmieniany 1 raz.
Awatar użytkownika
Michał6201
Posty: 127
Rejestracja: 03 paź 2015, 20:07

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: Michał6201 » 06 mar 2024, 22:23

Dziękuję Ci :)
Zamówię ten wyświetlacz i przetestuję :)
Awatar użytkownika
tomaszdko
Posty: 78
Rejestracja: 06 gru 2018, 19:58

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: tomaszdko » 06 mar 2024, 22:26

To są fajne wyświetlacze , ja używam 3.2 cala ale chyba nawet są 4 calowe .
Awatar użytkownika
Michał6201
Posty: 127
Rejestracja: 03 paź 2015, 20:07

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: Michał6201 » 07 mar 2024, 0:01

Zamówiłem na ali ten 3,2 cala :)
Pisze, że ma sterownik ILI9341, interfejs 4 linie SPI.
Awatar użytkownika
Michał6201
Posty: 127
Rejestracja: 03 paź 2015, 20:07

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: Michał6201 » 16 mar 2024, 0:09

Cześć
Dzisiaj przyszedł do mnie ten wyświetlacz.
Działa na tej bibliotece, którą mi dałeś. Czcionka ta 8x8 ładna ale malutka, natomiast wielkość tej 16x16 jest w sam raz, tylko między literkami za duże odstępy, jak na mój gust.
Ale ważne że działa :)

Ac czy masz jakiś sprawdzony konwerter 5V na 3,3V na którym ten wyświetlacz działa?
Ja użyłem na próbę konwertera ST2378E i działa wyświetlacz.

Ale jest coś nie tak z wyświetlaniem, bo napisy nie są wyświetlane na całej szerokości wyświetlacza, tylko tak jakby obcinało jakieś 25% wyświetlacza po prawej stronie. Dlaczego tak się dzieje?
Ostatnio zmieniony 16 mar 2024, 11:44 przez Michał6201, łącznie zmieniany 1 raz.
Awatar użytkownika
tomaszdko
Posty: 78
Rejestracja: 06 gru 2018, 19:58

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: tomaszdko » 16 mar 2024, 10:42

Czcionka przy dużych znakach ma odstępy to fakt ale mi to nie przeszkadza .Poszukaj na forum bascom innych bibliotek może ktoś coś napisał takiego by było pod Ciebie dobre .
Co do konwentera to nie nie pamiętam bym używał , miałem ATmega ustawioną na 3V a ogólnie używam ATxmega więc nie mam problemu z zasilaniem a raczej napięciem logicznym na SPI .
Sam LCD możesz zasilać 5V ale logika to 3V . Możesz użyć dzielnik rezystorowy
arduino-ili9341-color-tft-240x320-pixel-interfacing-circuit-1.png
i trochę mniej "elegancko" ale wiem że tak też robią :
arduino-uno-use-2point8inch-tft-displahy-wiring_xn.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
Michał6201
Posty: 127
Rejestracja: 03 paź 2015, 20:07

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: Michał6201 » 16 mar 2024, 11:52

Dziękuję

To już sobie ogarnę.

Ale mam pewien problem z wyświetlaniem na pełnym ekranie. Tzn. obcina od prawej strony na całej wysokości wyświetlacza tak z 25%. Nie ma pełnej szerokości.
Czym to może być spowodowane? Gdzieś jest jakiś błąd? Chciałem wyświetlić napis: TEMP 22.5stC współrzędne 20 , 250
Więc powinien wyświetlić się cały napis po prawe stronie wyświetlacza. A tu obcina.

A jak ustawię wyświetlacz w pionie, to wyświetla na całej szerokości ale znów od dołu brakuje 25% ekranu. Czy to wina biblioteki?
  1. CONST Portrait = 1
To tak jakby wyświetlanie tekstu odbywało się na powierzchni 240x240
A wyświetlacz jest 320x240. Jak to naprawić?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 16 mar 2024, 12:42 przez Michał6201, łącznie zmieniany 1 raz.
Awatar użytkownika
tomaszdko
Posty: 78
Rejestracja: 06 gru 2018, 19:58

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: tomaszdko » 16 mar 2024, 12:36

Wszystko jest ok . Chodzi o offset na lcd , w konfigu https://www.elektroda.pl/rtvforum/topic3796919.html
Obraz jest jakby podzielony na dwa niezależne od siebie . Mi to nie przeszkadza ale tak jak pisałem wejdź na forum bascom i tam znajdziesz wiele bibliotek .
Nie zdziwię się że już jest jakaś co wyeliminowała ten "problem"
Na yt są pokazane w bascom https://www.youtube.com/watch?v=gpCQ-tjvFco
Tu masz link do bascoma forum do biblioteki , sprawdź lub poszukaj innych https://www.mcselec.com/index2.php?opti ... 341+offset
Awatar użytkownika
Michał6201
Posty: 127
Rejestracja: 03 paź 2015, 20:07

Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341

Post autor: Michał6201 » 16 mar 2024, 13:01

Nie znalazłem tam biblioteki w tym linku.

To jak ustawić ten offset alby zapisywało cały ekran?
A może za duży ten ekran dla zwykłej atmegi i trzeba jakiś mniejszy podłączyć?

Zmieniłem ten offset ze strony elektrody, który podał tam Bartek
  1. Offset256 = 0
  2.    Boxfill(0 , 0) -(255 , 240) , Black
  3. Offset256 = 1
  4.    Boxfill(0 , 0) -(65 , 240) , Black
To teraz wyświetla na odwrót - czyli tylko 25% wyświetlacza po prawej stronie.

Używam Atmega128A

To cały mój kod testowy:
  1. $regfile = "m128def.dat"
  2. $crystal = 16000000
  3. $hwstack = 128
  4. $swstack = 128
  5. $framesize = 128
  6.  
  7.      '----------------------------------------------------------------------------------------------------------------------------
  8.     '------------------------------------------------- LCD 240x320 --------------------------------------------------------------
  9.     '----------------------------------------------------------------------------------------------------------------------------
  10.     'Designate the connection port of LCD. Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
  11.      'Designate the connection port of LCD: Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
  12.  
  13.     CONFIG Graphlcd = Color , Cs1 = PortB.0 , Rst = PortB.4 , A0 = PortB.3 , Si = PortB.2 , Sclk = PortB.1
  14.     CONST Portrait = 0
  15.     CONST Rotate_180 = 1
  16.     DIM Offset256 As Byte
  17.     $LIB "glcd-ILI9341_2R8_240x320.lib"
  18.     INITLCD
  19.     CLS
  20.  
  21.     SETFONT Color8x8
  22.     'SETFONT Color16x16
  23.  
  24.     CONST Black = &B0000_0000
  25.     CONST Red = &B1110_0000
  26.     CONST Green = &B0001_1100
  27.     CONST Blue = &B0000_0011
  28.     CONST Magenta = &B1110_0011
  29.     CONST Yellow = &B1111_1100
  30.     CONST Cyan = &B0001_1111
  31.     CONST White = &B1111_1111
  32.     CONST Orange = &B1111_0100
  33.     CONST Brightgreen = &B0011_1110
  34.     CONST Brightblue = &B0001_1111
  35.     CONST Darkred = &B1100_0000
  36.     CONST Darkgreen = &B0001_0100
  37.     CONST Darkblue = &B0000_0010
  38.     'OffSET256 = 1
  39.     'BOXFILL(0 , 0) - (320 , 320) , Red  ' 64 , 240
  40.     'OFFSET256 = 0
  41.     'BOXFILL (0 , 0) - (320 , 320) , red ' 255 , 240
  42.  
  43. Offset256 = 0
  44.    Boxfill(0 , 0) -(255 , 240) , Black
  45. Offset256 = 1
  46.    Boxfill(0 , 0) -(65 , 240) , Black
  47.  
  48.     '----------------------------------------------------------------------------------------------------------------------------
  49.     '-------------------------------------------------         PROGRAM           ------------------------------------------------
  50.     '----------------------------------------------------------------------------------------------------------------------------
  51.  
  52.     DO
  53.  
  54.     LCDAT 1 , 1 , "1234567890123456789012345aaaaaaaaaaaa" , CYAN , BLACK
  55.     Lcdat 224 , 1 , "123456789012345678" , Cyan , Black
  56.     Lcdat 304 , 1 , "123456789012345678" , Cyan , Black
  57.  
  58.     LOOP
  59.     END
  60.  
  61.     '----------------------------------------------------------------------------------------------------------------------------
  62.     $INCLUDE "color8x8.font"
  63.    '$INCLUDE "color16x16.font"
  64.  
  65.      ' ---------------------------------------------------------------------------------------------------------------------------
ODPOWIEDZ