Czy to naprawdę zły pomysł, aby pozostawić swobodny pin wejściowy MCU?

28

Słyszałem, że pozostawienie pinu unoszącego się na MCU, gdy jest skonfigurowane jako wejście (w porównaniu z domyślnym wyjściem), jest złe dla pinu i może ostatecznie spowodować jego przedwczesne uszkodzenie. Czy to prawda? NB w moim przypadku pin pływa gdzieś pomiędzy 0,3 V a 1,3 V z powodu przychodzącego sygnału wideo. Czasami spada to w strefie niczyją od 0,8 V do 2,0 V podczas pracy z 3,3 V.

Thomas O
źródło
1
Czy sprawdziłeś arkusz danych i dokumentację rodziny MCU? Powinny one mieć dość konkretne odpowiedzi i można zobaczyć, w jaki sposób szpilki są implementowane wewnętrznie.
XTL
@XTL, przejrzałem je, ale nie znalazłem żadnych odniesień do tego. Mówią, że pływające piny mogą wchodzić w niezdefiniowane stany, ale nie wspominają, czy może to powodować problemy.
Thomas O
Istnieje różnica między pływającym wejściem cyfrowym a wejściem zdefiniowanym jako analogowe. Wygląda na to, że to wejście analogowe.
Martin
@Martin Nie jestem w stanie uczynić pina wejściem analogowym. Mam wycinek czasowy ~ 125ns dla każdego piksela w filmie (zegar instrukcji 25ns), więc nie mogę wydać ani jednej nanosekundy więcej.
Thomas O
2
Co MCU używasz, który domyślnie wszystkie szpilki wyjście ? To brzmi jak przepis na katastrofę.
Connor Wolf,

Odpowiedzi:

31

Problem:
Pozostawienie pinu skonfigurowanego jako pływające wejście jest niebezpieczne tylko dlatego, że nie możesz być pewien stanu pinu. Jak już wspomniałeś, z powodu twojego obwodu twój pin był czasem NISKI, a czasem na ziemi niczyjej lub czasami mógł przejść do WYSOKIEJ.

Wynik:
Zasadniczo, zmiennoprzecinkowe wejście zdecydowanie spowoduje nieprawidłowe działanie układu lub nieprzewidziane zachowanie. Zauważyłem, że niektóre żetony zamarzły, po prostu przesuwając rękę bliżej tablicy (nie miałem na sobie opaski na rękę ESD), a niektóre zachowywałyby się inaczej przy każdym uruchomieniu płyty.

Dlaczego:
Dzieje się tak po prostu dlatego, że jeśli na tym pinie występuje szum zewnętrzny, pin oscylowałby, co zużywałoby energię, ponieważ bramki logiczne CMOS pobierają energię po przełączeniu stanów.

Rozwiązanie:
Większość dzisiejszych mikrosów ma również wewnętrzne podciągnięcia, co może zapobiec występowaniu takiego zachowania. Inną opcją byłoby skonfigurowanie pinu jako wyjścia, aby nie miało to wpływu na elementy wewnętrzne.

IntelliChick
źródło
3
Jeśli używasz go jako wejścia, z pewnością spowoduje to nieprawidłowe wprowadzanie danych, ale czy naprawdę wpływa na inne części układu i powoduje problemy z uruchamianiem?
endolith
3
Jeśli zignoruję pin i nie użyję go do żadnych urządzeń peryferyjnych, czy nadal będzie to powodować problemy?
Thomas O
@endolith and Thomas - Myślę, że mikeselectricstuff odpowiedział na to za Ciebie! Może to powodować problemy po prostu wprowadzając hałas do innych części systemu. Wiem, że było to spowodowane pływającym pinem, ponieważ jak tylko skonfigurowałem go do wyjścia, problemy zniknęły!
IntelliChick
2
Nie rozumiem, w jaki sposób pływający kawałek metalu może powodować hałas w innych częściach systemu. Z pewnością odbiera hałas, ale jeśli nie zwracasz uwagi na dane wejściowe, nie powinno to mieć znaczenia. Czy problemy z machaniem rękami w pobliżu są naprawdę związane z nieużywanymi pływającymi danymi wejściowymi?
endolith
Pływające szpilki TIL nie są nieszkodliwe. Dzięki IntelliChick i @Yann!
Nick Johnson
13

Jest to trochę gorsze niż bycie w nieznanym stanie lub niepotrzebne przełączanie. Obwody cyfrowe są obecnie głównie typu CMOS, z tranzystorami przełączającymi zarówno wysokie, jak i niskie strony; kiedy mamy wyraźne 1 i 0, są one wyłączone lub nasycone, dwa najbardziej efektywne stany dla tranzystorów, które mają być w środku. Jednak pomiędzy nimi znajduje się obszar działania liniowego; jest stosowany do wzmacniaczy analogowych, ale nie jest tak wydajny jak ekstremalne - co oznacza, że ​​więcej energii marnuje się niż ciepło w tranzystorze. W najgorszym przypadku zarówno tranzystory po stronie wysokiej, jak i niskiej przeciekają w ten sposób (ponieważ pin nie jest w rzeczywistości ani wysoki, ani niski), a następnie mogą się łączyć, powodując zauważalny prąd w układzie, próbując doprowadzić zarówno stan wewnętrzny, jak i wysoki i niski - prawdopodobnie robiąc to samo do następnej bramki w reakcji łańcuchowej. Ciepło może stać się problemem, nawet jeśli nie ma prądu. Rozwiązania IntelliChick nadal obowiązują.

W przypadku pinów podłączonych również do ADC niektóre mikrokontrolery oferują funkcję wyłączania bufora wejściowego cyfrowego, aby zapobiec zarówno temu problemowi, jak i wyciekom zniekształcającym sygnał.

Yann Vernier
źródło
Wejścia nie mają histerezy?
endolith
3
Wejścia wyzwalające Schmitta tak, ale ogólnie nie.
Yann Vernier
6

W praktyce głównym efektem jest zwiększone zużycie energii. Jeśli szpilka faktycznie unosi się w przeciwieństwie do podłączenia do jakiegoś nieokreślonego źródła napięcia, może wystąpić oscylacja, która wraz ze wzrostem poboru mocy może powodować hałas w innych częściach systemu. Każdy pin, który może być użyty do wejścia ADC lub komparatora, będzie miał możliwość odłączenia bufora wejścia cyfrowego, aby uniknąć tego problemu. (DIDR na AVR, ADCON1 / ANSEL na PIC)

mikeselectricstuff
źródło
Co dokładnie oscylowałoby i dlaczego?
endolith
@endolith - Bufor wejściowy na pinie. Pomyśl o buforze odwracającym z kondensatorem między wejściem a wyjściem.
Connor Wolf,
@FakeName: Ale gdzie jest falownik? Gdzie jest wyjście, które wraca do wejścia?
endolith,
3
Zasadniczo wszystkie styki IC IO przechodzą przez bufor (często falownik) na matrycy IC . Ponieważ bufor będzie miał przewody wejściowe i wyjściowe, może wystąpić sprzężenie pojemnościowe między wejściem i wyjściem. Dlatego jeśli wejście ma wystarczająco wysoką impedancję, przejście na wyjściu falownika może spowodować zmianę sygnału wejściowego falownika, powodując zmianę mocy wyjściowej itp.
Connor Wolf
4

Ogólnie złym pomysłem jest pozostawienie pinu wejściowego tak swobodnego, ponieważ może to spowodować:

a) Problemy funkcjonalne - nieznany stan wejściowy, przełączanie (na przykład może wywołać przerwanie z nieokreślonym ISR, który zawiesiłby procesor)

b) Zwiększony pobór mocy - najprawdopodobniej bramka wejściowa jest podobna do falownika CMOS. W tej strukturze, gdy wejście jest wystarczająco daleko od którejkolwiek z szyn (na przykład przy połowie zasilania), znaczny prąd krzyżowy będzie płynął stale.

c) Jeśli przepłynie prąd łączący, zjawisko znane jako wstrzyknięcie gorącego nośnika może faktycznie skrócić żywotność urządzenia. Bramka wejściowa może być zaprojektowana tylko do normalnego przełączania, a nie ciągłego przewodzenia, więc urządzenie może ulec katastroficznej awarii. Należy jednak pamiętać, że aby tak się stało, trzeba ustawić urządzenie w takim stanie na wiele setek godzin w podwyższonej temperaturze.

Zauważ, że a) ib) są prawdziwymi problemami, z którymi najprawdopodobniej się zetkniesz. Co do c) prawdopodobieństwo wystąpienia problemu jest mniej prawdopodobne, ale po co ryzykować?

mazurnifikacja
źródło
3

Dane wejściowe będą przełączane między 0 a 1 w zależności od dowolnego EMI. Nie jestem pewien, czy spowoduje to awarię wejścia, ale spowoduje użycie większej mocy, ponieważ przejścia od 0 do 1 do 0.

Ustaw na wyjście i gotowe.

Robert
źródło
1
Jeśli ustawię go na wyjście 0 lub 1, spowoduje to uziemienie sygnału wideo i spowoduje utratę wideo.
Thomas O
Czy możesz włączyć wewnętrzne podciąganie i zrobić to?
endolith
Włączenie wewnętrznego podciągania powinno być dobre. Chodzi o to, aby wprowadzić go do znanego stanu i pozostawić tam.
Robert
2

Niektóre szybkie urządzenia CMOS mogą zostać zniszczone, jeśli wejście pozostanie zmiennoprzecinkowe, ale najczęstszym problemem, jaki można zaobserwować, jest zwiększone zużycie prądu. W mikrokontrolerach z serii PIC dodatkowy prąd jest rzędu setek mikroamperów na pin pływający. Nie wystarczy, aby spowodować uszkodzenie urządzenia, ale wystarcza, aby poważnie wpłynąć na żywotność baterii w aplikacji, która w przeciwnym razie pobierałaby 5uA. Niektóre układy mają opcje wyłączenia wejścia cyfrowego; jeśli wejście jest wyłączone, może być swobodnie zmienne.

supercat
źródło