Strona 1 z 3
Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 06 mar 2024, 21:40
autor: Michał6201
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)
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 06 mar 2024, 22:17
autor: tomaszdko
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
$REGFILE = "M328PDEF.DAT"
$CRYSTAL = 20000000
$BAUD = 9600
$HWSTACK = 80
$SWSTACK = 80
$FRAMESIZE = 80
ENABLE INTERRUPTS
'------------------------------------------------------------------------------------------------------------------
'--------------------------------------------- UART ---------------------------------------------------------------
'------------------------------------------------------------------------------------------------------------------
CONFIG COM1 = 9600 , SYNCHRONE = 0 , PARITY=NONE , STOPBITS=1 , DATABITS=8 , CLOCKPOL=0
OPEN "COM1:" FOR BINARY AS #1
CONFIG SERIALIN0 = BUFFERED , SIZE = 30 , BYTEMATCH = 13
DIM COM1 AS STRING*30
DIM RS232 AS LONG
ENABLE URXC
'----------------------------------------------------------------------------------------------------------------------------
'------------------------------------------------- LCD 240x320 --------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------
'Designate the connection port of LCD. Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
CONFIG Graphlcd = Color , Cs1 = PortB.7 , Rst = PortB.6 , A0 = PortB.5 , Si = PortB.4 , Sclk = PortB.3
CONST Portrait = 0
CONST Rotate_180 = 1
DIM Offset256 As Byte
$LIB "glcd-ILI9341_2R8_240x320.lib"
INITLCD
CLS
SETFONT Color8x8
CONST Black = &B0000_0000
CONST Red = &B1110_0000
CONST Green = &B0001_1100
CONST Blue = &B0000_0011
CONST Magenta = &B1110_0011
CONST Yellow = &B1111_1100
CONST Cyan = &B0001_1111
CONST White = &B1111_1111
CONST Orange = &B1111_0100
CONST Brightgreen = &B0011_1110
CONST Brightblue = &B0001_1111
CONST Darkred = &B1100_0000
CONST Darkgreen = &B0001_0100
CONST Darkblue = &B0000_0010
OffSET256 = 1
BOXFILL(0 , 0) -(64 , 240) , Black
OFFSET256 = 0
BOXFILL (0 , 0) -(255 , 240) , Black
'----------------------------------------------------------------------------------------------------------------------------
'------------------------------------------------- PROGRAM ------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------
DO
LCDAT 20 , 0 ,"RS232- "; RS232 ; " " , WHITE ,BLACK
LOOP
END
'-----------------------------------------------
SERIAL0CHARMATCH:
PUSHALL
INPUT #1,COM1 NOECHO
RS232=VAL(COM1)
POPALL
RETURN
'----------------------------------------------------------------------------------------------------------------------------
$INCLUDE "color8x8.font"
'----------------------------------------------------------------------------------------------------------------------------
Ściągnij i sprawdź czy będzie chodzić ta biblioteka :
DRV.rar
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 06 mar 2024, 22:23
autor: Michał6201
Dziękuję Ci
Zamówię ten wyświetlacz i przetestuję
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 06 mar 2024, 22:26
autor: tomaszdko
To są fajne wyświetlacze , ja używam 3.2 cala ale chyba nawet są 4 calowe .
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 07 mar 2024, 0:01
autor: Michał6201
Zamówiłem na ali ten 3,2 cala
Pisze, że ma sterownik ILI9341, interfejs 4 linie SPI.
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 16 mar 2024, 0:09
autor: Michał6201
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?
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 16 mar 2024, 10:42
autor: tomaszdko
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
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 16 mar 2024, 11:52
autor: Michał6201
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?
To tak jakby wyświetlanie tekstu odbywało się na powierzchni 240x240
A wyświetlacz jest 320x240. Jak to naprawić?
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 16 mar 2024, 12:36
autor: tomaszdko
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
Re: Czy da się uruchomić taki lcd w Bascom avr? ILI9341
: 16 mar 2024, 13:01
autor: Michał6201
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
Offset256 = 0
Boxfill(0 , 0) -(255 , 240) , Black
Offset256 = 1
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:
$regfile = "m128def.dat"
$crystal = 16000000
$hwstack = 128
$swstack = 128
$framesize = 128
'----------------------------------------------------------------------------------------------------------------------------
'------------------------------------------------- LCD 240x320 --------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------
'Designate the connection port of LCD. Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
'Designate the connection port of LCD: Cs1 = [CS] , Rst = [RESET] , A0 = [DC] , Si = [SDI] , Sclk = [SCK]
CONFIG Graphlcd = Color , Cs1 = PortB.0 , Rst = PortB.4 , A0 = PortB.3 , Si = PortB.2 , Sclk = PortB.1
CONST Portrait = 0
CONST Rotate_180 = 1
DIM Offset256 As Byte
$LIB "glcd-ILI9341_2R8_240x320.lib"
INITLCD
CLS
SETFONT Color8x8
'SETFONT Color16x16
CONST Black = &B0000_0000
CONST Red = &B1110_0000
CONST Green = &B0001_1100
CONST Blue = &B0000_0011
CONST Magenta = &B1110_0011
CONST Yellow = &B1111_1100
CONST Cyan = &B0001_1111
CONST White = &B1111_1111
CONST Orange = &B1111_0100
CONST Brightgreen = &B0011_1110
CONST Brightblue = &B0001_1111
CONST Darkred = &B1100_0000
CONST Darkgreen = &B0001_0100
CONST Darkblue = &B0000_0010
'OffSET256 = 1
'BOXFILL(0 , 0) - (320 , 320) , Red ' 64 , 240
'OFFSET256 = 0
'BOXFILL (0 , 0) - (320 , 320) , red ' 255 , 240
Offset256 = 0
Boxfill(0 , 0) -(255 , 240) , Black
Offset256 = 1
Boxfill(0 , 0) -(65 , 240) , Black
'----------------------------------------------------------------------------------------------------------------------------
'------------------------------------------------- PROGRAM ------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------
DO
LCDAT 1 , 1 , "1234567890123456789012345aaaaaaaaaaaa" , CYAN , BLACK
Lcdat 224 , 1 , "123456789012345678" , Cyan , Black
Lcdat 304 , 1 , "123456789012345678" , Cyan , Black
LOOP
END
'----------------------------------------------------------------------------------------------------------------------------
$INCLUDE "color8x8.font"
'$INCLUDE "color16x16.font"
' ---------------------------------------------------------------------------------------------------------------------------