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ć ??
Didn't find your answer? Ask the community — no account required.
S
sundayman
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 :)
J
Jan
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 ;-)
L
leming.show
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:)
S
sundayman
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"...
D
Dykus
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? :)
S
sundayman
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.
Z
Zbych
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.
R
Robbo
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.
P
Piotr Gałka
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.
S
sundayman
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.
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.
J
Jan
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.
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:
dla zwolenników Pawłowa - jak radio
dla zwolenników prawdy historycznej: jak wykrywacz burz. Oczywiście PIC wariował przy każdej burzy.
A
Adam Wysocki
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.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.