-
Data: 2014-05-02 16:24:11
Temat: Re: Atmega i podciąganie wejść
Od: sundayman <s...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
> 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.
Następne wpisy z tego wątku
- 02.05.14 19:34 Jan
- 08.05.14 15:05 Adam Wysocki
Najnowsze wątki z tej grupy
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=