Atmega i podciąganie wejść

Jest sobie sterownik z Atmegą128. No i do tej pory miałem podłączone przyciski -oczywiście standardowo - do masy, z użyciem wewnętrznych rezystorów podciągających.

Ponieważ kiedyś mi się zdarzyło, że to podciąganie wewnętrzne się samo "odłączyło", to teraz dałem normalne rezystory na zewnątrz. No i teraz pytanie - wyłączyć to podciąganie wewnętrzne, czy zostawić ?

Wydaje się, że można zostawić - no bo z uwagi na dużą rezystancję wejścia to w sumie żadna różnica - wewnątrz są rezystory chyba coś

20-50kOhm (w dataszicie nie widzę ?), na zewnątrz dałem 10k.

No to w sumie wypadkowa będzie kilka kohm. Wyłączenie wewnętrzego pull-up prawie nic nie zmieni.

No ale - może jest jakiś powód, żeby to jednak zrobić ??

Reply to
sundayman
Loading thread data ...

Chodzi mi wyłącznie o stabilność działania urządzenia - koszty poniesione przez naturę, zatrucie powietrza, wody, odpady chemiczne, skażenie promieniotwórcze itp. latają mi koło wentla w tym przypadku :)

Reply to
sundayman

Użytkownik "sundayman" napisał w wiadomości grup dyskusyjnych:lju2s0$ali$ snipped-for-privacy@node1.news.atman.pl...

Jest sobie sterownik z Atmegą128. No i do tej pory miałem podłączone przyciski -oczywiście standardowo - do masy, z użyciem wewnętrznych rezystorów podciągających.

Ponieważ kiedyś mi się zdarzyło, że to podciąganie wewnętrzne się samo "odłączyło", to teraz dałem normalne rezystory na zewnątrz. No i teraz pytanie - wyłączyć to podciąganie wewnętrzne, czy zostawić ?

Wydaje się, że można zostawić - no bo z uwagi na dużą rezystancję wejścia to w sumie żadna różnica - wewnątrz są rezystory chyba coś

20-50kOhm (w dataszicie nie widzę ?), na zewnątrz dałem 10k.

No to w sumie wypadkowa będzie kilka kohm. Wyłączenie wewnętrzego pull-up prawie nic nie zmieni.

No ale - może jest jakiś powód, żeby to jednak zrobić ??

Zależy, jak bardzo masz ekologiczne podejście do życia ;-)

Reply to
Jan
10-47nf na wejscie, 4k7-10k pull up
  • procedura startowa 0,5s _nop-ow aby kondensatory naladowaly sie po wlaczeniu zasilania. Same rezystory w nieprzyjaznym srodowisku to cieniutko.

A jak dasz jeszcze dlawik na wejscie i kilkukrotne probkowanie .... to bedzie super:)

Reply to
leming.show

W dniu 2014-05-01 21:20, snipped-for-privacy@gmail.com pisze:

kondensatory są oczywiście, czas na start też. Z działaniem programu nie ma żadnego problemu - pytam bardziej "na wszelki wypadek"...

Reply to
sundayman

Witam,

W dniu 2014-05-01 21:52, sundayman pisze:

Zwieranie kondensatorów bezpośrednio przez klawisz nie jest korzystne, więc jeszcze szeregowo z klawiszem rezystor 100R... :)

A czym sterujesz? Domowym akwarium? :)

Reply to
Dykus

kondensatorki są 100n, no i już teraz nie dodam szeregowego. Ale z działaniem klawiatury problemu nie ma.

Gooooorzej, dużo gorzej :) Pewną pompą, która jak wypompuje za dużo, to może być bardzo poważny kłopot.

Reply to
sundayman

W dniu 01.05.2014 20:09, sundayman pisze:

Nie wyłączaj wewnętrznego podciągania. Zawsze się może zdarzyć, że zewnętrzny rezystor (albo połączenie między nim a uC) po jakimś czasie padnie (uszkodzenie mechaniczne, zimny lut itp.) i urządzenie zacznie chodzić samo po menu.

Oczywiście tester przy uruchamianiu sterownika powinien sprawdzać prąd zwarciowy wejścia do masy, żeby się upewnić, że zewnętrzny podciąg działa prawidłowo.

Reply to
Zbych

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ś.

R.

Reply to
Robbo

Użytkownik "sundayman" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:lju2s0$ali$ snipped-for-privacy@node1.news.atman.pl...

Ewentualne ESD są powodem, aby między podwieszającym 10k a nogą procesora dać filtr RC (np. 100k i 1..100n) i wtedy raczej wyłączyć podwieszenie w procku. P.G.

Reply to
Piotr Gałka

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.

Reply to
sundayman

Użytkownik "sundayman" napisał w wiadomości grup dyskusyjnych:lk0a19$n8f$ snipped-for-privacy@node2.news.atman.pl...

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.
Reply to
Jan

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

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.

Reply to
Adam Wysocki

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.