-
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
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
- HDMI
- Re: Mala autonomiczna kamera monitoringu
- Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- skąd my to znamy
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
Najnowsze wątki
- 2024-06-27 Re: Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-06-27 A co mnie to koooorwa obchodzi?
- 2024-06-28 nawigacja satelitarna
- 2024-06-28 SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- 2024-06-27 położyłem kafelki
- 2024-06-28 Łódź => International Freight Forwarder <=
- 2024-06-28 Łódź => Spedytor Międzynarodowy <=
- 2024-06-28 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-06-28 Sopot => Team Leader E-Commerce for Foreign Markets <=
- 2024-06-28 Warszawa => Senior React Native Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Software .Net Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Programista Full Stack .Net <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=