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

[ATmega8] - Uszkodzenie procesora po podłączeniu diody do zasilania EEPROM

sq9etc 06 Lip 2016 08:43 1812 5
REKLAMA
  • #1 15789760
    sq9etc
    Poziom 12  
    W swoim projekcie chciałbym zapisywać nastawy do pamięci EEPROM w chwili zaniku zasilania. Planuję skorzystać z metody opisanej przez TMF w książce, czyli zasilanie procesora przez diodę Schottky i kondensator oraz z użyciem komparatora analogowego.
    Swój działający układ na próbę podłączyłem do zasilania przez jakąś starą diodę, prawdopodobnie germanową (multimetr pokazywał napięcie przewodzenia ok. 120 mV). Diody Schottky obecnie nie mam na stanie.
    Nie mam schematu, więc spróbuję opisać.
    Piny zasilania cyfrowego i analogowego są podłączone do +5 V nie bezpośrednio lecz przez tę diodę. Między katodą diody i masą będzie kondensator o pojemności kilkaset mikroF. W układzie jest jeszcze DS18B20, wyświetlacz zgodny z HD44780 i przekaźnik sterowany przez tranzystor i transoptor.
    Bez diody wszystko mi działało. Po podłączeniu diody i pierwszym odpaleniu procesor uległ uszkodzeniu. Nic nie wybuchło, nie było dymu, procek się nie grzeje. Na wyświetlaczu pojawiają się dwa rzędy prostokątów.
    Próbowałem wgrać do ATmegi inny program, ale nie jest wykrywana przez AVRdude, czy MKAVRcCalculator (chciałem sprawdzić, czy się fusebity nie przestawiły).
    Połączenia są w porządku, drugi egzemplarz mikrokontrolera działa w tym układzie bez problemu.
    Co się mogło stać?
    Czy problemem nie jest to, że ATmega jest zasilana napięciem nieco niższym (ok. 4,88 V) od wyświetlacza i DS18B20 (pełne 5 V)?
  • REKLAMA
  • #2 15789884
    BlueDraco
    Specjalista - Mikrokontrolery
    Pokaż schemati ew. zdjęcie. Taka różnica naięć zasilania nie jest przyczyną uszkodzenia. Jeśli chodzi o kondensator, to 10 uF wystarczy, o ile oprogramowanie nie jest jakimś koszmarem.
    Ja np. przy zapisie pojedynczych bajtów przy zaniku zasilania w ogóle nie separuję zasilania uC i reszty.
  • REKLAMA
  • #3 15789930
    sq9etc
    Poziom 12  
    Układ już przywróciłem do stanu bez diody i kondensatora żeby nie zniszczyć kolejnego mikrokontrolera.
    Na zdjęciu za wiele widać nie będzie bo to pająk na płytce stykowej:) Na nowym procku działa prawidłowo (oczywiście bez diody, bo nie chcę ryzykować).
    Schemat jak zrobię to wrzucę.
  • REKLAMA
  • #4 15791982
    arturt134
    Poziom 27  
    Być może padł od ESD, a jedynie przez przypadek zbiegło się to w czasie ze zmianą w układzie. Ewentualnie, jeżeli to pająk, mogłeś zrobić jakieś zwarcie.... Takie rzeczy się zdarzają. Tak jak pisze wcześniej BlueDraco, taka różnica napięć nie spowoduje nic złego.
  • REKLAMA
  • #5 15839521
    sq9etc
    Poziom 12  
    Zaryzykowałem kolejny mikrokontroler i podłączyłem jeszcze raz ten układ detekcji zaniku napięcia zasilającego.
    Tym razem nic się nie stało. Zakładam, że poprzednio to był przypadek.
    Zmodyfikuję program i zobaczę, jaki kondensator wystarczy do zapisania 3 zmiennych uint16 i jednej uint32 do EEPROM-u podczas zaniku napięcia.
  • #6 15909873
    rpal
    Poziom 27  
    osobiście proponowałbym koledze zrobić sobie detektor zasilania na transoptorze i podłączyć go od strony LED do napięcia jeszcze niestabilizowanego, tak aby zanik zasilania był natychmiast wykrywany poprzez jego zmianę na wyjściu kolektora tranzystora w transoptorze. Osiągniesz tym samym pełną izolację galwaniczną od zasilania. Natomiast w części stabilizowanej dałbym w miarę duży kondensator po to aby jeszcze na jego "oparach" napięcia uP był zasilany. Zmiana poziomu napięcia na wyjściu transoptora sterując np. przerwaniem sprzętowym może spokojnie zapisać niezbędne dane w EEPROM. Zmagazynowany prąd w kondesatorze z powodzeniem wystarczy na pracę uP nawet po odcięciu zasilania, zwłaszcza że zanik tego napięcia nastąpi w sytuacji nieprzewidywalnej więc zasadniczy program i tak zostanie przerwany w przypadkowym momencie.
REKLAMA