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

ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD

JStan 26 Lut 2013 14:44 4323 15
  • #1 26 Lut 2013 14:44
    JStan
    Poziom 16  

    Witam!!

    Układ sterownika tampoprintu zbudowany na bazie mikrokontrolera AVR, schemat poniżej, zasilanie dostarczane przez dwie osobne przetwornice +5V dla logiki oraz +24V dla elektrozaworów i oświetlenia, na przewodach zasilających koraliki ferrytowe, pole masy na płytce, tranzystory sterujące cewkami zabezpieczone diodami, przy samych cewkach we wtyczkach wbudowane diody 1N4148 oraz kondensatory ceramiczne 22nF. Zasilacze to przetwornice Meanwell linia masy połączona z PE i obudową, na płytce kondensatory elektrolityczne oraz ceramiczne. Połączenie płytki z wyświetlaczem bardzo krótką tasiemką.

    Czasami na wyświetlaczu zaczynają się pojawiać dziwne znaki i przewijają się od lewej do prawej, program leci dalej wszystko działa natomiast wyświetlacz nie reaguje już na polecenia CLS które są w programie. Dzieje się to sporadycznie, wykonane zostały 4 sztuki urządzenia, przy czym jedno zdaje się być mniej awaryjne niż pozostałe, nie wiem co może mieć na to wpływ.

    Przebudowałem już program który był oparty na podprogramach, wrzuciłem wszystko do głównej pętli, kombinowałem z rozmiarami stosu, kondensator 100nF ceramiczny bezpośrednio na płytce wyświetlacza też nie pomaga, przeglądnąłem forum pod kątem takiego zachowania i szczerze powiem nie mam już pomysłów co z tym zrobić, może ktoś przeanalizuje to wszystko i będzie potrafił mi pomóc w temacie jak usunąć tą dolegliwość? Model wyświetlacza to LCD-AC-2002A-DIW W/KK-E6 C

    W razie pytań proszę o posty.

    ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD

    Listing programu(modyfikowany kilkukrotnie):

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0 15
  • Semicon
  • #2 26 Lut 2013 14:55
    lukashb
    Poziom 39  

    Ja bym polecał wywalić standardową obsługę LCD bez RW na pełną z tą biblioteką.

    Code:

    $lib "lcd4busy.lib"

    Const _lcdport = Portd

    Const _lcdddr = Ddrd

    Const _lcdin = Pind

    Const _lcd_e = 3

    Const _lcd_rw = 2

    Const _lcd_rs = 1

    Config Lcd = 20 * 2
    Waitms 1000

    Initlcd

    Cursor Off

    Miałem podobny problem. Zresztą może 2 tematy niżej, tyle, że z VFD. Raz na jakiś czas, latały po nim śmieci, wieszał się. Po zastosowaniu tego kawałka kodu, jak ręką odjął. Poza tym, wydaje mi się, że Bascom się nie nadaje do tego typu rzeczy. Nie mam zaufania co do działania tak rozrośniętych programów, zawsze albo się coś wyłoży, albo właśnie LCDki ześwirują choć wszystko zasilone jak kol. Dondu każe. Pisałem trochę w C na AVRy i wiele projektów po prostu chodzi od kopa tam. Czy to I2C czy 1Wire, czy Uart bądź LCD. Nic się nie krzaczy. A tu co jakiś czas mam taki problem. Sprawdź tą bibliotekę.

    0
  • #3 26 Lut 2013 15:05
    JStan
    Poziom 16  

    Dzięki za odpowiedź, czytam właśnie na temat tej biblioteki, szkoda tylko że nie wiedziałem o niej wcześniej i o tym że taki problem wystąpi, w tej chwili niestety zmiany będą wymagały zmian w schemacie(podłączenie RW)

    0
  • Semicon
  • Pomocny post
    #4 26 Lut 2013 20:46
    dezydery
    Poziom 14  

    Witam

    1.Diody D1 D2 1n4148 od elektrozaworów w obecnym połączeniu nie spełniają swojej roli, chyba że zostaną zamienione na diody zenera.
    2.Nieodfiltrowane zasilanie mikrokontrolera, brak chociażby prostego filtru LC na zasilaniu
    3.Nóżki mikrokontrolera nieodsprzęgnięte za wyjątkiem jednej?
    4.Brak kondensatora na nóżce reset
    5.Płytka pcb jest do przeprojektowania
    - C2,C4,C1jak najbliżej nóżek procesora
    -ścieżka prowadząca zasilanie 5V jest cienka jak włos i ma dużą impedancję
    - ścieżka masy do procesora jest niepoprawna
    - ścieżka masy i zasilania do złącza wyświetlacza cienka i nieodsprzęgnięta
    - jaki sens ma transoptor OK1 skoro po obu stronach to samo nie separowane napięcie?

    Widzę, że układ steruje poważnym urządzeniem, jeżeli będzie badany w laboratorium kompatybilności elektromagnetycznej, to z wielkim prawdopodobieństwem tych badań nie przejdzie w tej formie.

    0
  • Pomocny post
    #6 26 Lut 2013 22:05
    dondu
    Moderator Mikrokontrolery Projektowanie

    1. Jeżeli rozdzielasz sygnały transoptorami, to masy także. Niestety na schemacie nie mamy pewności, że masy są rozdzielone, ponieważ są tak samo nazwane.

    2. OK1 jak wspomniał kol wyżej - prosimy o wyjaśnienie, czy to napięcie +5V zasilające wewnętrzny LED jest tym samym co napięcie zasilające mikrokontroler?

    3. A propos zasilania mikrokontrolera kondensatorów i ich rozmieszczenia na PCB:
    http://mikrokontrolery.blogspot.com/2011/04/zasilanie-mikrokontrolera.html

    4. Eagle ma funkcję eksportu do pliku graficznego - chyba z niej nie korzystałeś, bo literki są słabo czytelne:
    http://mikrokontrolery.blogspot.com/2011/03/e...-and-tricks.html#eksport_do_pliku_graficznego

    5. Czy nieużywane piny mikrokontrolera są odpowiednio zaprogramowane?

    Pomysły "na odległość":
    - można próbować dodać koralik ferrytowy na taśmie LCD i jego zasilaniu,
    - w ostateczności spróbować ekranować taśmę i zasilanie LCD, nawet prowizorycznie.

    Szukanie przyczyny i rozwiązania w takim przypadku nie jest łatwe :(

    0
  • #7 27 Lut 2013 08:35
    JStan
    Poziom 16  

    Dziękuję za odpowiedzi, na początku chciałem nadmienić że budowana maszyna to prototyp i co więcej robiona trochę na szybko więc zdaję sobie sprawę że są niedociągnięcia ale za wszystkie wasze uwagi bardzo dziękuję i oczywiście postaram się wyeliminować błędy.

    W odpowiedzi na pytania:

    Jeśli chodzi o bibliotekę lcd4busy musiałbym użyć cały portd tylko dla wyświetlacza tak? Mianowicie linie Db4-7 oraz E, RS, RW? Obwód może zostać przeprojektowany jednakże gdzieś tu na elektrodzie wczoraj wyczytałem że zajęty jest cały port D czyli tej jednej ostatniej końcówki już nie wykorzystam, braknie mi jej wówczas...

    Diody 1N4148-> napewno chodziło o zenera czy o schottkyego? Użyjuę czegoś innego niż 1N4148.
    Filtr LC na zasilaniu, konkretnie może mała podpowiedź na co zwrócić uwagę przy doborze elementów?
    Nieodsprzęgnięte nóżki uC chodzi o nóżki zasilające? Nie używam ADC więc nie dawałem nic na AVCC jeśli o to chodzi chociaż wg noty atmela powinno się faktycznie dać..
    Brak 100nF na nózce reset - owszem do poprawy.

    C2,C4 są owszem daleko ale tak właśnie pasowało w układzie płytki je ułożyć, kwestia przesadzonego być może pedantyzmu, C1 owszem jak najbliżej
    Ścieżka +5V do pogrubienia
    Masa, masą jest całe wolne pole, zostawiłem niepodłączone wyspy chociaż można je usunąć aczkolwiek nie przeszkadzają. Faktem jest że masa idzie okrężną drogą, ale nie bardzo był sposób poprowadzić ją inaczej... temat do popracowania nad nim, tak samo z zasilaniem LCD. Przy okazji przeniosę złączę LCD na drugą stronę i nie będę musiał już krosować tasiemki tak jak teraz.
    Z tym transoptorem faktycznie, mój błąd, użyję tutaj napięcia 24V idącego na pedał nożny, przewód idący do pedału i tak jest ekranowany ale i tak warto użyć optoizolacji.

    Rozlana masa jest podłączona do masy, z tym że masa jest wspólna dla obydwóch napięć, nie wiem czy jest sens ją separować gdyż i tak zasilacze bezpośrednio przy ich złączach mają połączone V- z PE więc już się robi jedna masa. Owszem napięcie zasilające OK1 jest tym samym +5V co zasilające uC, użyję tu +24V ale jak mówiłem masy są wspólne, czy to aż tak przeszkadza??

    Stronkę o zasilaniu przejrzałem, prawdę mówiąc zawsze staram się robić z nadwyżką takie sprawy jak filtrowanie napięcia, od tej pory jednak zastosuje się bardziej rygorystycznie do podanych wytycznych. Podobne układy z programem w Bascomie i LCD pracowały już u mnie w samochodzie jako wyświetlacze parametrów pracy i zdziwiony jestem gdyż nic takiego się nie działo, ale na to jak widać nie ma reguły.

    Owszem znam na tyle Eagla ale akurat zrzuty ekranu zrobiłem screenshooterem, już zamieszczam dokładne exporty.

    Nie ma w tym projekcie nieużywanych portów uC, wszystkie są wykorzystane.

    I na koniec, też pomyślałem że problemem może być sama tasiemka choć krótka, to obok niej przesuwa się prowadnica siłownika tamponu, umieściłem na tejże prowadnicy magnes neodymowy aby sprawdzić czy coś się może zaindukuje w tasiemce i lcd zgłupieje, nie zaobserwowałem żadnych niepokojących objawów ale kto wie czy nie zaekranuje tej tasiemki w kolejnym egzemplarzu.

    Czyli błędy które popełniłem oczywiście wyeliminuje, sam układ jest testowany w 4 maszynach i niema żadnych problemów poza okresowym zgłupieniem wyświetlacza, zastanawiam się tylko czy faktycznie pomimo iż wyeliminuje błędy nie użyć biblioteki o której wspomniał kolega Łukasz, tylko mam wątpliwości o których powyżej.

    Pozdrawiam
    Janek

    0
  • #8 27 Lut 2013 08:38
    avatar
    Poziom 35  

    Miałem podobny problem z wyswietlaczami ktore pod wplywem zaklocen wieszały się - problem pojawiał sie tylko na duzych gabarytowo LCDikach 1 linijkowe czy 2x16 znakowe ale 60mm nie mialy takiego buga - zasilanie masy itd u mnie wykluczylem. Problem pozostał nieroziazany - tj fizyczny reset lcdika pomagal

    0
  • #9 27 Lut 2013 09:13
    JStan
    Poziom 16  

    ATmega8 Bascom - Sterownik tampoprintu wyświetlanie na LCD

    udało się właśnie zrobić fotke jak to wygląda, taki napis przewija się na wyświetlaczu.

    0
  • #10 28 Lut 2013 10:29
    JStan
    Poziom 16  

    Problem rozwiązany(co nie znaczy że w kolejnych wersjach nie poprawię tego o czym pisaliśmy), póki co w bieżących prototypach pomogła inicjalizacja LCD przed każdym wyświetleniem głównego ekranu, czyli polecenie Initlcd.

    0
  • #11 28 Lut 2013 15:17
    lukashb
    Poziom 39  

    Czy ja wiem, czy taki rozwiązany? Raczej zatuszowany. Prędzej, czy później (oby wcale) nie wróciło to ze zdwojoną siłą, i procesor się zawiesi robiąc komuś krzywdę bądź wyrządzi szkody materialne (uszkodzi siłowniki itp od zawieszenia i nie kontrolowanego machania pinami). Ja bym szukał dalej. Coś musi być skoro LCD szaleje. Masz oscyloskop? Sprawdź tętnienia na linii 5V jak wyglądają. Zapewne sieczka.

    0
  • #12 28 Lut 2013 22:31
    boss87
    Poziom 11  

    Ja bym zaproponował wymianę lcd na inny model i obserwację

    0
  • #13 01 Mar 2013 10:57
    JStan
    Poziom 16  

    Szczerze uważam mi się, że płytka jest pomimo błędów na tyle dobrze zaprojektowana iż innych problemów nie będzie, tak czy siak oscyloskop mamy i w wolnej chwili sprawdzę przebiegi, właśnie modyfikuję obwód wg zaleceń. Dziwne jest dla mnie że jedna z maszyn bardzo rzadko się wykrzaczała na LCD a pozostałe 3 w miarę często, zamówiłem wyświetlacz OLED i spróbuję go użyć zamiast tych.

    0
  • Pomocny post
    #14 04 Mar 2013 20:36
    matekogon
    Poziom 22  

    Kolego JStan u mnie był podobny przypadek z tym że po paru godzinach wyświetlacz się resetował albo jakieś dziadostwo się pokazywało a sterownik w tym czasie normalnie pracował. Rozwiązanie jakie mi pomogło i trzymam się tego do teraz ,że jeśli zasilam sterownik z AC to jeden mostek prostowniczy dla elektroniki a drugi do obwodów wykonawczych. Od tego czasu już nie miałem takiego problemu.

    0
  • #15 07 Mar 2013 19:14
    sieger
    Poziom 24  

    Skoro masz dostęp do programu spróbuj posterować osobno każde z urządzeń wyjściowych, żeby skorelować zakłócenia z konkretną sytuacją. Czy wykluczyłeś sytuację gdy jest wahnięcie na zasilaniu LCD lub uC ? Rozumiem, że oprócz zakłóceń w wyświetlanych komunikatach nie ma zaburzeń w samej pracy elementów wykonawczych i zbieraniu danych z sensorów?

    0
  • #16 12 Maj 2013 02:44
    JStan
    Poziom 16  

    Zastosuje się do uwag kolegi mategogon na przyszłość, chodzi mi o ten mostek prostowniczy, póki co przerobiłem obwód i kolejna seria 10 urządzeń działa już bez zastrzeżeń, w programie jest też inicjalizacja lcd przed każdym wysłaniem danych, żadnych problemów już niema, urządzenie dostało CE i sprawuje się świetnie, apropo tampoprint konkurencyjnej firmy nie będę pisał jakiej kosztuje 5 razy tyle ile nasz wynalazek a nasz jest o niebo lepszy od tamtego, chwalą go sami ludzie z produkcji i zabijają się o stołki do pracy przy nim. Dzięki koledzy za pomoc!!
    Pozdrawiam
    Janek

    0