Robbo
Guest
Fri May 08, 2015 8:15 am
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);
}
Robbo
Guest
Tue May 19, 2015 6:44 pm
Tu jest film:
https://www.youtube.com/watch?v=ZD_wyllutGk
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.
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ ochrona avast! Antivirus jest aktywna.
http://www.avast.com
Robbo
Guest
Fri May 22, 2015 11:50 am
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ć?
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ ochrona avast! Antivirus jest aktywna.
http://www.avast.com
janusz_k
Guest
Fri May 22, 2015 3:58 pm
W dniu 2015-05-22 o 13:50, Robbo pisze:
Quote:
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ć?
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania,
ponieważ ochrona avast! Antivirus jest aktywna.
http://www.avast.com
ż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.
--
Pozdr
Janusz_K
Robbo
Guest
Sat May 30, 2015 2:15 pm
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:
https://youtu.be/BI6yHHnOMIU
Oto filmo-zdjęcie przedstawiające tył wyświetlacza:
https://youtu.be/RJFNKu8pqLY
Czy na podstawie tego eksperymentu ktoś mógłby coś więcej powiedzieć o
przyczynie zakłóceń i jak sobie z tym radzić?
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ ochrona avast! Antivirus jest aktywna.
http://www.avast.com
Jakub Rakus
Guest
Sat May 30, 2015 2:59 pm
On 30.05.2015 16:15, Robbo wrote:
Quote:
Dziś wykonałem następujący eksperyment.
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).
--
Pozdrawiam
Jakub Rakus
Adam Górski
Guest
Sat May 30, 2015 3:06 pm
On 2015-05-22 13:50, Robbo wrote:
Quote:
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ć?
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ć :
http://www.dacpol.eu/pl/folia-ekranujaca-serii-9000/product/przewodzace-folie-transparentne-serii-9000
no ale to ostateczność.
Adam
Tomasz Wójtowicz
Guest
Sat May 30, 2015 3:36 pm
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.
Robbo
Guest
Sun May 31, 2015 12:13 pm
Quote:
Jak długie kable masz do tej baterii ?
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.
Quote:
Czy to metalowe obramowanie wyświetlacza jest do czegoś podłączone ?
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.
Quote:
Jakiś poliwęglan między wyświetlaczem a otworem ?
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.
Quote:
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
---
Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ ochrona avast! Antivirus jest aktywna.
http://www.avast.com
Piotr Gałka
Guest
Mon Jun 01, 2015 9:10 am
Użytkownik "Robbo" <niemam@gmail.com> napisał w wiadomości
news:5569c60d$0$27516$65785112@news.neostrada.pl...
Quote:
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.
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.