logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zasilanie mikroprocesora. Na wyświetlaczu LCD 2*16 pojawiają się szlaczki.

Witkacy8 30 Gru 2006 22:10 6261 33
REKLAMA
  • #1 3389009
    Witkacy8
    Poziom 20  
    Posty: 523
    Pomógł: 9
    Ocena: 73
    Mam problem z zasilaniem i filtrowaniem mikroprocesora.
    Zbudowałem sterownik pieca AZSO na mikroprocesorze ATmega32 ,
    w warunkach domowych wszystko ok. Jednakże u klientów podczas załaczania się styczników sterujących żmijką czy nawiewami, wyświetlacz LCD 2*16 zaczyna wariować. Pojawiają się rózne szlaczki.
    W jaki sposób odfiltrować zasilanie aby to się nie działo.
  • REKLAMA
  • #2 3389047
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Nie dałeś schematu ani żadnego opisu. Proponuję na styki przekaźników podłączyć układy gasikowe (rezystor 100Ω + kondensator 100nF) na zasilaniu pompy czy innych urządzeń spróbuj dodatkowo dać warystory. Jeśli to nie pomoże to zrób zasilacz impulsowy w oparciu o LM2574.

    --
    pozdrawiam
  • #3 3389107
    Witkacy8
    Poziom 20  
    Posty: 523
    Pomógł: 9
    Ocena: 73
    Taki stabilizator właśnie w tej chwili mam zamontowany,ale u niektórych klientów ten problem nadal istnieje. Spróbuję te układy gasikowe zastosować.
  • #4 3389142
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Ja w swoim sterowniczku mam zwykły stabilizator i układ potrafił się powiesić przy załączaniu badź włączaniu siłowników (elektrycznych). Gasiki rozwiązały problem definitywnie.

    --
    pozdrawiam
  • REKLAMA
  • #5 3389197
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Nie zawsze zakłócenie pracy uP powoduje złe zasilanie.
    Jeżeli w pobliżu jest dużo elementów które mogą powodować zakłócenie to minimalizowanie ich wpływu jest niedobrym rozwiązaniem. Trzeba sprawdzić co konkretnie się dzieje, czy program się "wykrzacza" (wtedy trzeba odpalić watchdoga), czy zakłócenie jest tylko na lini danych z uP do LCD'ka. Lepiej "uodpornić" układ uP-wy bo czasami układy gasikowe też sie uszkadzają i nie spelniaja już swojej roli. Dodatkowo źle dobrany układ gasikowy może niekorzystnie wpływać na działanie np: elektrozaworów gdzie cewka ma bardzo dużą indukcyjność.
  • #6 3389632
    greg_matrix
    Poziom 17  
    Posty: 163
    Pomógł: 28
    Ocena: 3
    A ja mam kilka prostych zasad których staram się trzymać żeby wszystko było pod kontrolą:
    1. Zasilanie +5V podłączam do procesora przez diodę Shottkyy a za nią daję kondensator 22µF. Zakłócenia przez coś takiego się nie przedostają, a w każdym razie na pewno nie ma zaników napięcia.
    2. Jeśli w układzie mogą pojawić sie przepięcia to na zasilaniu daję diodę Zenera która w razie czego je obetnie.
    3. Jeśli procesor zaświeca jakieś LED to podłączam je do tego samego zasilania które dostaje procesor (po diodzie Shottkyy) albo do masy, nigdy do "niepewnego" +5V (przed diodą).
    4. Jeśli mają być przekaźniki, FET-y itp to sterowane są zawsze przez tanzystor albo jakiś driver.

    Jeśli jest skąd wziąć odpowiednie napięcie do zasilenia stabilizatorka 78L05 to warto go użyć zamiast punktów 1 i 2.

    Restart procesora występuje nie tylko przy zaniku zasilania ale też przy przeciążeniu wyjść, dlatego trzeba pamiętać o uwagach 3 i 4. Zwłaszcza niespodziewany restart przez LED-y był dla mnie zaskakujący kiedy go swojego czasu odkryłem... :-)
  • #7 3389861
    Fajfer2
    Poziom 20  
    Posty: 507
    Pomógł: 18
    Ocena: 14
    Krótsze przewody łączące uP z LCD i/lub wszystkie przewody (te do LCD)
    (zasilanie,masa,i sygnałowe) przepuść przez ferrytowy pierścień toroidalny ( wykonaj na nim kilka zwojów całą tą wiązką - najlepiej skręć
    ją wcześniej ).
  • REKLAMA
  • #8 3389869
    janek1815
    Poziom 38  
    Posty: 4513
    Pomógł: 372
    Ocena: 1055
    greg_matrix napisał:

    1. Zasilanie +5V podłączam do procesora przez diodę Shottkyy a za nią daję kondensator 22µF. Zakłócenia przez coś takiego się nie przedostają, a w każdym razie na pewno nie ma zaników napięcia.



    ja robie podobnie jednak za dioda daje zawsze dlawik okolo 100uH i wiekszy kondensator okolo 100uf sterowniki pracuja wsrod wielu wentylatorow i pomp CO nigdy nie ma z nimi problemow wczesniej byly w ciagu dnia potrafily sie zawiesic kilka razy teraz w ciagu miesiaca zdarza sie to moze raz
  • #9 3390500
    wicy
    Poziom 22  
    Posty: 670
    Pomógł: 30
    Ocena: 111
    greg_matrix napisał:

    3. Jeśli procesor zaświeca jakieś LED to podłączam je do tego samego zasilania które dostaje procesor (po diodzie Shottkyy) albo do masy, nigdy do "niepewnego" +5V (przed diodą).

    Jeśli jest skąd wziąć odpowiednie napięcie do zasilenia stabilizatorka 78L05 to warto go użyć zamiast punktów 1 i 2.

    Restart procesora występuje nie tylko przy zaniku zasilania ale też przy przeciążeniu wyjść, dlatego trzeba pamiętać o uwagach 3 i 4. Zwłaszcza niespodziewany restart przez LED-y był dla mnie zaskakujący kiedy go swojego czasu odkryłem... :-)


    To ja mam pytanie do powyższego. W najprostszym układzie ATTiny2313 zasilanym bezpośrednio z 78L05 (reset up do vcc przez 10k) są jeszcze 2 diody LED. Po starcie układ powinien zasygnalizować gotowość 2xbłyskiem jednej z LED, ale po włączeniu zasilania układ wariuje i błyska diodą jak mu się spodoba.
    Czy zwiększony pobór prądu przez LED w chwili jej zaświecenia może skutkować spadkiem napięcia i resetem up (i stąd te ciągłe migania)? Czy wstawienie między uP a LED rezystora może obniżyć prąd diody na tyle by nie powodowała reseta?
  • #10 3390534
    janek1815
    Poziom 38  
    Posty: 4513
    Pomógł: 372
    Ocena: 1055
    wicy napisał:
    Czy wstawienie między uP a LED rezystora może obniżyć prąd diody na tyle by nie powodowała reseta?

    a nie masz wstawionego rezystora ograniczajacego prad diody LED? jaka ma wartosc moze zbyt mala?
  • #11 3390575
    wicy
    Poziom 22  
    Posty: 670
    Pomógł: 30
    Ocena: 111
    Nie mam nic wstrawione. Mała, czerwona LED 3,5mm sterowana bezpośrednio z pinu procesora.
    Wstawiam 1k i zobaczymy co będzie
  • #12 3390956
    rezi_ar
    Poziom 17  
    Posty: 166
    Pomógł: 21
    Ocena: 9
    Do Witkacy8
    Czy nie masz czasem sterowania LCD w trybie 4 bitowym?
    Jeżeli tak, to prawdopodobnie nie uP wariuje, tylko coś zakłóca transmisję z LCD.
    Wystarczy, że "zginie" jedna "4" bitów i na wyświetlaczu są już tylko krzaki.
    Pomaga ponowna inicjalizacja LCD.

    rezi
  • #13 3390994
    janek1815
    Poziom 38  
    Posty: 4513
    Pomógł: 372
    Ocena: 1055
    no to masz przekroczony prad maksymalny pinu dziwne ze dioda jeszcze jest ok :)
  • #14 3391113
    greg_matrix
    Poziom 17  
    Posty: 163
    Pomógł: 28
    Ocena: 3
    Jeśli ta dioda tylko któtko mruga to nic jej nie będzie, za to port na pewno jest przez chwilę przeciążony. To może skutkować restartami albo jakimś dziwnym zachowaniem.

    Do LED czerwonych i zielonych w sam raz jest 680Ω, do żółtych i pomarańczowych 510Ω. Prąd będzie około 5mA. To wszystko oczywiście dla zasilania 5V.

    W ogóle jeśli do portów pracujących jako wyjścia podłączasz cokolwiek, to warto pamiętać o opornikach szeregowych. Choćby na wszelki wypadek. Nawet jeśli podłączasz coś co z założenia nie pobiera prądu to przecież może się uszkodzić.

    Szybkie oszacowanie: np. dla większości AVR dopuszczalny prąd na 1 pin to 20mA. Załóżmy, że masz stan wysoki na pinie a podpięte urządzenie zorganizowało nam zwarcie do masy. Żeby nie przekroczyć 20 mA potrzebny jest opornik szeregowy 5V/0,02A = 250Ω.
  • #15 3391187
    wicy
    Poziom 22  
    Posty: 670
    Pomógł: 30
    Ocena: 111
    Wszystko racja. Chciałem zminimalizować ilość elementów na płytce, co jednak nie do końca okazało się szczęśliwym rozwiązaniem.
    Procesor resetuje w już dobrze przy podpiętym rezystorze 2,2k i minimalnych zmianach w programie w inicjacji portów.
    Chyba jednak za szybkie i zbytnie obciążenie wyjść może być przyczyną złych i nieoczekiwanych resetów.
    Sorka za zaśmiecenie wątku i dzięki za rady.
  • #16 3392503
    Witkacy8
    Poziom 20  
    Posty: 523
    Pomógł: 9
    Ocena: 73
    rezi_ar napisał:
    Do Witkacy8
    Czy nie masz czasem sterowania LCD w trybie 4 bitowym?
    Jeżeli tak, to prawdopodobnie nie uP wariuje, tylko coś zakłóca transmisję z LCD.
    Wystarczy, że "zginie" jedna "4" bitów i na wyświetlaczu są już tylko krzaki.
    Pomaga ponowna inicjalizacja LCD.

    rezi



    Tak tryb czterobitowy.
    I jeszcze jedno pytanie dotyczące wyświetlacza LCD 16*1
    Jak go zainicjować??
    Gdy wezmę go jako 16*1A lub jakkolwiek to wyświetla mi znaki tylko do połowy lcd. Druga połowa jest pusta.
  • REKLAMA
  • Pomocny post
    #17 3392656
    wojtkow
    Poziom 14  
    Posty: 80
    Pomógł: 9
    Wyświetlacz 16x1 to tak naprawdę 8x2 (też z tym kiedyś walczyłem)
    Musisz wysłać mu po 8 znakach polecenie "nowa linia" 0xC0 i dalej tekst który zajmuje następne 8 znaków.
  • #18 3393039
    Witkacy8
    Poziom 20  
    Posty: 523
    Pomógł: 9
    Ocena: 73
    To troszkę do kitu z tym wyświetlaczem.
    Ale dzięki,walczyłem z nim kilka dni zmieniałem je jeden po drugim ,myśląc że trafiłem na uszkodzony.
    Wkońcu ktoś mi to rozjasnił.
  • #19 3397765
    Witkacy8
    Poziom 20  
    Posty: 523
    Pomógł: 9
    Ocena: 73
    Jeszcze jedno pytanie.
    Widziałem kiedyś w sterowniku mikroklimatu firmy Big Dutchman
    wyświetlacz z dwoma liniami,który po chwili nie naciśnięcia zadnego z przycisków wyświetlał temperature łącząc dwie linie ze sobą,dzięki temu powstały duze cyfry na wysokość dwóch linii. Jak takie coś zrobić?
  • #20 3398124
    teedd
    Poziom 19  
    Posty: 219
    Pomógł: 24
    Ocena: 2
    Witam.
    W typowym wyświetlaczu LCD 2x16 można zdefiniować w jednym momencie do 8 własnych znaków. Jeżeli nie będziesz wyświetlał jednocześnie więcej niż 2 duże cyfry (każda duża cyfra to 4 własne zdefiniowane znaki), to da się to zrobić.
    teedd
  • #21 3398217
    Witkacy8
    Poziom 20  
    Posty: 523
    Pomógł: 9
    Ocena: 73
    Tylko że tam temperatura zajmowała 4 cyfry np. 23.6°
  • #22 3398291
    teedd
    Poziom 19  
    Posty: 219
    Pomógł: 24
    Ocena: 2
    Możliwe, że to był inny typ wyświetlacza, albo te powiększone znaki miał zdefiniowane w ROM-ie. Szkoda, że nie da się tego samemu zrobić...
    Jeśli zdecydujęsz się tylko na powiększenie wysokości cyfr, to się da wyświetlić 4 różne cyfry.
    teedd
  • #23 4338120
    JStan
    Poziom 16  
    Posty: 293
    Pomógł: 3
    Ocena: 44
    Mam podobne pytanie dotyczące zasilania ATmegi128. W układzie mam napięcie z zasilacza komputerowego 12V i 5V. Układ zawiera w sobie wyświetlacz LCD, trzy serwomechanizmy i sporo ledow. Ledy zasilane beda z 12V, natomiast mam wątpliwości czy reszte zasilić napięciem 5V bezpośrednio z zasilacza czy poprzez stabilizatory 7805 z 12V?? Wówczas myśle aby użyć jednego do Up i LCD a drugiego do samych serwomechanizmów aby ich większy pobór prądu nie powodował przygaasania LCD i co gorsze wykrzaczania uP.

    Dzięki za rady!!
  • #24 4340727
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Witaj
    Obciązałnośc prądowa zasilaczy ATX komputerowych jest zawsze większa dla +5V niż +12V. LEDY raczej powinieneś zasilać z +5V i wogóle całość też, tyle, że procesor z oddzielnego stabilizatora, najlepiej przetwornicy. Jeśli nie używasz tego zasilacza do równoczesnego zasilania komputera, to zastanów sięnad wykorzystaniem do zasilania LEDów napięcia +3,3V (jeśli takie akurat ma)
    Pozdrawiam
  • #25 4340774
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Obawiam się, że rzeczony wyświetlacz miał albo rozszerzony zakres poleceń (odpowiednik HD w wykonaniu Samsunga) albo był wyświetlaczem graficznym.

    Co do filtracji napięcia zasilania.

    Objawy, o których mówisz pojawiają się raczej w sterowniku wyświetlacza niż na porcie kontrolera. Możesz spróbować dodać kondesator filtrujący tuż przy wyświetlaczu, rzędu 470 uF oraz 100 nF równolegle i zaekranować wstęgę w skrajnym wypadku zastanowiłbym się :) to nie żart nad bufforem 74F245 po obu stronach wiązki
    Czasem wyświetlacz gubi zasilanie i ma dziwne efekty w pamięci a porządna prądowa magistrala radzi sobie naprawdę super, a z tego co zrozumiałem zasilanie nie jest problemem.

    Możesz też zastosować rozwiązanie softwarowe :)
    Tzn. założyć i tak istnienie błędnego wyświetlania
    i okresowo resetowanie softwarowe i pełne czyszczenie zawartości pamięci wyświetlacza z ponownym wysłaniem wyniku. Jeśli zależy ci na tym żeby się klient nie zorientował to możesz zapisać w instrukcji obsługi że co jakiś czas wyświetlacz "odpoczywa" :)
  • #26 4340816
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Jeśli to wina samej komunikacji, to możesz zmniejszyć wpływ kabla na transmisję poprzez przeplecenie masy między sygnałami czyli:
    1-masa
    2-D0
    3-masa
    4-D1
    5-masa
    6-D2
    ...
    n-masa

    Z punktu widzenia elektrycznego będzie to wyglądało na skrócenie przewodów
    Oczywiście bufor też jest dobrym wyjściem, ale chyba szybciej zmienić pinouty a dopiero później dodawać elektronikę. Oczywiście Twoje problemy mogą wynikać również z wadliwego egzemplarza.
    Pozdrawiam
  • #27 4341245
    JStan
    Poziom 16  
    Posty: 293
    Pomógł: 3
    Ocena: 44
    Do Ch.M. - wsystko było by w porządku z zasilaniem ledów z 5V ale one sa połączone w szereg po trzy, więc napięcie przewodzenia takiej grupy jest powyżej 5ciu wolt... pozostaje mi więc tylko 12V, z obliczeń wynika że diody pobiorą 4,5A prądu, zasilacz mam lepszej klasy,za to komp nieco gorszej więc myśle że wydoli. Przeprowadziłem test. Przy zasilaniu serw i uP z jednego stabilizatora 7805(taki powinien wystarczyć) przy ruchu serwa miga podświetlenie LCD, dopiero przy osobnych 7805 jestw porządku. I tak też zrobię.
  • #28 4341295
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Dużo tych amperów, wielki ten LCD...

    Wracając do wcześniejszych postów to możesz wyświetlić praktycznie co chcesz na takim wyświetlaczu... ale okupione to będzie trudem :)
    Przecież pamięć tego wyświetlacza możesz przeprogramowywać dowolnie między wyświetleniem jednego znaku a drugiego... nikt nie powiedział, że robisz to tylko zaraz po inicjalizacji :)
    Oczywiście dużo lepiej zastosować wyświetlacz, który ma od tego dodatkowy kontroler :)
    Pozdrawiam
  • #29 4358564
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Wyświetlacz LCD to w sumie peryferia i tak należałby go traktować :)

    Akurat magistrala sterownika HD jest równoległa, ale istnieje kilka prostych przykładów jak ją przerobić na szeregową :) I2C lub SPI.

    Może w przyszłych projektach z automatyką dużych obciążeń powinieneś jednak skorzystać z magistrali szeregowej
    a) łatwiej zaekranować;
    b) mniej różnych poziomów na pinach:
    c) łatwiej zapewnić ciągłość impdancji od nadajnika do odbiornika :)

    Część wyświetlaczy w ofercie www.elementy.pl ma już magistralę SPI na pokładzie :), wtedy nawet tryb 4 bitowy przegrywa bo wyświetlacz zabierze ci raptem dwa piny :)
  • #30 7390942
    Rime
    Poziom 14  
    Posty: 98
    Pomógł: 7
    Witam, mam jedno (zapewne głupie) pytanie.
    Czy zasilaczem impulsowym 5V 600mA, mogę zasilać układ lampki RGB oparty na mikrokontrolerze ATTiny2313 (wyczytałem w nocie że pracuje stabilnie w zakresie 2,7 - 5V). No i oczywiście, czy może to być zasilacz impulsowy ? Czy taki układ nie będzie świrować, i czy napewno procek ruszy (zakładając poprawność układu) ?

Podsumowanie tematu

✨ Problem dotyczy zakłóceń na wyświetlaczu LCD 2x16 podczas załączania styczników w sterowniku pieca opartego na mikroprocesorze ATmega32. Objawem są pojawiające się na wyświetlaczu "szlaczki", co wskazuje na zakłócenia w zasilaniu lub transmisji danych. Zalecane rozwiązania obejmują stosowanie układów gasikowych (rezystor 100 Ω + kondensator 100 nF) na styki przekaźników, dodanie warystorów, a także zastosowanie stabilizatora impulsowego LM2574 lub klasycznego 78L05 z odpowiednim filtrowaniem. Ważne jest stosowanie kondensatorów ceramicznych 100 nF blisko nóżek zasilania procesora oraz elektrolitycznych o większej pojemności (np. 22 µF, 100 µF) dla stabilizacji napięcia. Dodatkowo sugeruje się stosowanie diody Schottky na zasilaniu procesora z kondensatorem filtrującym, diody Zenera do ochrony przed przepięciami oraz rezystorów szeregowych ograniczających prąd do LED-ów i przekaźników sterowanych tranzystorami lub driverami. Skrócenie i skręcenie przewodów łączących procesor z LCD oraz przepuszczenie ich przez ferrytowy pierścień toroidalny pomaga zmniejszyć zakłócenia elektromagnetyczne. W przypadku transmisji w trybie 4-bitowym zakłócenia mogą powodować błędy w wyświetlaniu, co można łagodzić poprzez ponowną inicjalizację LCD lub zastosowanie buforów 74F245. Wskazane jest również rozważenie separacji zasilania serwomechanizmów i LED-ów od zasilania procesora i LCD, aby uniknąć spadków napięcia i resetów. W dyskusji poruszono także kwestie inicjalizacji wyświetlaczy LCD 16x1 (w rzeczywistości 8x2) oraz metody wyświetlania dużych cyfr przez definiowanie własnych znaków. Wskazano, że zasilanie impulsowe jest możliwe pod warunkiem odpowiedniego filtrowania kondensatorami ceramicznymi i elektrolitycznymi. Zalecenia dotyczące poprawy stabilności obejmują stosowanie watchdogów, ekranowanie przewodów, oraz rozważenie magistrali szeregowej (I2C, SPI) zamiast równoległej dla lepszej odporności na zakłócenia.
Wygenerowane przez model językowy.
REKLAMA