Wyświetlacz, znikający obraz pod wpływem zak

Witam uprzejmie

W układzie zastosowałem wyświetlacz 192x64 LCD-AG-192064G-BIW W/B-E6 PBF. Pod wpływem zakłóceń (na przykład spowodowanych zapalarką piezoelektryczną) grafika potrafi zniknąć z ekranu wyświetlacza; podświetlenie nadal jest. Wystarczy w programie wywołać funkcję displayOn(), aby grafika ponownie pojawiła się na ekranie (nie trzeba ponownie odrysowywać grafiki). Byłbym wdzięczny, gdyby ktoś na podstawie przedstawionych objawów mógł wyjaśnić, co takiego może dziać się z wyświetlaczem pod wpływem zakłócenia, że znika grafika i ponownie pojawia się po przesłaniu odpowiednich poleceń. W jaki sposób zakłócenie może w tym przypadku oddziaływać na wyświetlacz (przez linie sygnałowe, przez powietrze, przez zasilanie)?

Pozdrawiam Robbo

Postać funkcji displayOn():

#define DISPLAY_TURN_ON_OFF 0x3E #define DISPLAY_SET_Z_ADDRESS 0xC0

void displayOn() { cbi(RS_OUTPUT_PORT, RS_OUTPUT_PIN); cbi(RW_OUTPUT_PORT, RW_OUTPUT_PIN);

cbi(CSA_OUTPUT_PORT, CSA_OUTPUT_PIN); cbi(CSB_OUTPUT_PORT, CSB_OUTPUT_PIN);

writeCommand(DISPLAY_TURN_ON_OFF | 0x01); writeCommand(DISPLAY_SET_Z_ADDRESS | 0x00);

sbi(CSA_OUTPUT_PORT, CSA_OUTPUT_PIN); cbi(CSB_OUTPUT_PORT, CSB_OUTPUT_PIN); writeCommand(DISPLAY_TURN_ON_OFF | 0x01); writeCommand(DISPLAY_SET_Z_ADDRESS | 0x00);

sbi(CSB_OUTPUT_PORT, CSB_OUTPUT_PIN); cbi(CSA_OUTPUT_PORT, CSA_OUTPUT_PIN); writeCommand(DISPLAY_TURN_ON_OFF | 0x01); writeCommand(DISPLAY_SET_Z_ADDRESS | 0x00); }

void writeCommand(uint8_t cmd) { busyWait(); cbi(RS_OUTPUT_PORT, RS_OUTPUT_PIN); cbi(RW_OUTPUT_PORT, RW_OUTPUT_PIN); DATA_OUTPUT_PORT = cmd; sbi(EN_OUTPUT_PORT, EN_OUTPUT_PIN); delay(); cbi(EN_OUTPUT_PORT, EN_OUTPUT_PIN); }

Reply to
Robbo
Loading thread data ...

Tu jest film:

formatting link
Na filmie wyświetlacz jest bez obudowy. Zamknięcie metalowej obudowy nieco poprawia sytuację, ale niewiele. Na ogół obraz znika z trzech segmentów (wyświetlacz 192x64 ma trzy segmenty po 64x64 piksele), ale czasem tylko z jednego albo z dwóch.

R.

Reply to
Robbo

Mam jeszcze jedną, może istotną obserwację. Mój wyświetlacz ma kontroler KS0108. W nieskończonej pętli robię nieustannie odczyt statusu wyświetlacza. Normalnie piąty bit odczytanego bajtu ma wartość 0 - oznacza to DISPLAY ON. Na skutek zakłóceń, gdy obraz znika z wyświetlacza, na pewien krótki czas piąty bit zmienia się na wartość 1 - oznacza to DISPLAY OFF. Co to może oznaczać?

Reply to
Robbo

W dniu 2015-05-22 o 13:50, Robbo pisze:

że należy wypierd...ć to całe sprawdzanie stausu bo chińskie wyświetlacze chodzą jak chcą, też z tym walczyłem, przeszedłem na metodę czasową i mam spokój a nie że mi program wisi na busy wyświetlacza.

Reply to
janusz_k

Dziś wykonałem następujący eksperyment. Początkowo wyświetlacz był podłączony do układu z mikrokontrolerem. Mikrokontroler przesłał grafikę do wyświetlacza. Następnie wyświetlacz został całkowicie odłączony od mikrokontrolera - zasilanie wyświetlacza zostało uprzednio podłączone z baterii. Z tyłu wyświetlacza założyłem wcześniej płytkę, która zawiera rezystory założone między liniami sygnałowymi wyświetlacza a masą, kondensator na zasilaniu, kondensator na RST, rezystor ustawiający właściwy kontrast obrazu, podłączenie do baterii zasilającej wyświetlacz. Po tych operacjach wyświetlacz był całkowicie odseparowany galwanicznie od jakiegokolwiek układu. Następnie zacząłem generować zakłócenia. Jeden biegun zapalarki piezoelektrycznej, przedłużony kawałkiem granatowego przewodu, został na stałe podłączony krokodylkiem do kombinerek; drugi biegun trzymałem w niewielkiej odległości od kombinerek i ściskając zapalarkę uzyskiwałem przeskakującą do kombinerek iskrę. Granatowy przewód zacząłem zbliżać do wyświetlacza. Grafika z wyświetlacza zaczęła znikać z tych segmentów, do których zbliżałem granatowy przewód - wyświetlacz ma rozdzielczość 192x64; na PCB wyświetlacza są układy scalone kompatybilne z KS0108, z czego każdy odpowiada za segment grafiki o wymiarach 64x64 piksele.

Oto film z eksperymentu:

formatting link
Oto filmo-zdjęcie przedstawiające tył wyświetlacza:
formatting link
Czy na podstawie tego eksperymentu ktoś mógłby coś więcej powiedzieć o przyczynie zakłóceń i jak sobie z tym radzić?

Reply to
Robbo

Według mnie nic z tym nie zrobisz, chińczyk zrobił taki byle jaki wyświetlacz i raczej już mu nie pomożesz. Ale skoro pisałeś, że jesteś w stanie wykryć nieprawidłowość w działaniu poprzez odczyt jakiegoś tam bitu to po prostu inicjalizuj/restartuj wyświetlacz od nowa po wykryciu błędu. Tylko jeśli to urządzenie ma przejść jakieś badania EMC to sprawdź w odpowiednich dla niego normach jakie masz kryteria oceny przy odporności na zaburzenia promieniowane i ESD (bo podejrzewam że strzał z palca w obudowę albo LCD też spowoduje takie zachowanie).

Reply to
Jakub Rakus

Może to oznaczać że robi się wewnętrzny reset któregoś IC, a jak widziałem na tyle jest ich kilka.

Taka iskierka to widmo ma że ho ho. Moim zdaniem RF się gdzieś indukuje ( co nie jest specjalnym odkryciem ) bo z tego co widzę to nawet nie dotykasz tym kabelkiem wyświetlacza.

Jak długie kable masz do tej baterii ? Czy to metalowe obramowanie wyświetlacza jest do czegoś podłączone ? Jakiś poliwęglan między wyświetlaczem a otworem ? Czy metalowe w/w ma kontakt z obudową ?

Jeżeli nic nie pomoże zawsze możesz dodać :

formatting link
no ale to ostateczność.

Adam

Reply to
Adam Górski

Spróbuj dorzucić na zasilaniu, możliwie blisko logiki wyświetlacza, kondensator, ale ceramiczny. Możliwie duży kondensator ceramiczny. Elektrolity mogą mieć za dużą impedancję żeby reagować na takie szpilki.

Reply to
Tomasz Wójtowicz

Kabel będzie miał z kilkanaście centymetrów. Wiem, że powinien być krótszy. Wydaje mi się jednak, że to nie ma wpływu w tym przypadku na wynik eksperymentu. Robiłem też próby przy zamkniętej obudowie. Zamiast baterii był podłączany także zasilacz. Wszystko to dało ten sam efekt.

Obramowanie leży na stole. Nie jest do niczego podłączone. Robiłem także eksperymenty z gołym wyświetlaczem (nie zamontowanym w obudowie) podłączonym tylko do baterii Ten sam efekt.

Między wyświetlaczem a obudową jest przekładka, która powoduje, że nie ma galwanicznego połączenia między obudową urządzenia a wyświetlaczem. Przy czym eksperyment robiłem też z gołym wyświetlaczem, nie włożonym do obudowy.

Taka folia o wymiarach 100 x 50mm kosztuje w Dacpolu 90 funtów brytyjskich za sztukę. Trochę drogo (żeby nie napisać, że bardzo drogo) :) W firmie holenderskiej, która sprzedaje to samo (albo bardzo podobne) koszt to ok 40 euro za sztukę. Spróbuję wykonać do eksperymentu taką folię samodzielnie - tzn. siatka z drucików wyjętych z ekranu jakiegoś kabla umieszczona między dwiema samoprzylepnymi foliami przezroczystymi.

Robbo

Reply to
Robbo

Użytkownik "Robbo" snipped-for-privacy@gmail.com napisał w wiadomości news:5569c60d$0$27516$ snipped-for-privacy@news.neostrada.pl...

Może to coś pomoże. W czasach przed CE walczyliśmy z wrażliwością urządzenia na telefon komórkowy (przyłożony do niego na kilka cm). Kupiłem wtedy zapalarkę, ale jeszcze nie wiedziałem jak się robi testy ESD - więc nie miałem wyprowadzonego "granatowego" przewodu. Wydłużyłem jedynie i zaizolowałem środkowy biegun. Odpowiednie ułożenie zapalarki powodowało, że skakały jednocześnie dwie iskry - od obudowy do pincety i od pincety do bieguna środkowego. Uważam, że około 20cm pinceta była anteną nadającą. Stan początkowy był taki, że przy odległości (pinceta - PCB) około 5cm iskra do pincety zawieszała procesor. Na płytce był zewnętrzny brown-out (w Atmelach jeszcze go nie było) i ścieżka do resetu była dość długa. Przyjąłem hipotezę, że jak ona coś łapie to może dostawać reset, ale za krótki aby był w pełni skuteczny i to może go wieszać. Dołączyłem do pinu reset procesora drucik (antenę) też około 20cm. Wtedy "zasięg" działania pincety wzrósł do jakichś 25cm. Dołączenie 1nF bezpośrednio na pin reset zmniejszało ten zasięg do około 3mm (pinceta ułożona równolegle do tego drucika anteny). Po odłączeniu tej anteny płytka już nie była wrażliwa ani na ESD do pincety ani na telefon komórkowy nawet leżący na płytce. Przypuszczam, że odpowiednio podłączone kilka kondensatorów na tej płytce wyświetlacza załatwiło by problem.

Dawno czytałem o ekranowaniu. Nie chce mi się szukać więc mogę nieco mylić. Z tego co pamiętam to pełny ekran daje około 80dB tłumienia zakłóceń. Otwór o najdłuższym wymiarze ileś tam (ważny jest najdłuższy wymiar - np. szpara w drzwiczkach bez grzebienia kontaktów to wielki otwór) powoduje, że fala o porównywalnej długości wnika bez problemów - tłumienie około 0dB. Nachylenie chyba typowe 20dB/dek czyli pogorszenie ekranowania zaczyna się około 4 dekady wcześniej.

3GHz mają długość fali około 10cm. 4 dekady niżej to 300kHz. Ekran z otworem 10cm zaczynając od 300kHz stopniowo traci swoje właściwości ekranujące. Laboratoryjne ESD ma czas narastania 1ns - czyli rejon 1GHz. Na moje to oznacza, że obudowa z otworem (po przekątnej) 10cm nie daje absolutnie żadnego zabezpieczenia przed ESD. Urządzenie czy w obudowie, czy bez niej powinno być mniej więcej tak samo wrażliwe. P.G.
Reply to
Piotr Gałka

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.