Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ATmega16 - Zabezpieczenie procka przed uszkodzeniem

marrog 14 Sep 2014 19:30 2049 14
IGE-XAO
  • #1
    marrog
    Level 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.
    Kamery 3D Time of Flight - zastosowania w przemyśle. Darmowe szkolenie 16.12.2021r. g. 10.00 Zarejestruj się
  • IGE-XAO
  • #2
    dondu
    Moderator on vacation ...
    marrog wrote:
    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
    marrog
    Level 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??
  • IGE-XAO
  • #4
    BlueDraco
    MCUs specialist
    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
    marrog
    Level 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
    BlueDraco
    MCUs specialist
    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
    BlueDraco
    MCUs specialist
    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
    marrog
    Level 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
    BlueDraco
    MCUs specialist
    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
    marrog
    Level 22  
    No rozumiem.
    Nie zwróciłem na to uwagi przy projektowaniu PCB.
  • #12
    tehaceole

    Level 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
    wojekkk
    Level 17  
    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
    tehaceole

    Level 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
    marrog
    Level 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.