logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

LCD od S65 sterowany przez ATmega16.

pmichniewski 28 Sty 2006 15:11 168695 366
REKLAMA
  • #241 8039779
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #242 8041590
    sebek_sc
    Poziom 11  
    Posty: 20
    Cytując Christiana Kranz: "The display forward voltage was measured at one part to be 10,4V at 20mA current.". Diody od podświetlania są połączone w wyświetlaczu szeregowo i ja to rozumiem tak, że minimalne napięcie jakie należy przyłożyć żeby diody przewodziły wynosi 10,4V a prąd świecenia diod wynosi 20mA. Więc należy przyłożyć napięcie większe niż 10,4V, dołączyć rezystor na którym się reszta tego napięcia odłoży. Prąd należy dobrać na 20mA z prawa Ohma. Czyli R szeregowe do tych diod wynosi R = (Uzasilania - 10,4V)/20mA
  • #243 8041692
    Konto nie istnieje
    Poziom 1  
  • #244 8098193
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Witam

    Ostatnio zacząłem też zabawę z wyświetlaczem od s65. Wyświetlacz mam ze sterownikiem l2f50. Steruję nim przy pomocy atmegi128. Udało mi się wyświetlić obrazki (oczywiście z pamięci w procesorze), jednak jak chcę wyświetlić jakiś tekst, to mi nic się nie wyświetla. Oczywiście programuję w bascomie (właściwie to się uczę).

    Więc prośba do was, czy możecie mi zapodać przykład z wyświetleniem tekstu na tym wyświetlaczu?

    A to mój kod do testów:

    ' ------------------------------------------------------------------------------
    ' TEST lcd siemens s65
    ' ------------------------------------------------------------------------------
    $lib "LCD-EPSON_L2F50_C.LBX"
    $regfile = "m128def.dat"
    $crystal = 12000000
    
    $baud = 19200
    
    
    Config Graphlcd = Color , Controlport = Portb , Cs = 0 , Rs = 7 , Scl = 1 , Sda = 2 , Reset = 6
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 1
    Pwm1a = 240
    Dim Ya As Long
    
    
    '16Bit Color -> RRRRRGGGGGBBBBB
    Const Lila = &B1111100000011111
    Const Blue = &B0000000000011111
    Const White = &HFFFF
    Const Black = &H0000
    Const Rot = &B1111100000000000
    Const Gruen = &B0000011111100000
    Const Cyan = &B0000011111111111
    Const Gold = &B1111111111100000
    Const Grau = &B1111111111110110
    Const Hgelb = &B1111011110101000
    Const Dgelb = &B1111011111010000
    
    Const X = 176
    Const Y = 132
    
    Cls
    
    Ggg:
    
    Showpic 0 , 22 , Plaatje
    Wait 2
    Showpic 0 , 22 , Plaatje1
    Wait 2
    Goto Ggg
    End
    
    Plaatje:
    $bgf "mcse.bgc"
    
    Plaatje1:
    $bgf "olo.bgc"


    oraz pliki:
    Załączniki:
    • 222.ZIP (5.75 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #246 8099168
    czeladzian
    Poziom 11  
    Posty: 19
    Ocena: 5
    Ma ktoś jakieś namiary gdzie można nabyć ten wyświetlacz? Na allegro niestety jest niedostępny, cały telefon trzeba kupić :(
  • REKLAMA
  • #248 8100635
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    No więc co do wyświetlania czcionki, to dalej nie działa. Mogę włączać pojedyncze piksele, rysować koło oraz prostokąt, wyświetlać obrazki, ale tekst mi się nie wyświetla. Czyżby wina wyświetlacza (chodź śmiem twierdzić że nie)? Niby tekst, ale jest on w sumie dosyć ważną sprawą.

    Przy okazji, zaczęły się problemy z programowaniem atmegi w bascomie. Musiałem zacząć używać pony-proga.

    Zastanawiam się czy to może być winna biblioteka z której korzystam do obdługi tego wyświetlacza.
  • #249 8113102
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Witam ponownie.

    Walczę już któryś dzień z rzędu i nie mam już pomysłów, co jest nie tak.
    Tak jak pisałem wcześniej, jeśli rysuję na wyświetlaczu koło lub prostokąt, to wszystko jest dobrze. Dobrze jest też jak obrazek jest na szerokość wyświetlacza, ale jak jest węższy to dzieje się jak poniżej na zdjęciach. O wyświetlaniu czcionki już nawet nie wspomnę.

    Kiedy wrzucam takie obrazki na wyświetlacz:
    LCD od S65 sterowany przez ATmega16. LCD od S65 sterowany przez ATmega16.

    To na wyświetlaczu pokazują się tak:
    LCD od S65 sterowany przez ATmega16. LCD od S65 sterowany przez ATmega16.

    Kod programu:

    ' ------------------------------------------------------------------------------
    ' TEST lcd siemens s65
    ' ------------------------------------------------------------------------------
    
    $lib "LCD-EPSON_L2F50_c.LBX"
    
    $regfile = "m128def.dat"
    $crystal = 12000000
    
    Config Graphlcd = Color , Controlport = Portc , Cs = 0 , Rs = 7 , Scl = 1 , Sda = 2 , Reset = 6
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 1
    Pwm1a = 240
    
    
    
    '16Bit Color -> RRRRRGGGGGBBBBB
    Const Lila = &B1111100000011111
    Const Blue = &B0000000000011111
    Const White = &HFFFF
    Const Black = &H0000
    Const Rot = &B1111100000000000
    Const Gruen = &B0000011111100000
    Const Cyan = &B0000011111111111
    Const Gold = &B1111111111100000
    Const Grau = &B1111111111110110
    Const Hgelb = &B1111011110101000
    Const Dgelb = &B1111011111010000
    
    
    
    
    Cls
    
    Qq:
    Showpic 0 , 0 , Plaatje1                                    'x,y
    Wait 4
    
    Cls
    
    Showpic 0 , 0 , Plaatje
    Wait 4
    Goto Qq
    
    
    Plaatje:
    $bgf "test40x130.bgc"
    
    Plaatje1:
    $bgf "test65x130.bgc"


    Czy jest ktoś taki co mógłby mi pomóc w tej sprawie?
  • #250 8114499
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2812
    Co to za bibliotek używasz, czy to jest ta z Mcselec zmodyfikowana ?
  • #251 8114951
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 138
    Ocena: 31
    Z tego co pamiętam problem pojawia się kiedy rozmiar x i/lub y obrazka nie jest podzielny przez 2.
  • #252 8115044
    Konto nie istnieje
    Poziom 1  
  • #253 8115703
    J_Bravo
    Poziom 28  
    Posty: 1373
    Pomógł: 36
    Ocena: 161
    Prawdopodobnie problem z biblioteką albo konwersją z bmp na bgc. Próbowałeś wrzucać obrazki o szerokości ekranu. W załączniku masz kilka obrazków. spróbuj je wrzucić na swojego LCD
    Załączniki:
    • pack.zip (627 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
  • #254 8115870
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Niestety, nie idzie ściągnąć załącznika. Co do biblioteki, to teraz już nie pamiętam skąd ją pobrałem, jednak zdaje mi się że chyba z elektrody. Jeśli wrzucam obrazki z bascoma, czyli mcse.bgc (a on jest na szerokość ekranu) to wyświetla się prawidłowo.

    Piszę tutaj o obrazkach, ale także z wyświetlaniem czcionek jest problem. Jeśli współrzędne są jako 0,0 to pojawiają się jakieś bzdury. Jeśli są inne współrzędne, to nie wyświetla się nic. Wieczorem spróbuje wrzucić zdjęcia.

    Jeśli chodzi o bibliotekę, to sądzę że ona jest wszystkiemu winna. Jednak nie mam innej a ponieważ dopiero co zaczynam w mikrokontrolerach i bascomie, to sam nie umiem takiej stworzyć.
  • #255 8116135
    J_Bravo
    Poziom 28  
    Posty: 1373
    Pomógł: 36
    Ocena: 161
    www.serwis.tv/obrazki.zip
    czyli pewnie problem z biblioteką. u mnie wszystko działa idealnie. od czcionek 5x5 do 16x16
  • #256 8117584
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Tylko, że kolega podał zterownik do ls020, a ja mam l2f50 epsona.

    Obrazki od kolegi wyświetlają mi się w ten sposób:

    LCD od S65 sterowany przez ATmega16. LCD od S65 sterowany przez ATmega16.

    Czyli dalej nie tak jak powinny.

    Jestem pewien, że na 99,9% jest winna biblioteka. Sądzę że (o ile mam racje) ramka wyświetlacza jest źle ustawiona, czyli 132x176 zamiast 131x175 przez bibliotekę (licząc od zera). Przez to każdy wiersz jest przesunięty i z tego wynika ten problem (takie odnoszę wrażenie). Jednak jestem początkujący w bascomie i studiując datasheeta od tego wyświetlacza, dalej nie umiem sobie z tym poradzić (czyli skorygować tego (o ile jest w tym problem)).

    A może kolega (albo ktoś inny) posiada działającą bibliotekę do mojego wyświetlacza (a mam takie dwa i na obydwóch jest ten sam problem). Jestem w ramach podziękowań oddać wszystkie punkty.
  • REKLAMA
  • #257 8118149
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2812
    Sprawdź tą bibliotekę
    Załączniki:
    • LCD-EPSON_L2F50_C.ZIP (2.89 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #258 8119363
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    No niestety, nic się nie zmieniło. Po za tym właśnie z tej samej biblioteki korzystam.

    Wyświetlacz to też nie może być, ponieważ mam dwa takie same i na obydwóch jest to samo. W telefonie działały prawidłowo.
  • #259 8120184
    J_Bravo
    Poziom 28  
    Posty: 1373
    Pomógł: 36
    Ocena: 161
    A biblioteka z www.serwis.tv/obrazki.zip także źle działa ??
  • #260 8120623
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Ta biblioteka nie działa, ponieważ jest ona do wyświetlacza ls020 a mój jest l2f50 epsona.
  • #261 8136934
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Witam.

    Po dalszych bojach, niestety nic nie wymyśliłem. Szukałem w necie innej biblioteki, ale żadnej nie znalazłem do bascoma.

    Przyszła mi jeszcze jedna myśl. Rezystory podciągające linie wyświetlacza do masy, zamiast 610 OHM, mam 560 OHM. Czy może to być tego wina, że wyświetlacz nie do końca poprawnie wyświetla obraz?

    Dodam tylko że wyświetlacze są w 100% dobre, bo zamontowałem je do telefonu i działają prawidłowo.
  • #262 8137011
    Konto nie istnieje
    Poziom 1  
  • #263 8141147
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Nie wiem czy dobrze podłączyłem:

    PC4 - CS
    PB2 - RESET
    PC5 - RS
    PB3 - MOSI (DAT)
    PB5 - SCK (CLK)

    jeśli takie jest podłączenie wyświetlacza do procka, to niestety nie działa mi ten program. Mam cały czas biały wyświetlacz.
    Czy ja mam jakiś nietypowy wyświetlacz, czy co?
  • #264 8141214
    Konto nie istnieje
    Poziom 1  
  • #265 8141259
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    No to teraz mnie zmartwiłeś. Mam dwa takie wyświetlacze i wychodzi na to że żadnego nie wykorzystam (chodź w komórce działają).
  • #266 8141659
    Konto nie istnieje
    Poziom 1  
  • #267 8144215
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    W takim razie chyba się przerzucę na LS020, tylko jakoś nie ma ich na allegro.
    Widzę że jest popularny i dużo jest na jego temat w internecie.
  • #268 8152087
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Witam.

    Co do problemów z moim wyświetlaczem, to czy może być wina tego że ma on oznaczenie l2f50126 zamiast l2f5005 ?
  • #269 8152277
    Konto nie istnieje
    Poziom 1  
  • #270 8152338
    tomek122
    Poziom 22  
    Posty: 912
    Pomógł: 33
    Ocena: 234
    Możesz mi napisać w jaki sposób mam wysłać komendy PASET i CASET w bascomie?
    Próbuje nimi zmienić "okno" na 131x175 (o ile one są od tego napewno), ale nic się nie zmienia na wyświetlaczu.

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania wyświetlaczem LCD Siemens S65 (model LS020) za pomocą mikrokontrolera ATmega16 oraz innych układów AVR i ARM. Autor projektu wykorzystał kod źródłowy Christiana Kranza, modyfikując go pod kątem kalibracji oscylatora i protokołu transmisji z kontrolą CRC16, aby poprawić stabilność komunikacji przez port szeregowy. Wątek porusza kwestie podłączenia wyświetlacza, zasilania podświetlenia (stosowanie przetwornic impulsowych, LM317, napięć 2.9V-3.3V), oraz problemów z prędkością transmisji danych i błędami wynikającymi z zakłóceń elektromagnetycznych. Dyskutowano o alternatywach dla RS232, takich jak USB z układem FT245BM, oraz o planach migracji na procesory ARM (np. LPC2103) dla zwiększenia wydajności i szybkości SPI (do 20-30 MHz).

Wielu uczestników dzieliło się doświadczeniami z wyświetlaniem grafik BMP i animacji, wskazując na ograniczenia prędkości transmisji i konieczność optymalizacji kodu (np. asembler, sprzętowe SPI, buforowanie danych z karty SD). Poruszono też temat konwersji obrazów do formatu zgodnego z wyświetlaczem (16-bitowa paleta kolorów 5R-6G-5B) oraz narzędzi do generowania tablic danych w C. Wspomniano o problemach z dostępnością elementów, takich jak tranzystory BSS84, BSS123, cewki indukcyjne oraz stabilizatory 3.3V, a także o projektach schematów i płytek PCB w Eagle.

Dyskusja obejmuje również praktyczne zastosowania, takie jak elektroniczne ramki na zdjęcia, wyświetlanie parametrów sprzętu, proste animacje, a nawet oscyloskop na bazie wyświetlacza S65. Użytkownicy wymieniali się linkami do filmów prezentujących efekty działania, kodów źródłowych i schematów. Podkreślono, że wyświetlacz działa poprawnie bez podświetlenia, przy zasilaniu 3.3V, a podświetlenie wymaga osobnego zasilania i sterowania PWM. Wskazano, że prędkość transmisji i stabilność działania zależą od taktowania mikrokontrolera, jakości protokołu komunikacji oraz zastosowanego sprzętu.

Podsumowując, projekt sterowania LCD S65 za pomocą ATmegi jest wykonalny, ale wymaga starannego doboru elementów, optymalizacji oprogramowania i odpowiedniego zasilania, a dla bardziej zaawansowanych zastosowań rekomendowane jest użycie szybszych mikrokontrolerów ARM i interfejsów SPI o wysokiej prędkości.
Wygenerowane przez model językowy.
REKLAMA