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

ATmega16 - Zabezpieczenie procka przed uszkodzeniem

marrog 14 Wrz 2014 19:30 2157 14
  • #1 13960568
    marrog
    Poziom 22  
    Witam

    Nie wiem czy w dobrym dziale dałem ten temat, jeśli nie to z góry przepraszam.

    Jakiś czas temu zrobiłem (chyba ze dwa lata temu) sterownik do pieca na ATmega16, ma wszystkie funkcje jakie sterownik powinien posiadać (sterowanie obrotami dmuchawy itd.)
    Problem jaki się pojawia to w zasadzie druga awaria, polegająca na uszkodzeniu (najprawdopodobniej uszkodzeniu) samej kości ATmega.
    Pierwszy raz zaczął fiksować przy pomiarze temperatury - pastylka DS18B20, myślałem, że uszkodzeniu uległ czujnik, ale czujnik okazał się dobry, podstawiłem nowy procek i sterownik zaczął poprawnie działać - to było ponad rok temu.
    Teraz sterownik zaczął wychodzić z jednej funkcji, tak jakby startuje program i zaraz wychodzi.
    Próbowałem dzisiaj zaprogramować go ponownie, oczywiście idzie wgrać nowy program, wszystko z poziomu menu działa, tzn zapisuje nastawy, pozwala wejść w samo menu, pozwala zatrzymać dmuchawę (realizuję to przy pomocy procka), lecz jak daje mu start pieca to po około 2 sek. wszystko się zatrzymuje.
    Nie pomaga wyczyszczenie FLASH i ponowne wgranie, podstawiłem nową kość i sterownik działa.
    Teraz strona elektroniki, zasilanie - std. Trafo TS5/002, dalej mostek i elektrolit 2200µF, 100nF ceramika, 7805, 100nF i 220µF, czyli std aplikacja na stabilizatorze LM78xx.
    Rezonator - kwarc 8MHz.
    Elementy wykonawcze wykonane przy pomocy MOC3020+BT135 oraz MOC3041+BT135 (z tego co kojarzę to układ gasikowy też jest - musiałbym zerknąć w schemat na drugim kompie.)

    Czy jest jakaś opcja zabezpieczenie dodatkowo samego procka? Czy mam taki fart żę te procki jakoś same z siebie siadają??
    Dodam, że mam sterownik Vacuum na ATmega 8 i tam nie było jeszcze awarii.
  • #2 13960628
    dondu
    Moderator na urlopie...
    marrog napisał:
    Teraz strona elektroniki, zasilanie - std. Trafo TS5/002, dalej mostek i elektrolit 2200µF, 100nF ceramika, 7805, 100nF i 220µF, czyli std aplikacja na stabilizatorze LM78xx.
    Rezonator - kwarc 8MHz.
    Elementy wykonawcze wykonane przy pomocy MOC3020+BT135 oraz MOC3041+BT135 (z tego co kojarzę to układ gasikowy też jest - musiałbym zerknąć w schemat na drugim kompie.)

    ... nam także go pokaż.
  • #3 13960711
    marrog
    Poziom 22  
    Witam

    W załączniku przesyłam schemat.

    Na schemacie mam C8- 100nF filtrujący napięcie zasilania uP, ale umieściłem go trochę dalej, myślę, że jak wlutuję dodatkowe 100nF od spodu bezpośrednio między piny 11-12, nie zaszkodzi.
    Dodatkowo pod AREF 100nF i do masy, AGND do masy, zaś AVCC zasilę jak zwykłe VCC czyli podepnę 100nF.
    Może tutaj był błąd, że wisiały w powietrzu??
    Poprawki naniosłem na schemat.
    Nie wiem tylko jak z pinem Reset, czy podpicie pod +5V przez 10kΩ, nie będzie zakłócało złącza programującego??
  • #4 13961622
    BlueDraco
    Specjalista - Mikrokontrolery
    Diody optotriaków nie mają szans zaświecić, więc triaki nigdy się nie włączą. Rezystor 10k na RESET w niczym nie przeszkodzi. Tak duże pojemności kondensatorów (2200u i 220u) są zbędne, chociaż pewnie w niczym nie przeszkodzą.

    Co do samego sposobu rysowania schematu - nie ma sensu "łączenie" zasilanie w szynę razem z sygnałami portów - to tylko zaciemnia obraz.
  • #5 13961897
    marrog
    Poziom 22  
    Triaki się włączają, bo układ działa ponad 2 lata już. Dla MOC3042 prą wynosi ok 10mA.
    Tak jak pisałem, problem nie polega na tym, że układ nie działa, tylko, że po jakimś czasie procek tak jakby uległ uszkodzeniu, co prawda działa, ale nie do końca wszystko. Jak wyżej, raz problem polegał na odczytywaniu temp. Ostatnio na wykonywaniu części głównej programu, czyli np. uruchamiam piec, dmuchawa startuje, aż do momentu gdy temp osiąga 35 st. załącza pompę, w momencie osiągnięcia temp. zadanej np 40 st, wychodzi ze stanu rozruch i przechodzi do normalnej pracy, a teraz niby wchodzi do rozpalania i po sek. już kończy całą pracę, nawet nie wchodzi w dalszą część programu.
    Co ciekawe, czyta stany przycisków, odczytuje temp. z DS-a, mogę zmieniać nastawy, bez sterowania temperaturą, uruchomi mi pompę gdy temp osiągnie temp załączenia pompy.
    Podmiana uP i zaprogramowanie eliminuje problem i sterownik działa normalnie.
  • #6 13962072
    BlueDraco
    Specjalista - Mikrokontrolery
    Fakt, włączają się, bo masz plus na dole - kolejny przykład, jak nie należy rysować schematów.
    Zabezpiecz linię danych i ew. zasilanie czujnika temperatury diodą Zenera na 5.6 V. Może też się przydać rezystor szeregowy rzędu 47R. Prawdopodobnie gdzieś wchodzi Ci do układu wysokie napięcie, np. z powodu złego poprowadzenia mas.
  • #8 13962347
    BlueDraco
    Specjalista - Mikrokontrolery
    Na moje oko masz bez sensu wylany plan masy wokół wysokiego napięcia, czyli tam, gdzie jej w ogóle nie powinno być. Ponieważ nie jest ona tam do niczego potrzebna, proponuję odciąć zbędną wylewkę masy pilnikiem.
  • #9 13962434
    marrog
    Poziom 22  
    Rozumiem, żę chodzi Co to co zaznaczyłem na żółty kolor.
    Czy Tobie chodzi o przecięcie jej, czy o całkowite wyeliminowanie (to co ma kolor żółty)?Czy wystarczy jak zrobię "przerwę" między polami?
    Czy to może powodować właśnie jakieś przebicia procka??

    ATmega16 - Zabezpieczenie procka przed uszkodzeniem

    Pytanie może odbiega od tematu, ale zadam.
    Może lepszym rozwiązaniem jest zrobienie osobno zasilacza na osobnej PCB i doprowadzenie napięcia przewodami?
  • #10 13962551
    BlueDraco
    Specjalista - Mikrokontrolery
    Nie, wystarczy podzielić płytkę na część wysoko- i niskonapięciową i nie mieszać jednej z drugą (np. lewa i prawa połowa płytki). Okrakiem pomiędzy nimi powinny siedzieć transoptory.
  • #11 13962561
    marrog
    Poziom 22  
    No rozumiem.
    Nie zwróciłem na to uwagi przy projektowaniu PCB.
  • #12 13964182
    tehaceole

    Poziom 28  
    Z Twojego opisu stawiałbym raczej na błąd w programie. Masz menu nastaw - czyli korzystasz z eeprom. Jaka jest szansa, że program wpisuje sobie do eeproma jakąś wartość i później korzystając z niej przez to fiksuje? To wyjaśniałoby dlaczego podstawienie nowego procka eliminuje problem na jakiś czas. Oczywiście w swoich rozważaniach zakładam, że fusebit EESAVE masz ustawiony.
  • #13 13964350
    wojekkk
    Poziom 18  
    Nie wiem czy przedmówcy o to chodziło ale program może zapisywać podczas pracy ciągle jakąś zmienna do eepromu i po jakimś czasie zwyczajnie eeprom kończy swoje życie.
  • #14 13964448
    tehaceole

    Poziom 28  
    Faktycznie Kolego wojekkk tego pod uwagę nie wziąłem - wynika to z nawyków co do obsługi eeprom. Ale jak najbardziej masz rację. Ja miałem na myśli raczej jakiś "przypadkowy" zapis do eeprom i później korzystanie z tej zmiennej w programie.
  • #15 13964805
    marrog
    Poziom 22  
    Witam, tak zapisuje wartość do EEPROM, ale zapis odbywa się tylko w przypadku:
    - startu sterownika tzn. rozruch pieca, zapisuje w komórce 13, wartość 1, w razie zaniku napięcia sterownik "wie" że był uruchomiony, oraz w momencie zatrzymania czy ręcznego czy wygaśnięcia w piecu też w tej komórce zapisuję wartość 0.
    Poza nastawami nic innego nie wpisuję.
    Natomiast odczytuję dane z EEPROM.
    Tylko że po wgraniu zawartości pamięci też procek nie rusza, może inaczej, mogę wykasować EEPROM i ręcznie podać mu nastawy zapisując je w pamięci, ale to i tak nie prowadzi do uruchomienia sterownika aby ten poprawnie działał.
    Natomiast nowy procek i wpiszę te same nastawy i jest ok.
REKLAMA