eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Atmega i podciąganie wejść
Ilość wypowiedzi w tym wątku: 13

  • 11. Data: 2014-05-02 16:24:11
    Temat: Re: Atmega i podciąganie wejść
    Od: sundayman <s...@p...onet.pl>


    > Jak możesz, to napisz coś więcej o tym zdarzeniu. Sam używam
    > wewnętrznego podciągania (na razie bez problemów) i mnie nastraszyłeś.

    Swego czasu (coś z rok temu) opisywałem. W skrócie to tak ;

    sterownik (wtedy miał tylko wewnętrzne podciąganie) zainstalowany na
    ulicy, w PLASTYKOWEJ dużej skrzyni instalacyjnej przy torach
    tramwajowych. No jakby ta skrzynia była metalowa, to pewnie by się to
    nie zdarzyło...

    Sam sterownik też jest w obudowie plastykowej - no więc ekranowania
    zasadniczo brak.

    Była burza - w pobliżu - chyba jakieś kilkadziesiąt metrów wg. ustaleń -
    przywalił piorun (nie bezpośrednio w urządzenie - normalnie w
    piorunochron na pobliskim budynku chyba) - no i zaczęły się dziać cuda -
    jak gdyby jakiś duch zaczął obsługiwać klawiaturę sterownika :)

    Okazało się, po dochodzeniu, że impuls elektromagnetyczny spowodował, że
    w MCU (atmega128) "odłączyło" się właśnie podciąganie klawiatury. Wtedy
    linie wejściowe "zawisły w powietrzu", no zaczęło się
    losowe uruchamianie klawiszy - bo sam program dział nadal poprawnie.


    Dało się to ustalić, bo sterownik ma rejestr zdarzeń, i można było
    odczytać, co się dokładnie działo - od pewnej chwili po prostu było
    widać , że są naciskane klawisze, chociaż nikt tego nie robił :)

    To był tylko jeden taki przypadek - ale skończyło się na dość poważnym
    problemie, ponieważ "duch elektrostatyczny", losowo naciskając te
    "wirtualne klawisze" zdołał wykonać kilka całkiem niepożądanych czynności :)

    Żeby zapobiec temu na przyszłość, zastosowałem zabezpieczenie programowe
    (hasło przed wejściem w menu) + rezystory zewnętrzne.

    Dodatkowo zwracam uwagę na konieczność (w poważniejszych zastosowaniach)
    nadmiarowego zapisywania danych w pamięci ERAM !
    Niestety, nie można mieć specjalnie zaufania do tej pamięci i trzymanie
    tam istotnych parametrów tak "po prostu" może skończyć się kłopotem.

    Jak się to robi ?

    Każdą daną zapisuje się np. w 5 komórkach.
    Następnie przy każdym odczycie (albo nawet okresowo po prostu)
    sprawdzamy, że wszystkie 5 komórek ma tą samą daną. Jeśli nie -
    odczytujemy, która wartość jest w największej ilości komórek.
    Czyli np. zapisaliśmy pierwotnie liczbę 5.

    Podczas odczytu mamy w ERAM;
    komórka 1 = 5
    komórka 2 = 184
    komórka 3 = 5
    komórka 4 = 5
    komórka 5 = 5

    Wtedy wiadomo, że "5" jest zapisane najwięcej razy - więc zapisujemy
    ponownie wszystkie komórki tą wartością.

    Oczywiście - może się teoretycznie zdarzyć, że nie da się tego zrobić,
    bo np. będzie tak;
    komórka 1 = 5
    komórka 2 = 184
    komórka 3 = 5
    komórka 4 = 2
    komórka 5 = 2

    I wtedy dupa blada :) No ale wtedy wiadomo, że coś bardzo poważnie się
    wysypało i trzeba alarmowo wyłączyć cały interes na wszelki wypadek.
    W praktyce aż taka wywałka się nie zdarza raczej, i to w mocno
    nieprzyjaznym środowisku (silne zakłócenia).

    Osobiście stosuję zapis w 10 komórkach, rzecz jasna tylko chodzi o
    najważniejsze dane, których przekłamanie może spowodować poważne kłopoty.





  • 12. Data: 2014-05-02 19:34:19
    Temat: Re: Atmega i podciąganie wejść
    Od: "Jan" <k...@p...net>



    Użytkownik "sundayman" napisał w wiadomości grup
    dyskusyjnych:lk0a19$n8f$...@n...news.atman.pl...


    > Jak możesz, to napisz coś więcej o tym zdarzeniu. Sam używam
    > wewnętrznego podciągania (na razie bez problemów) i mnie nastraszyłeś.

    Swego czasu (coś z rok temu) opisywałem. W skrócie to tak ;

    sterownik (wtedy miał tylko wewnętrzne podciąganie) zainstalowany na
    ulicy, w PLASTYKOWEJ dużej skrzyni instalacyjnej przy torach
    tramwajowych. No jakby ta skrzynia była metalowa, to pewnie by się to
    nie zdarzyło...

    Sam sterownik też jest w obudowie plastykowej - no więc ekranowania
    zasadniczo brak.

    Była burza - w pobliżu - chyba jakieś kilkadziesiąt metrów wg. ustaleń -
    przywalił piorun (nie bezpośrednio w urządzenie - normalnie w
    piorunochron na pobliskim budynku chyba) - no i zaczęły się dziać cuda -
    jak gdyby jakiś duch zaczął obsługiwać klawiaturę sterownika :)

    Okazało się, po dochodzeniu, że impuls elektromagnetyczny spowodował, że
    w MCU (atmega128) "odłączyło" się właśnie podciąganie klawiatury. Wtedy
    linie wejściowe "zawisły w powietrzu", no zaczęło się
    losowe uruchamianie klawiszy - bo sam program dział nadal poprawnie.


    Dało się to ustalić, bo sterownik ma rejestr zdarzeń, i można było
    odczytać, co się dokładnie działo - od pewnej chwili po prostu było
    widać , że są naciskane klawisze, chociaż nikt tego nie robił :)

    To był tylko jeden taki przypadek - ale skończyło się na dość poważnym
    problemie, ponieważ "duch elektrostatyczny", losowo naciskając te
    "wirtualne klawisze" zdołał wykonać kilka całkiem niepożądanych czynności :)

    Żeby zapobiec temu na przyszłość, zastosowałem zabezpieczenie programowe
    (hasło przed wejściem w menu) + rezystory zewnętrzne.

    Dodatkowo zwracam uwagę na konieczność (w poważniejszych zastosowaniach)
    nadmiarowego zapisywania danych w pamięci ERAM !
    Niestety, nie można mieć specjalnie zaufania do tej pamięci i trzymanie
    tam istotnych parametrów tak "po prostu" może skończyć się kłopotem.

    Jak się to robi ?

    Każdą daną zapisuje się np. w 5 komórkach.
    Następnie przy każdym odczycie (albo nawet okresowo po prostu)
    sprawdzamy, że wszystkie 5 komórek ma tą samą daną. Jeśli nie -
    odczytujemy, która wartość jest w największej ilości komórek.
    Czyli np. zapisaliśmy pierwotnie liczbę 5.

    Podczas odczytu mamy w ERAM;
    komórka 1 = 5
    komórka 2 = 184
    komórka 3 = 5
    komórka 4 = 5
    komórka 5 = 5

    Wtedy wiadomo, że "5" jest zapisane najwięcej razy - więc zapisujemy
    ponownie wszystkie komórki tą wartością.

    Oczywiście - może się teoretycznie zdarzyć, że nie da się tego zrobić,
    bo np. będzie tak;
    komórka 1 = 5
    komórka 2 = 184
    komórka 3 = 5
    komórka 4 = 2
    komórka 5 = 2

    I wtedy dupa blada :) No ale wtedy wiadomo, że coś bardzo poważnie się
    wysypało i trzeba alarmowo wyłączyć cały interes na wszelki wypadek.
    W praktyce aż taka wywałka się nie zdarza raczej, i to w mocno
    nieprzyjaznym środowisku (silne zakłócenia).

    Osobiście stosuję zapis w 10 komórkach, rzecz jasna tylko chodzi o
    najważniejsze dane, których przekłamanie może spowodować poważne kłopoty.



    Perfidna sytuacja.
    Swojego czasu miałem wejścia PIC zwierane na przekaźniku odległym o 5-6
    metrów. Kabel działał jak antena a PIC:
    1. dla zwolenników Pawłowa - jak radio
    2. dla zwolenników prawdy historycznej: jak wykrywacz burz.
    Oczywiście PIC wariował przy każdej burzy.



  • 13. Data: 2014-05-08 15:05:31
    Temat: Re: Atmega i podciąganie wejść
    Od: g...@s...invalid (Adam Wysocki)

    sundayman <s...@p...onet.pl> wrote:

    > To był tylko jeden taki przypadek

    Ale wewnętrzny pullup padł na amen, czy wyłączył się do najbliższego
    resetu (prądowego)?

    > Osobiście stosuję zapis w 10 komórkach, rzecz jasna tylko chodzi o
    > najważniejsze dane, których przekłamanie może spowodować poważne kłopoty.

    Może dla pewności XOR-uj te dane z czymś (w każdej komórce z czymś
    innym), inaczej np. błędne ustawienie któregoś bitu w kilku komórkach
    jednocześnie będzie niezauważone.

    --
    SELECT finger FROM hand WHERE id = 3;
    http://www.chmurka.net/

strony : 1 . [ 2 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: