Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

inicjalizacja niszczy LCD?

10 Lut 2009 19:58 3352 27
  • Poziom 10  
    Witam.

    Znajomy robi dla mnie układ uC z lcd, celem uniknięcia wykrzaczenia od zakłóceń proponuje inicjalizację co parę sekund, tak na wszelki wypadek. Fajnie działa ale czy podczas tej procedury inicjalizacji nie jest używany eeprom w lcd, który się rozleci po czasie?.
    A może jest jakaś lepsza metoda na to?, zauważyłem że układ z uC nie łapie zakłóceń, jest ok. ale sam lcd czasami sporadycznie przy silniejszych zakłóceniach się wykłada. Objaw-układ z uC pracuje bez zmian a lcd nie reaguje i wyświetla śmieci.

    Dzięki z góry za pomoc.
  • PCBway
  • Poziom 32  
    Lepiej co jakiś czas po prostu wyczyścić lcd.
  • Poziom 10  
    nie wiem czy czyszczenie coś da jak procki wiszą na lcd, po wyłożeniu czyszczenie nie działa a init owszem, myślę że samym czyszczeniem sprawy się nie załatwi, a może ktoś też coś dorzuci na temat wpływu zakłócenia na lcd, bo odnoszę wrażenie że same lcd są dużo bardziej wrażliwe niż to z czym pracują
  • PCBway
  • Poziom 19  
    Hm, raz i tylko jeden raz miałem problem z resetowaniem się LCD w układzie, problem załatwiło całkowicie i definitywnie dolutowanie tantalowego 47uF do styków zasilania w wyświetlaczu.

    PS. Gdzie w LCD jest EEPROM??? O jakim LCD mówisz?
  • Poziom 25  
    Witam.

    A ja spotkałem się już z problemem zawieszania i krzaczenia(efekt matrix ) LCD.
    Program działał nadal wykonywał wszystkie funkcje a lcd nagle przestawał reagować wystarczyło włączenie światła, bądź przekaźnika, zapalarki w kuchni nawet otwarcie lodówki czy jej włączenie (agregat) .... innej firmy LCD nie miał tego problemu.

    P.s polecenie cls nie sprawdza się tak samo jak zresetowanie procesora. Jedynie wyłączenie zasilania pomaga.
  • Pomocny post
    Poziom 22  
    To prawda Cls nie pomoże jak proc na lcd zwisł, pomaga jedynie powtórna init lcd, są problemy bo jednak spotykam się z tym że same lcd są mniej odporne na zakłócenia, czasami filtrowanie zasilania i odkłócanie itd. też nie pomaga, przy silnych zakłóceniach wywala się lcd
  • Poziom 42  
    może wsadzę kij w mrowisko ... ale ja uważam, że prawidłowo napisany soft a co ważniejsze prawidłowe podłączenie LCD (obojętnie jakiej firmy by nie był) nie ma prawa się zawieszać, tak więc wszystkie opowieści o samozawieszających się LCD wsadziłbym między dobre bajki. Najłatwiej szukać błędów wszędzie poza włanym kodem lub własnym działaniem (połączenia,elektronika itp)

    Generalnie procedura INIT jak i polecenie CLS - wcale nie są po to aby wybudzać LCD ze stanu jakichś tam zawieszeń - więc tego typu podejście aby co kilka sekund inicjalizować LCD na wszelki wypadek to jakieś kuriozum

    niektórzy twierdzą , że filtrowanie, odkłócanie też nie pomaga przy silnych zakkłóceniach - tymczasem często ci niektórzy (nikogo nie mam tu personalnie na myśli - mówię ogólnie) nie wiedzą co to znaczy tak naprawdę filtrowanie zasilania. Zwykle często ostatnio spotykamy się z pytaniami na elektrodzie np:
    Cytat:
    "czy trzeba koniecznie podłączać VCC oraz GND do wszyskich nóżek procka skoro po podłączeniu do jednej pary też dobrze działa?"

    niektórzy też pisząc o dużych zakłóceniach mają na myśli włączające się żelazko czy lutownicę a nie halę produkcyjną maszyn. Więc wg ich teorii tego typu wyświetlacze to na takiej hali w ogóle nie powinny działać albo trzeba kupować wersje dla wojska co najmniej za kilka tys of dollars.

    - ludzie nie mają zwyczaju wszędzie gdzie trzeba dać kondensatora ceramicznego 100nF (mowa o nogach zasilania każdego scalaka i nie tylko)
    - ludzie nie mają zwyczaju wszędzie gdzie trzeba dać kondesatora elektrolitycznego lub tantalowego (też nogi zasilania)

    - ludzie nie wiedzą, że dać takie kondensatory blisko tzn przy samych nóżkach a nie gdzieś tam na płytce

    - ludzie popełniają dużo błędów w swoich programach do uC

    nie sposób wymienić tu jeszcze wielu wielu innych takich podstawowych zaniedbań i przeoczeń

    ..... ale nie, lepiej płakać i badolić że wszystko popsute i trzeba kupić nowe
  • Poziom 43  
    mirekk36 napisał:
    może wsadzę kij w mrowisko ... ale ja uważam, że prawidłowo napisany soft a co ważniejsze prawidłowe podłączenie LCD (obojętnie jakiej firmy by nie był) nie ma prawa się zawieszać


    Tak, ale to dotyczy przypadku gdy gdy praca programu nie jest zakłócana. Gdy program ma dostęp do danych które sam tworzy. A nie tak jak to ma miejsce w rzeczywistym układzie gdzie zawartość pamięci RAM może sie zmienić pod wpływem zakłócenia. Zakłócenie może tez wpływać bezpośrednio na pracę rdzenia (zmienić zachowanie podczas skoku czy jakiejś innej instrukcji).

    Ale oczywiście racja. Trzeba wstawiać kondensatory i to blisko nóżek zasilających.
    Ponawianie INITu to też dobre rozwiązanie. Ale jeszcze zależy o jaki LCD chodzi. Alfanumeryczne mają zwyczaj mignąć podczas INITu. Inne np. z telefonów komórkowych niekoniecznie (ale pod warunkiem że podczas INITu nie robi się INITu sprzętowego linią RESET).
  • Pomocny post
    Poziom 22  
    Tak, to prawda można zaniedbać podstawowe elementy p/z i biadolić.
    Można też nie zaniedbać i wsadzić taki układ z lcd do skrzynki maszyny przemysłowej, zamontowany jako panelowy i wtedy się okazuje jak bardzo zakłócenia dostają się do naszego modułu, wszystkimi możliwymi drogami, część z nich niestety przez powietrze..., na ledach objawi się to mignięciami sporadycznymi podświetlonych segmentów i nic się nie dzieje a lcd przy niekorzystnej kumulacji zakłócenia po prostu się wyłoży i bez init można go sobie pompować danymi bez skutku.
    Na własne pcb mamy wpływ, no gotowy lcd przeważnie chinaboys nie mamy wpływu, czasami nie pomaga dobry projekt, soft i ekran, jak pokazuje praktyka w rzeczywistych warunkach zakłócenia to problem przed którym tylko "na wyrost" można się zabezpieczyć.Tak jak watchdog w procu tak i nad lcd trzeba czuwać bo sam niestety z martwych nie powstanie.
    Moje zdanie-lepiej zapobiegać bo nie ma mądrego kto pozbędzie się zakłóceń, a jeśli tak twierdzi to życie skoryguje jego zdanie prędzej czy później.
    Warto mając dobre pcb nie popsuć działania całości gdy styczniki itp. ruszą pełną parą w pobliżu, tym bardziej że jeśli reszta działa dobrze to dane nie są utracone, resetu proca nie ma i klient nawet nie bardzo się zdenerwuje, mniej niż gdyby musiał wyłączać zasilanie całości.

    Słucham z ciekawością innych opinii.
  • Poziom 10  
    dzięki dla wszystkich za głos w tej dyskusji, na razie tak sądzę że jednak raz na jakiś czas nie zaszkodzi init bo tak jak napisał jacobsek cała reszta działa nawet w b.silnych zakłóceniach a lcd 4x20 big czasami się jednak wykłada....., objaw taki: klawisze reagują, urządzenie steruje tym co ma sterować a w okienku krzaczki i nie wiadomo o co chodzi
  • Poziom 18  
    też dodam swoje trzy grosze. W moim urządzeniu po kilku dniach ciągłego działania sterownika napis na LCD przesuwa się o jedną 'kratkę' w lewo. Cały program działa bez zarzutu, przed każdym wyświetleniem ekran jest czyszczony.

    W tym wypadku pozostaje tylko init. Zgodzę się jednak, że może to być niewystarczająca filtracja itp..
  • Poziom 42  
    MarasK -> moim zdaniem ten efekt u ciebie to tylko i wyłącznie ewidentna wina softu choć mogę się też mylić, a nie wina zasilania i zakłóceń.

    W czym masz napisaną obsługę LCD? - Bascom (gotowiec), C - jakieś własne procedury czy może jakieś z netu? czy w asemblerze coś własnego?

    takie przesuwanie się o jeden znak w bok, po dłuższym czasie jeszcze o jeden itd - to zwykle wynik złego dobrania parametrów czasowych jeśli chodzi o sterowanie a co za tym idzie czasem dzięki takim chockom-klockom może wpaść do wyświetlacza polecenie Shift zamiast np CLS itp ..... no i od razu po ptakach. Albo przesunięcia , albo krzaczki na wyświetlaczu itp.

    Takie efekty też szczególnie występują wtedy gdy stosuje się sterowanie LCD z podłączonym pinem RW do GND. Gdzie nie pytamy programowo wyświetlacza czy już dokończył to co ma zrobić tylko wstawiamy spore opóźnienia, które w teoretycznych założeniach zawsze dla prawie każdego typu wyświetlacza powinny wystarczyć. Niestety - prawie ..... robi wielką różnicę, szczególnie gdy chcemy w takim układzie coś szybko wyświetlać, tzn spore ilości informacji i dosyć często.

    Gdy zaczyna się używać programowej obslugi pinu RW oraz BusyFlag dla LCD to problemy już praktycznie znikają.

    Bascom ma dobre procedury ale mógłbym pokazać tysiące przypadków gdy nieprawidłowe sposoby wyświetlania w Bascomie przy RW do GND - powodują krzaczenie. Dlatego też nawet gdy robiłem obsługę pod Bascomem to korzystałem z ogólnodostępnej biblioteki umożliwiającej sterowanie pinem RW - polecam
  • Poziom 30  
    Nie ma winy softu:

    Podciąganie na wszystkich liniach przez 1k do plusa. Niewykorzystane do masy.
    Zasilanie z zasilacza buforowego(typu on-line z akumulatorkiem).
    Wtyczka do danych z uC (program tak napisany że zostawia hi-z).
    Init, cls, dane dla jednego ekranu.
    Potem odpinam uC i zostaje sam wyświetlacz z tekstem.

    Objaw jest taki że co jakiś czas na wyświetlaczu w określonych miejscach pojawiają się znaki. Na oko nie podobne do tych z cg-ram'u.

    Mam tak na dwóch wyświetlaczach 2x16 shenzen czy jakoś tak tylko inne znaki w innych miejscach.

    Co dziwne mam takich wyświetlaczy więcej ale tylko te dwa tak mają.

    Magia.
  • Pomocny post
    Poziom 22  
    Tak,to prawda, wykorzystanie flagi zajętości to podstawa. Ale pomimo poprawnej obsługi lcd (nawet w asm) i poprawnego softu nie mamy wpływu na pracę całej elektroniki lcd, pamiętajmy o tym że to nie my zbudowaliśmy ten lcd, ktoś się starał, to prawda ale śmiem twierdzić że jeszcze się taki nie urodził coby zbudował coś czego nie można "wywalić" odpowiednio silną sekwencją emc, a może jednak się mylę?
  • Poziom 18  
    jeżeli producent podaje, że czas pomiędzy jednym rozkazem, a drugim ma wynosić tyle i tyle, czas nadawania jednego pół-bajtu tyle i tyle, a ja się tego trzymam to nie rozumiem stwierdzenia
    Cytat:
    które w teoretycznych założeniach zawsze dla prawie każdego typu wyświetlacza powinny wystarczyć


    Jednym z możliwych trybów obsługi wyświetlaczy na sterowniku Hitachi (i zgodnych) jest zachowywanie opóźnień czasowych. Zgadzam się, że używanie flagi zajętości pomaga w wielu wypadkach, ale nie zawsze.

    Jak napisał kolega jacobsek - nie mamy wpływu na zachowanie elektroniki wyświetlacza.

    Wszystkie procedury pisałem sam, w C.
  • Poziom 38  
    Projektanci układów nie są nieomylni(patrz-erraty do danych katalogowych).
    Procesy w układach cyfrowych nawet "bardzo zintegrowanych" są w rzeczywistości analogowe.
    Biorą w nich udział miliardy elektronów, pojemności itp. a nie "bity"
    Więc są niekiedy "nieobliczalne" w zachowaniach.

    Technologowie dają "obietnice" (wymuszone przez dział marketingu) że wszystko jest na "najwyższym poziomie".
    Nie dodają (bo dział marketingu im wyciął)
    że to wszystko jest nieco bardziej skomplikowane.
    I "zwykle" to działa.

    jacobsek napisał:
    "... zbudował coś czego nie można"wywalić" odpowiednio silną sekwencją emc, a może jednak się mylę? "

    Masz rację- można, ale trudno tę sekwencję wywołać
    "na żądanie" szefa- ale jeszcze trudniej jej nie wywołać
    podczas wizyty potencjalnego Klienta.
  • Pomocny post
    Poziom 22  
    Całkowicie zgadzam się z kolegami powyżej, marketing i zapewnienia to jedno, dokumentacja to drugie a klient który zrazi się do wyrobu to trzecie.
    To prawda że zwykle złośliwość rzeczy martwych wyłazi wtedy kiedy jej najmniej chcemy, w obecności klienta przy demonstrowaniu niezawodności urządzenia.
    Co wtedy powiemy?, używamy komponentów zgodnych z normami emc?, co to da?, chyba już jednak lepiej zapobiegać nawet metodą cyklicznego init lcd o którym klient wiedzieć nie musi a które nawet po wykrzaczeniu najsłabszego ogniwa po chwili podniesie układ do piony.
  • Poziom 25  
    Podam wam prosty przykład i gdzie nie stosuje LCD tylko zwykłe 7-segmentowe.
    Sterownik do ładowarki.
    Trafo ma za sobą mostek diodowy - stos od 8 do 40 i jakiś 2x1uF na 200V i nic więcej (czasami bocznik czasami bezpiecznik)
    W chwili załączenia stycznika od trafa powstaje wielki kop i impuls.
    Trafo powiedzmy jest 24v i 60A a bateria ciągnie z niego niekiedy 58A a nawet czasami ponad 60A a jeśli nie wystąpi w pierwszej fazie uruchamiania to podczas zmiany uzwojeń, które są stycznikami przełączane.

    Nie pomaga ekranowanie, filtry, dławiki, separacja pomiaru- transoptory zakładanie filtrów na trafo czy inne zabiegi.

    Program zawsze działa sterując diodami( led) odlicza czasy kontroluje wszystko
    a wyświetlacz .... Albo przestaje wyświetlać i nic nie robi albo chińskie znaki sie pojawiają.
    Wydawało się proste jak zakładałem płytka program Lcd.... ale okazało się to kłopotliwe i problematyczne.

    Teraz już wiem czemu zawsze spotykam 7-segmentowe wyświetlacze a nie Lcd w ładowarkach z trafokami i sam się przekonałem o tym.
  • Pomocny post
    Poziom 22  
    Dziś zrobiłem szybki teścik, zmontowałem układ z 2 styczników i jednego R15, zrobiłem na nich okablowanie i aby było bardziej wiarygodnie założyłem na cewki odkłócenie.W odległości 5 cm umieściłem pcb z lcd 2x16 negatyw, na lcd ekran itp. i zapuściłem "klapacz losowy" jako sterowanie zespołu zakłócającego. Pcb oczywiście proste ale z zachowaniem zasad, na pcb wchodzą kable enkodera i dwa wyjścia, zasialnie przez trafko podłączone do sieci całości.
    Mniej więcej przy sekwencjach zakłóceń losowych wykrzacza się co kilka minut w nieregularnych odstępach, normalne cls nie działa, a jeśli puszczam co jakiś czas init to jest ok. Może jest to jakaś metoda na wykrzaczanie w środowisku silnie zakłóconym?.
    Być może ktoś na formu ma jakąś inną metodę na lcd w trudnych warunkach? to zapraszam do podzielenia się uwagami.
  • Poziom 32  
    A gdzie to chcesz uzywac w motorze?
    Inną metodą na pozbycie sie tego problemu to pozbycie sie wykrzaczajacego sie wyswietlacza LCD i zastąpienie go wyswietlaczem LCD z "przemiataniem" Dodatkowo są to przewaznie tanie wyswietlacze i do tego graficzne co podniesie walory konstruowanego urzadzenia
  • Pomocny post
    Poziom 22  
    Po czym odróżnić lcd obecne na rynku czy są "przemiatane"?, chyba nie chodzi ci o takie segmentowe bez obsługi?. A graficzne są naprawdę pozbawione wady wykładania?, ktoś coś wie na ten temat?, pokuszę się więc o sprawdzenie.
    Co do używania to nie chodziło mi o motor tylko o łazik marsjański, dlatego wymyśliłem sobie duży poziom zakłóceń bo ponoć tam są....
  • Poziom 10  
    Temat jak na razie jest widzę aktywny, więc nie zamykam.
    Co do zakłóceń to popieram jacobsa, gdy coś się robi do maszyny to nie musi być "motor" ale sieje jak byk i trzeba o tym pamiętać że to nie tak jak jakiś układzik w domciu na stoliku dla zabawy rodzinki
  • Poziom 32  
    Takie "przemiatane odrózniaja sie tym ze nie posiadaja sterownika tylko trzeba samemu zapalacpiksel po pikselku czyli inaczej mowiac zeby cos napisac trzeba miec zdefiniowane fonty. a dlaczego jest odporniejszy bo jest takjaby 60-100 razy inicjalizowany na sekundi a zakłocenia ewentualne sa widoczne przez moment an ekranie.
    Moim zdanei trzeba by odwrotnie podejsc do tematu nie probowac dzialac w silnym polu zakłócającym a poprostu zminimalizoaw zakłócenia istniejące. Zaraz sie okaze za procesor sie bedzie wieszal co chwilke. Np zamiast uzywac silnikow komutatorowych uzyc bezszczotkowych ktore w wielu przypadkach maja lepsze parametry jak z cenami to nie wiem.
    Z drugiej strony w takil laziku to nie potrzebny jest LCD chyba ze masz niezly teleskop w zapasie. Masz jakies namiary na rakiedy z demobilu?
  • Pomocny post
    Poziom 22  
    to ciekawe co piszesz, z tego co wiem to graficzne których używam też mają sterowniki, nie wyobrażam sobie obsługi takowego bez sterownika, chyba że sterownik zrobisz samemu.... też na prockach?.
    chyba że chodzi o golasy lcd z wyprowadzonymi segmentami tak jak w ledach ale na nich tak jak na 7-segmentowcach wiele nie można wyświetlić.
    Co do rakiet z demobilu to służę pomocą:
    przylądek canaveral, floryda, box 255
  • Poziom 32  
    Te graficzne o ktorych mowie maja liniei sterujacyce o nazwach.
    CL2, CL1,FRAME,DI, ORAZ o 1 do 8 lini danych a sterowac mozna z tego samego procka na ktorym robisz docelowa aplikacje.
  • Poziom 10  
    myślę że jednak trudno jest tak iść do potencjalnego klienta i zmusić go aby sobie powymieniał silniki, styczniki,pulpit i instalacją w swojej konstrukcji którą już z powodzeniem sprzedaje, tym bardziej że wiąże się to z dodatkowym kosztem dla niego.
    Myślę że nie można po prostu tak sobie stwierdzić że jak tego nie zrobi to układ który mu proponujemy nie będzie działał, to układ ma być taki aby działał nawet u tego trudnego klienta.
  • Pomocny post
    Poziom 22  
    Jednak pozostanę przy bardziej typowych rzeczach które używam w tego typu konstrukcjach, nie zamierzam komplikować czegoś jeszcze bardziej, typowe znaczy mogę to w każdej chwili zastąpić, mechanicznie, nie wiem jak z matrycami, czy są tak samo dostępne seryjnie jak popularne lcd lub lcdgraf, nie wiem jak z kontrastem, widocznością w świetle słonecznym a to bardzo ważne czasami, nie wiem jak z pracą w temp. - 20 itd. nie wiem bo nie stosuję tego rozwiązania.
  • Poziom 32  
    inicjalizacja niszczy LCD?

    Pracuje do -20 stopni kontrast idealny i mozesz wykorzystac jako gorną klape :-) sterownie zajmuja okolo 1000 bajtow w atmedze8 brak procedur tytułowych. dostępność i niska cena.