eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaGrafika znika z ekranu wyświetlacza LCD pod wpływem zakłóceńGrafika znika z ekranu wyświetlacza LCD pod wpływem zakłóceń
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.n
    eostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "Robbo" <n...@g...com>
    Newsgroups: pl.misc.elektronika
    Subject: Grafika znika z ekranu wyświetlacza LCD pod wpływem zakłóceń
    Date: Mon, 21 Nov 2011 12:20:30 +0100
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
    X-RFC2646: Format=Flowed; Original
    X-Antivirus: avast! (VPS 111121-0, 2011-11-21), Outbound message
    X-Antivirus-Status: Clean
    Lines: 69
    Message-ID: <4eca33fb$0$2198$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.24.137.92
    X-Trace: 1321874427 unt-rea-a-01.news.neostrada.pl 2198 83.24.137.92:3542
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:620675
    [ ukryj nagłówki ]

    Witam uprzejmie,

    Używam wyświetlacza graficznego LCD 192x64 typu LCD-AG-192064G-BIW W/B-E6
    PBF. Wyświetlacz sterowany jest przez mikrokontroler ATmega128. Pojawił się
    problem polegający na tym, że pod wpływem zakłóceń (jonizator skonstruowany
    specjalnie w celu sprawdzania naszych urządzeń; włączanie wyłącznika
    głównego prostownika impulsowego 600A, w którym siedzi wyświetlacz; moment
    rozpoczęcia generowania impulsów przez prostownik) wykreślona na
    wyświetlaczu grafika znika. Na ogół znika cała grafika, a czasami tylko z
    któregoś z trzech "segmentów" -- obszar wyświetlacza podzielony jest na trzy
    logiczne segmenty, między którymi należy się przełączać, aby móc wykreślać
    grafikę w danym obszarze wyświetlacza. W znacznym stopniu pomogły
    kondensatory przed transformatorem na zasilaniu 230V (150nF/275VAC między L
    a PE oraz 150nF między N a PE oraz 100nF między N a L; PE jest połączony z
    obudową) oraz kondensator 1nF między metalową obudową urządzenia, a masą
    elektroniki. Niemniej zabiegi te nie wyeliminowały problemu w 100% -- raz na
    jakiś czas problem się zdarza.
    Wysłanie komendy do wyświetlacza poprzedzone jest sprawdzeniem (odczytem
    stanu wyświetlacza), czy wyświetlacz nie jest zajęty. Wystąpienie zakłócenia
    powoduje najprawdopodobniej, że przez moment wyświetlacz nie odpowiada i
    program główny dłużej oczekuje w pętli oczekującej na odpowiedź kontrolera
    wyświetlacza, informującej o tym, że ten gotowy jest do przyjęcia komendy.
    Tu nie mam pewności, gdyż nie ja badałem oscyloskopem ten efekt, a jedynie
    słyszałem od kolegi.
    Żeby przywrócić działanie wyświetlacza, wystarczy użyć procedury
    inicjalizacyjnej wklejonej poniżej (nie trzeba od nowa odrysowywać grafiki
    na wyświetlaczu). W efekcie w programie głównym wywołuję tę funkcję kilka
    razy na sekundę, tak na wszelki wypadek.
    Ciekawi mnie, dlaczego zakłócenie działa właśnie w ten sposób, że nie
    zakłóca wykreślania grafiki (że na ekranie zaczyna się robić "kaszanka"),
    ale po prostu wyłącza obraz? Niemniej ten obraz (poprawny) jest nadal w
    pamięci wyświetlacza i wystarczy przeprowadzić inicjalizację wyświetlacza,
    aby grafika znów pojawiła się na ekranie.
    Ponadto, może opisany przeze mnie sposób reakcji wyświetlacza na zakłócenie
    pozwoli komuś z Was określić, jak zakłócenie "przenika" do kontrolera
    wyświetlacza i jak je wyeliminować. Będę wdzięczny za rady.

    Pozdrawiam,
    Robbo


    cbi(KS0108_CONTROL_PORT, KS0108_CONTROL_RS);
    cbi(KS0108_CONTROL_PORT, KS0108_CONTROL_RW);

    /* left part of the display */
    cbi(KS0108_CONTROL_PORT, KS0108_CONTROL_CSA);
    cbi(KS0108_CONTROL_PORT, KS0108_CONTROL_CSB);

    KS0108_writeCommand(0x3E /* display turn off */ | 0x01);
    KS0108_writeCommand(0xC0 /* set z address */ | 0x00);


    /* right part of the display */
    sbi(KS0108_CONTROL_PORT, KS0108_CONTROL_CSA);
    cbi(KS0108_CONTROL_PORT, KS0108_CONTROL_CSB);

    KS0108_writeCommand(0x3E /* display turn off */ | 0x01);
    KS0108_writeCommand(0xC0 /* set z address */ | 0x00);



    /* middle part of the display */
    sbi(KS0108_CONTROL_PORT, KS0108_CONTROL_CSB);
    cbi(KS0108_CONTROL_PORT, KS0108_CONTROL_CSA);

    KS0108_writeCommand(0x3E /* display turn off */ | 0x01);
    KS0108_writeCommand(0xC0 /* set z address */ | 0x00);


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: