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

ATmega8-L - Zapis do EEPROM po zaniku zasilania - dziwne zachowanie układu

06 Wrz 2013 23:32 3393 9
  • Poziom 14  
    Witam. Mam problem z układem i nie mogę sobie z tym poradzic. Mam prawie działający układ oparty na ATmega8-L, który ma zapisywac zmienną do pamięci EEPROM po wyłączeniu zasilania. Problem polega na tym, że układ działa tylko wtedy, gdy odłączy się tylko jeden z biegunów zasilacza (np sam plus). Gdy wyłączy się z prądu cały zasilacz, Atmega nie zapisuje danych do pamięci...
    Bardzo proszę o pomoc. Poniżej schemat elektryczny. Kodu programu nie wklejam bo zasada jest prosta: zapis do pamięci odbywa się w przerwaniu na zbocze opadające na wejściu INT1.

    ATmega8-L - Zapis do EEPROM po zaniku zasilania - dziwne zachowanie układu
  • Poziom 39  
    Zasilacz ma sporą pojemność filtrującą i napięcie spada zbyt wolno.
  • Moderator Mikrokontrolery Projektowanie
    Wykorzystanie INT nie jest dobrym pomysłem. Przełączenie następuje przy niskim napięciu (zobacz w nocie progi przełączania z H na L), w efekcie na Vcc napięcie może być za niskie i nie gwarantować wystarczająco długie podtrzymania działania mikrokontrolera. A zapis jednej komórki EEPROM to kilka ms. Pokaż też realizację kodu odpowiedzialnego za zapis.
  • Poziom 20  
    Witaj Brzoza900
    Ja kiedyś zastosowałem taki zapis eeprom tylko trochę inaczej, i działało dobrze.
    Układ był taki. Zasilacz 12V, stabilizator 5V. Napięcie brane przed stabilizatorem poprzez dzielnik napięcia aby uzyskać 4V zabezpieczone diodą Zenera 5V. Reszta jak u Ciebie. Zanik napięcia na zasilaczu powodował natychmiastowy zapis eeprom i zakończenie programu.
  • Moderator na urlopie...
    Ja bym proponował wykorzystanie wbudowanego w procesor AVR komparatora analogowego - wtedy możesz ustalić za pomocą potencjometru, czy potem stałego dzielnika przy jakim napięciu uznamy stan układu za zanik napięcia. A od AC też masz przerwanie.
    Poza tym u Ciebie dodatkowo dioda wprowadza spadek napięcia, w związku z czym napięcie zasilające uC jest nieco niższe, niż to podawane na jego wyprowadzenie INT1, co dodatkowo pogarsza parametry reakcji na zanik zasilania.
  • Poziom 23  
    Ostatnio projektowałem układ, który mierzył czas pracy układu (a raczej jego zasilania). Zamiast korzystać z komparatora skorzystaj z ADC. W zupełności wystarczy wewnętrzne źródło odniesienia napięcia dla ADC. Wynosi ono ok.2,56V z dość sporym marginesem błędu ale w zupełności wystarczy. Wystarczy prosty dzielnik napięcia (na rezystorach o dużych wartościach) tak aby na wyjściu dzielnika mieć ok 2,5V które będzie próbkował i ewentualnie generował przerwanie w którym będziesz badał wartość reprezentującą napięcie. I gdy wartość się zmniejszy to reagujesz zapisem. Oczywiście w czasie wykrycia spadku napięcia wyłączasz wszystkie peryferia i przechodzisz pinami na wejście :)
  • Poziom 23  
    Wolniej może i tak ale dostatecznie szybko aby zastosować je w tego typu rozwiązanie (w moim układzie procesor taktowany jest wewnętrznym generatorem o częstotliwości 1MHz i w zupełności to wystarczy)
  • Moderator Mikrokontrolery Projektowanie
    Rozwiązanie, które proponuje maly_elektronik można oczywiście zastosować, ale obarczone jest niepotrzebnym ryzykiem.
    Dlatego należy zastosować komparator tym bardziej, gdy on sam oraz jego piny są nieużywane.

    Należy jednak pamiętać o tym:

    ATmega8 napisał:
    Analog Comparator
    When entering Idle mode, the Analog Comparator should be disabled if not used. When entering
    ADC Noise Reduction mode, the Analog Comparator should be disabled. In the other sleep
    modes, the Analog Comparator is automatically disabled. However, if the Analog Comparator is
    set up to use the Internal Voltage Reference as input, the Analog Comparator should be disabled
    in all sleep modes. Otherwise, the Internal Voltage Reference will be enabled,
    independent of sleep mode. Refer to “Analog Comparator” on page 193 for details on how to
    configure the Analog Comparator.

    jeżeli w trakcie działania wykorzystujemy tryby snu.