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

[atmega32][bascom]LCD 128x64 - jak podlaczyc?

rafalr85 03 Sty 2012 10:10 5022 13
REKLAMA
  • #1 10341490
    rafalr85
    Poziom 9  
    Witam.
    Mam wyswietlacz graficzny WITEK WM-G1206A-1YLYb 20pinowy. Problem w tym, ze nie mam do niego dokladnej dokumentacji z rozpiska pinow. Kontroler KS0108B.
    Znalazlem datasheet ale do WM-G1206A-6YLYg, tu link: http://www.datasheets.org.uk/indexdl/Datasheet-025/DSA00435293.pdf
    Nie wiem czy sa jakies roznice miedzy nimi ale piny wg tej instrukcji i jakas reakcja byla na wyswietlaczu.

    Druga kwestia to program.
    $regfile = "m32def.dat"
    $crystal = 8000000
    
    $lib "glcdKS108.lbx"
    
    Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5
    
    'The dataport is the portname that is connected to the data lines of the LCD
    'The controlport is the portname which pins are used to control the lcd
    'CE =CS1  Chip select
    'CE2=CS2  Chip select second chip
    'CD=Data/instruction
    'RD=Read
    'RESET = reset
    'ENABLE= Chip Enable
    
    Do
    Lcd "tekst"
    Waitms 100
    Cls
    Loop
    End    

    Kompiluje sie dobrze natomiast po wgraniu na atmege nie podaje nic na DATAPORT, probowalem ustawiac rozne porty.

    Przy takiej konfiguracji:
    Config Graphlcd = 128 * 64 , Dataport = Porta , Controlport = Portb , Ce = 1 , Cd = 2 , Rd = 3 , Wr = 4 , Reset = 5 , Fs = 6 , Mode = 8
    atmega dobrze wysyla sygnaly i rowniez w PROTEUSIE wszystko smiga podpinajac wyswietlacz. Natomiast nie jestem przekonany czy jest to konfiguracja pod wyswietlacz, ktory posiadam. Cos reaguje, sa jakies paski itp.

    Przekopalem juz chyba cale forum i probowalem na rozne sposoby ale utknalem w martwym punkcie. Bardzo licze na jakas pomoc, moze moglby mi ktos cos podpowiedziec.
  • REKLAMA
  • #2 10341583
    pawel-jwe
    Poziom 30  
    Na pewno dobrze jest podłączony (tzn. numery pinów się zgadzają)?
    W drugiej konfiguracji nie masz zadeklarowanego Ce2 (CS2) czyli może Ci działać co najwyżej tylko połowa wyświetlacza.
    rafalr85 napisał:
    nie podaje nic na DATAPORT

    Skąd to wiesz? może nie zdążysz tego sprawdzić nawet.
    Dobrze masz podpięty i wyregulowany kontrast? Tu na stronie 11 masz narysowane jak podłączyć kontrast:
    http://download.maritex.com.pl/pdfs/op/FD12864B6NBLW.pdf
  • #3 10341744
    rafalr85
    Poziom 9  
    pawel-jwe napisał:
    Na pewno dobrze jest podłączony (tzn. numery pinów się zgadzają)?

    Zgadzaja sie na pewno

    pawel-jwe napisał:
    W drugiej konfiguracji nie masz zadeklarowanego Ce2 (CS2) czyli może Ci działać co najwyżej tylko połowa wyświetlacza.

    Wtedy by dzialala tylko polowa a wyswietla jakies kreski albo kwadraciki na calym ekranie.

    pawel-jwe napisał:
    nie podaje nic na DATAPORT
    Skąd to wiesz? może nie zdążysz tego sprawdzić nawet.

    Sprawdzalem na plytce testowej, na diodach. W Proteusie tez. Program tak jakby sie zawieszal, nie wykonuje sie petla. Na moje oko kod jest ok wiec zglupialem szczerze mowiac :/
    A co do kontrastu.. przynajmniej na zwyklych LCD tekstowych jest tak, ze wystarczy podpiac mase i jest kontrast na full. Jesli chce sie go rozjasnic wtedy sie podpina rezystor.
  • REKLAMA
  • #4 10343876
    Konto nie istnieje
    Poziom 1  
  • #5 10343918
    pawel-jwe
    Poziom 30  
    emarcus napisał:
    wygląda w nich sprawa tekstu i fontów?

    Na 99% omawiany tu LCD nie ma wbudowanej tablicy znaków, ale skoro jest biblioteka to ona powinna mieć zaimplementowane znaki tekstowe.
    Najlepiej niech się wypowiem sam zainteresowany, czy biblioteka której używa zawiera te elementy?
  • #6 10346657
    rafalr85
    Poziom 9  
    emarcus:
    JTAG jest disabled ale to chodzi o DATAPORT. Obojetnie na jaki port bym nie ustawil to nie dziala. A co do czcionek, wrzucalem biblioteke z fontami i bylo to samo.
    Ale moze podam troche inny przyklad jeszcze.
    Taki oto program:
    $regfile = "m32def.dat"
    $crystal = 7372800
    $baud = 115200
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    $lib "glcdks108.lbx"
    
    Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 7 , Rd = 5 , Reset = 1 , Enable = 4 , Mode = 8
    
    Do
    Line(1 , 2 ) –(3 , 3 ) , 255
    Line(2 , 2 ) –(3 , 3 ) , 255
    Line(3 , 2 ) –(3 , 3 ) , 255
    Line(4 , 2 ) –(3 , 3 ) , 255
    Line(5 , 2 ) –(3 , 3 ) , 255
    Line(6 , 2 ) –(3 , 3 ) , 255
    
    Wait 2
    Loop
    End


    W Bascomie sie kompiluje, w symulatorze petla sie wykonuje, pokazuje zmiany bitow na PORTA oraz PORTB. Czyli teoretycznie wszystko ok.
    W praktyce jednak nie. Jak wgrywam program na atmege i sprawdzam wyjscia na diodach to na PORTB pala sie ciagle (a powinny mrygac) a na PORTA diody sie nie pala, zero reakcji. Tak jakby program byl zwieszony. Nie wiem o co chodzi...
  • REKLAMA
  • #7 10346767
    pawel-jwe
    Poziom 30  
    Co do sprawdzania stanów pinów na diodach LED to chyba średni pomysł. Stany na poszczególnych pinach mogą się zmieniać tak szybko, że dioda nie zdąży się zapalić lub wygasić (być może dlatego wydaje się, iż dana dioda cały czas się świeci lub w ogóle nie świeci).
    Osobiście to niechętnie używam "nieswoich" bibliotek. Obsługę takiego wyświetlacza pisałem sam (tylko że w C, ale w Bascomie też bez problemów się da). Tobie też radzę samemu napisać niewielki program do obsługi tego LCD (to wcale nie jest trudne i na pewno mniej pracochłonne niż walki z tą biblioteką).
    Zerknij jeszcze tu:
    http://www.taakteek.com/index.php/1389-05-21-07-47-07?func=download&fileid=7
    Co prawda po arabsku (czy jakiemu tam), ale na stronie 18 i 20 masz kod programu w Bascomie z użyciem tych samych bibliotek. Pierwsza różnica to funkcja "Cls", u Ciebie po wyświetleniu napisu, a w tym przykładzie przed. Poza tym ewidentnie dołączany do programu jest osobny pliczek z czcionką.
  • REKLAMA
  • #8 10346954
    rafalr85
    Poziom 9  
    Na koncu petli jest "Wait 2" wiec na pewno by bylo widac reakcje. Pewnie jest cos z bibliotekami nie tak. Plik glcdks108.lbx wzialem z folderu Bascoma, biblioteke do fontow sciagnalem z jakiejs strony ale probowalem tez zrobic sam bo jest do tego plugin. Generalnie nie znam C wiec sam sobie nie napisze biblioteki do obslugi wyswietlacza :( Bazowanie na gotowcach niestety nie przynioslo zadnego rezultatu. W kazdym razie dzieki za podpowiedzi i postaram sie jeszcze cos pokombinowac.
  • #9 10347026
    pawel-jwe
    Poziom 30  
    rafalr85 napisał:
    Generalnie nie znam C wiec sam sobie nie napisze biblioteki

    Równie dobrze prosty program do obsługi takiego LCD napiszesz w Bascomie. Zajmie Ci to jeden wieczór, a będziesz dokładnie wiedział co i z czego jest. Wykorzystaj wiedzę którą już masz i datasheet'y podane wcześniej, a do wieczora będzie działać.
  • #10 10350488
    Konto nie istnieje
    Poziom 1  
  • #11 10350509
    pawel-jwe
    Poziom 30  
    emarcus napisał:
    Do testów i studiowania jest gotowy przykładowy program w:
    ...\Bascom-avr\Samples\Lcdgraph\KS108.bas.

    Tak, tylko kolega bez skutecznie próbuje użyć od kilku dni biblioteki "glcdKS108.lib", a mi chodzi o to że w jeden wieczór napisał by program, który od zera obsługiwał by ten LCD (pod warunkiem że błąd jest w jego programie lub bibliotece, a nie w sprzęcie).
    Chociaż podany przez Ciebie przykładowy program może rozwiąże temat, niech sam zainteresowany popróbuje.
  • #12 10350738
    rafalr85
    Poziom 9  
    emarcus:
    Ten gotowiec z bascoma mi nie dziala. Ani zaden gotowiec jaki znalazlem z biblioteka glcdKS108. Moze cos z plikiem jest nie tak? Tylko to troche malo prawdopodobne. Nagralem filmik na ktorym widac jak sie zachowuje procek.
    http://youtu.be/oLeJPkTr1VI

    Gdzie robie błąd? :?:
  • #13 10351090
    pawel-jwe
    Poziom 30  
    Co do programów symulujących to nie używam takich więc nie pomogę z nim (wolę pracę na "żywym organizmie ;) ).
    Jeśli rożne sprawdzone programy nie działają, to duże prawdopodobieństwo problemów sprzętowych, posprawdzaj:
    1. Ustawienia fusebitów (czy wszystko się zgadza)
    2. Wszelkie połączenia i kabelki czy nie ma gdzieś przerwy albo coś nie jest źle podpięte
    3. Napisz prosty programik (obsługa przycisków i diod) i sprawdź wszystkie piny czy działają poprawnie jako wejścia (z podciągnięciem do "1" i "0") i wyjścia (może coś z mikroprocesorem jest nie tak)
    4. Sprawdź wizualnie cały wyświetlacz (czy nie ma żadnych mechanicznych uszkodzeń), jeśli masz drugi wyświetlacz to spróbuj go podłączyć
  • #14 10360294
    Konto nie istnieje
    Poziom 1  
REKLAMA