Czy bezpiecznie jest połączyć dwa piny MCU bezpośrednio ze sobą?

10

Pracuję nad projektem MSP430, który wymaga ode mnie kierowania wyjścia jednego urządzenia peryferyjnego do wejścia innego urządzenia peryferyjnego. Tak więc mam dwa piny MCU połączone bezpośrednio ze sobą. Wydaje mi się to podejrzane, ponieważ istnieje możliwość błędu programowania powodującego, że oba są wyjściami (być może sprzecznymi). Istnieje również kwestia stanów uruchamiania i programowania.

W najgorszym przypadku, jeśli jeden pin steruje HI, drugi kontroluje LO, piny GPIO mają na ogół znacznie większą zdolność pochłaniania niż zdolność źródła ... więc będzie to trochę jak wzięcie wyjścia HI i zwarcie go do prawie- ziemia. Co jest złe ... ale jakie to złe? Czy może to spowodować uszkodzenie MCU?

Często widzę przykłady w Internecie osób używających Arduinos do zapalania diody LED między dwoma pinami bez rezystora, i nie słyszałem o żadnych historiach o tym, że ktoś smaży cokolwiek poza diodą LED. Najwyraźniej nie chcesz tego robić w produkcie, ale czy producenci zazwyczaj próbują chronić MCU przed przeciążeniem styków GPIO?

Myślenie o tym z perspektywy czasu, umieszczenie rezystora ograniczającego prąd między dwoma pinami, pozwoliłoby uniknąć zmartwień, ale nawet niewielka zmiana sprzętu jest w tym momencie bardzo trudna.

Czy w celu odniesienia w przyszłości i korzyści dla potomności ktoś ma jakieś inne pomysły na właściwy sposób minimalizacji ryzyka połączenia dwóch pinów MCU razem, a bardziej ogólnie, minimalizacji ryzyka wynikającego z możliwości przeciążenia pinów GPIO?

Dmitri
źródło
Ja też używam kontrolerów msp430, jeśli używasz obu pinów jako wyjścia, istnieje możliwość zwarcia. Ale jeśli skonfigurujesz pin jako wyjście, a drugi jako wejście nie spowoduje problemów. Ale w każdym razie z jakim urządzeniem peryferyjnym chcesz się połączyć?
jogurt
Podłączam wyjście timera do innego wejścia timera. Pytanie dotyczy wyłącznie możliwości zwarcia. Nie myślę o wykorzystaniu ich jako wyjść, ale zawsze istnieje szansa, że ​​oba (przynajmniej chwilowo) zostaną przypadkowo wyprowadzone, z powodu czynników niezależnych ode mnie.
Dmitri

Odpowiedzi:

6

Nie stanowi to problemu, ale jeśli obawiasz się, że może wystąpić konflikt wyjść, podłącz je za pomocą rezystora 1k om. To odpowiednio ograniczy prąd.

Jeśli jednak sygnał wejściowy wymaga naprawdę szybkich zboczy, wtedy, gdy jesteś pewien, że działa, możesz przełączyć 1k om z krótkimi lub 100 omami.

Dodatkową zaletą posiadania rezystora jest to, że jeśli masz projekt przypisany do PCB, daje to łatwą opcję ponownego podłączenia.

Jest to ten sam problem z nieużywanymi wejściami - przywiązuj je do uziemienia lub Vcc i ryzykujesz duży pobór prądu z urządzenia bez żadnego łatwego sposobu na ustalenie, co się dzieje - powiązaj za pomocą 1k, jeśli nieużywane, a może 10k.

Ograniczenie przeciążenia odbywa się na niektórych układach, ale tylko z tego powodu, że tranzystory z natury nie mogą dostarczyć „wzmacniaczy”, ale może to działać przeciwko tobie, ponieważ jeśli masz kilka styków o / p zwartych do masy (lub siebie nawzajem), a każdy z nich ogranicza się z wdziękiem, nadal możesz przekroczyć maksymalną wartość prądu na piny zasilania urządzenia.

W przypadku MSP430 serii 2 strona 21 tego dokumentu mówi:

wprowadź opis zdjęcia tutaj

To mówi mi, że jeśli połączone prądy wyjściowe kilku pinów osiągną pewien limit, to możliwości wyjściowe dowolnych innych pinów (nawet tych, które mogą być lekko obciążone) mogą ulec pogorszeniu o tę samą wartość lub być może gorsze.

Andy aka
źródło
Patrzyłem na electronics.stackexchange.com/questions/50539/... i innych w tej grupie co najmniej trzech duplikatów. Bardzo dobrze rozumiesz o przetężeniu pinów zasilacza - myślę, że to prawdopodobnie największe niebezpieczeństwo podłączenia nieużywanych pinów do GND / PSU. Więc ... tranzystor na pinie GPIO prawdopodobnie po prostu nie przewodzi prawie wystarczająco, aby sam się uszkodzić (chyba że jest zwarty do czegoś poza zasięgiem zasilacza).
Dmitri
Dlaczego niewykorzystane dane wejściowe (uważane za wysokie Z) prowadzą do dużego poboru prądu?
Passerby
@passerby Jeśli podłączysz je do szyny zasilacza, jak to robią niektórzy ludzie i przypadkowo staną się wyjściami. Zobacz pytania w ciągu, który łączyłem, całkiem interesująca dyskusja.
Dmitri
@passerby OP zasugerował, że „istnieje możliwość błędu programowania powodującego, że oba są (być może sprzeczne) wyjściem” i zakładam, że dotyczy to błędów programowania na nieużywanych pinach.
Andy vel
Po prostu taka linia sprawia, że ​​wydaje się, że nieużywane wejścia powiązane z szyną bez żadnego błędu programistycznego powodują duże obciążenie.
Passerby
2

Największym problemem jest, jak wspomniałeś, błędy programistyczne. Możliwe są problemy, więc musisz ostrożnie kodować. Poza tym, dopóki piny nie są wyjściami o różnych poziomach, jest w porządku.

Używanie dwóch pinów do napędzania jednego źródła nie jest rzadkością (łączenie prądu wyjściowego).

Używanie dwóch pinów do napędzania diody LED (lub dwóch) również nie jest rzadkością. Chociaż nie zaleca się używania rezystora, można go uniknąć. Jeśli napięcie wyjściowe jest względnie zbliżone do napięcia przewodzenia doprowadzonego, pobór prądu może nie stanowić problemu. I jest spadek napięcia na pinach. Wraz ze wzrostem prądu pobieranego napięcie maleje (Vcc do Vcc - 0,3 do -1 itd.). Wraz ze wzrostem natężenia prądu wzrasta napięcie (od Gnd do Gnd + 0,3 V do + 1 V itp.). Jest to trochę samokorekty błogosławieństwo, ale nie należy na nim polegać.

I jak już powiedziałeś, można zastosować prosty rezystor ograniczający prąd.

Przechodzień
źródło