Grafika znika z ekranu wyświetlacza LCD pod wpływem zakłóceń

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);

Reply to
Robbo
Loading thread data ...

Taa... kupuj wyswietlacze dobrej jakosci. Te ktore nie mialy flooda na plytce a tylko mozaike sciezek bylo bardzo latwo oglupic. Potem kupilem partie 'porzadnych', z ladnie poprowadzonymi masami na plytce i bylo je ciezko oglupic. Potem pomyslalem i porzadnie poprowadzilem masy i uziemienia, wtedy nawet te 'zle' wyswietlacze zaczely dzialac. U mnie byla to wredna petla masy zamykana przez ramke LCD dotykajaca do zewnetrznej czesci obudowy.

Reply to
Jerry1111

U mnie jest przekladka i ramka wyswietlacza (lakierowana zreszta nieprzewodzaca farba) nie ma styku galwanicznego z metalowa obudowa urzadzenia (takze malowana). Zrobilem pewien eksperyment. Wyjalem plytke elektroniki i wyswietlacz z obudowy. Tasme miedzy wyswietlaczem a plytka elektroniki oplotlem kablem zasilajacym od mojego testowego stycznika (który non-stop zalacza i wylacza sie). Po wlaczeniu zasilania stycznika, wyswietlacz zaczal wariowac. Grubym kablem polaczylem mase wyswietlacza z masa elektroniki. Ten zabieg pomógl bardzo znacznie. Potem (z ta dodatkowa masa pociagnieta grubszym przewodem) elektronike schowalem do obudowy. Wlaczylem stycznik, przytykajac jego kabel zasilajacy do obudowy w okolicy wyswietlacza, a potem takze prowadzac go równolegle z kablem zasilajacym elektronike. Wynik byl w porzadku. Potem odlaczylem te dodatkowa mase i znów przeprowadzilem eksperyment na elektronice zamknietej w obudowie. Nie bylo wyraznej róznicy miedzy stanem z dodatkowa masa, a stanem bez tej masy. Dodatkowy kabel laczacy mase wyswietlacza z masa elektroniki bardzo pomaga na golej elektronice, natomiast przy stosowanej przeze mnie metalowej obudowie, nie ma juz takiego znaczenia.

Reply to
Robbo

Obudowa uziemiona? Gdzie masz y-caps? Jak zasilana elektronika (trafo/dobry smps/dupny smps)? Dlugosc kabla?

Na wszystko patrz pod katem impedancji tego grubego kabla masy (bo to Ci ustala tak naprawde stan pinow przy zakloceniu).

Reply to
Jerry1111

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.