Padający eeprom w ATmega8 podczas prz

Witam!

Dziwna sprawa.

Używam komórek 1,2,3 eepromu (0 nie używam). Okazało się, że gdy w okolicy kłapie przekaźnik silnika DC bez gaszenia diodami przepięć, w moim kontrolerze psuje się zawartość eepromu. I to wcale nie komórki 0 ale komórek 1,2,3 w rózny sposób (czasami na ff, czasami pojedyncze bity na 1). Pozostałych komórek nie sprawdzałem.

Zaznaczam, ze eeprom nie jest ani czytany ani zapisywany podczas pracy CPU kiedy silnik jest przełaczany. Jest właczony BOD.

Czy ktoś może mi powiedzieć, że to typowe dla ATmega8 ? A jesli tak, to czy może to miec związek z zasilaniem (choć odfiltrowałem już grubo poza potrzebą) czy tez może z przenoszeniem się przepięc przez piny IO (jest _szansa_ na przedostanie się przepięcia przez blisko ułozone kable, ale brzmi to troche niewiarygodnie).

Reply to
Sebastian Bialy
Loading thread data ...
1) To nie rozumiem czemu nie zgasisz przepięć diodą za 5 czy 10groszy. Wypadało by to zrobić bo przepięcia mogą ci pewnego dnia uwalić coś więcej niż zawartość EEPROMu 2) Nie powiedziałeś wielu ważnych rzeczy: Czy uC sie resetuje przy kłapnięciu przekaźnika? Obstawiam że tak. 3) Filtrowanie masz za słabe skoro ci sie EEPROM psuje. Chyba że programowo ci sie psuje czyli piszesz tam coś innego niż sądzisz. Wyeliminowałeś tą ewentualność?

CosteC

Reply to
CosteC

Użytkownik Sebastian Bialy napisał:

Mam do ciebie Pytanko. Czy to co się w EEprom przestawi da się później zapisać jeszcze raz ?

Może w którymś Przerwaniu zapisujesz coś do EEprom zwłaszcza zewnętrznym i jak przełączasz silnik to może te przerwanie właśnie się wywołuje przez zakłócenia.

Reply to
AdelA

Ustaw BROWN-OUT na najwyższe napięcie i sprawdź czy to pomoże. Miałem podobny przypadek i to poskutkowało..

pozdr. józek

Reply to
invalid unparseable

Bo nie mogę chwilowo.

I tak i nie. Różnie. Obstawiam, że na 20 kłapnięc się resetuje (obserwacja własna). Ale nie o resetowanie mi chodzi, tylko o "psucie się eepromu".

Oczywiście, skompilowałem nawet program bez procedur zapisu eeproma. I też się samo kasuje. Co do zasilania niewiele więcej wymysle: masa kondensatorów, 2x stabilizator 7809->78L05->CPU.

Reply to
Sebastian Bialy

Bez problemu.

Przestawiają się bity w eepromie nawet, gdy z programu wywalam zapis do eepromu.

Reply to
Sebastian Bialy

OK, zerkne w wolnej chwili.

Zaznaczam jednak, że nie chce, żeby mi pomogło ;) Ja pytam tylko o to, czy mój przypadek jest jednostkowy, bo nie moge pojąc jak możliwe jest przestawianie się bitów w eepromie podczas przepięć.

Docelowo układ oczywiście będzie z dioda na przekaźniku i inną separacją niż teraz.

Reply to
Sebastian Bialy

Aj

Chodziło mi o to że reset może następować w chwili zapisu to skutecznie daje bzdury.

myśle że dławiki mogą się przydać. Może trzeba poprawić layout. Teraz o konkretach: jaki duży przekaźnik, jak sterowany, i napisz o odległościach przekaźnik uC, przekaźnik - tranzystor(?) sterujący, uC - 78L05

CosteC

Reply to
CosteC

No dobrze, ale w programie nie ma w ogóle polecenia zapisu eeproma ;)

Przekaźnik - nie mam go pod ręką ale standardowy 12V->230V w podstawce. Steruje silnikiem koło 3A prądu na 12V. Przekaźnik był potrzebny aby odseparować obwody zasilające od siebie.

CPU+cała reszta zasilania jest w odległości 20cm od silnika i przez chwile zasilanie cyfrówki leci obok zasilania silnika.

W zasadzie nie ma częsci "wspólnej" galwanicznie połaczonej. Wygląda na indukcję w przewodach.

7809->78L05 znajdują się obok siebie i obok procesora - w granicach 5cm od niego. Kondensatory standardowe, dławiki olałem.

Oczywiście układ w tej chwili jest przebudowany na sterowanie z gaszeniem przepięć (tranzystorowo PWM) i wszystko działa, ale mi chodzi tylko o ewentualną przyczynę takiego zachowania CPU bo zaskoczyło mnie to bardzo. Chciałbym wiedzieć czy nie jest tak przypadkiem, że AVRy nie lubią przepięć indukowanych na pinach, etc.

PS. W tej chwili powrót do układu z kasowaniem eeproma jest już niemożliwy - rozebrałem i poskładalem na nowo. Więc sprawy nie ma, ale ciągle mnie interesuje czemu była.

Reply to
Sebastian Bialy

Troche szkoda, można by dojść czy wina procka czy układu. Jak rozumiem uC steruje tranzystorem a tranzystor przekaźnikiem? A jak nie było silnika to też mu sie tak działo? Trzeba by wytłumić przekaźnik, potem kłapać przekaźnikiem z zewnątrz.. ech. zabawa:)

CosteC

Reply to
CosteC

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.