Spaliłem szpilkę. Co mam teraz zrobić?

16

Przypadkowo zwarłem piny 10 i 11 z 10 ustawionymi na wyjście WYSOKIE i 11 ustawionymi na wejście. Pin 11 nie działa. Jak dowiedzieć się, który składnik spaliłem?

Czy problem można rozwiązać?

asheeshr
źródło
3
Określenie, która płytka Arduino to pomoże zidentyfikować komponenty, które mogą zostać naruszone, ze schematu.
Anindo Ghosh
@AnindoGhosh Oznacziłem to uno ^
asheeshr

Odpowiedzi:

21

Założenie: Ponieważ nie określono konkretnego modelu Arduino, użycie Arduino Uno do zilustrowania tej odpowiedzi. Uzasadnienie stosuje się identycznie do innych Arduinos, dla ich odpowiednich pin-outów i napięć roboczych mikrokontrolera.

Proszę zapoznać się z tym schematem pinów dla Arduino Uno : ( źródło )


Pin-out Arduino Uno


  • Jak widać, oba styki 10 i 11 są standardowymi stykami GPIO.
  • Żadne GPIO nie może wyprowadzić napięcia wyższego niż napięcie zasilania mikrokontrolera (V CC ) w Arduino. Dla Uno V CC wynosi 5 woltów.
  • Dowolny pin GPIO może wytrzymać napięcie wejściowe do V CC i nieco wyższe (5,5 V jest tolerowane w standardzie)
  • Ponadto, gdy dowolne Arduino GPIO jest ustawione na wejście, znajduje się w stanie wysokiej impedancji, co uniemożliwia przekazanie do niego wystarczającej ilości prądu dla związanych z nim napięć, aby mogło dojść do uszkodzenia.
  • Zatem zwarcie pinów 10 i 11 nie może spowodować uszkodzenia któregokolwiek z pinów , w okolicznościach opisanych w pytaniu.

Teraz przeanalizujmy alternatywne możliwości:

  • Jeśli Uno jest zasilany z gniazda baryłkowego prądu stałego zamiast 5 woltów z połączenia USB lub innego regulowanego zasilacza, dioda wyjściowa Vin pin 1 dioda spada poniżej tego napięcia wejściowego: To byłoby około 8,3 woltów, jeśli napięcie wynosi 9 woltów bateria przymocowana do lufy.
  • Zwarcie tego pinu VIN do dowolnego analogowego lub cyfrowego pinu Arduino ( innego niż określone piny, które są chronione przez rezystory ) najprawdopodobniej zniszczy wewnętrzną diodę / obwód ochronny ESD dla tego pinu w mikrokontrolerze lub zniszczy mikrokontroler samo. Może to być przyczyną problemu.
  • Inną hipotezą jest to, że Pin 11 był narażony na inne źródło wysokiego napięcia, poza Vcc płyty. Może to wynikać z elektromagnesu wstecznego z silnika lub z wysokiego napięcia (może wynosić 10+ woltów ) generowanego przez giętkę piezoelektryczną (głośnik piezoelektryczny), jeśli zostanie uderzona o coś. Może to spowodować uszkodzenie diod / obwodów ochronnych ESD, jak wspomniano powyżej
  • Następnie wyładowanie elektrostatyczne z elektryczności statycznej może uszkodzić dowolny pin GPIO, nawet gdy urządzenie nie jest zasilane. Czy zdarzyło Ci się na przykład czesać włosy, a następnie dotykać tablicy Arduino? Problem pojawi się dopiero później, gdy spróbujesz użyć tego kołka na planszy, więc przyczynowość jest często trudna do ustalenia.
  • Na koniec, jeśli oba piny są ustawione na wyjście , jeden ustawiony na wysoki, a drugi niski, a te są zwarte, pin „High” dostrzega zwarcie do masy przez pin „Low”. To źródło pochłaniania rywalizacji może powodować nagrzewanie się mikrokontrolera i chociaż mikrokontrolery AVR zazwyczaj mają ochronę wyjściową GPIO, może to spowodować, że jeden lub drugi z pinów przestanie działać - chociaż w tym przypadku prawdopodobieństwo awarii całego mikrokontrolera jest bardziej prawdopodobne .

Mimo to, jeśli z jakiegokolwiek powodu Pin 11 nie wykonuje już wejścia lub wyjścia, odpowiadający mu wewnętrzny obwód ochronny MCU zostaje nieodwracalnie uszkodzony. Nie ma sposobu, aby to naprawić. Zostało to dobrze omówione w odpowiedzi Manisheartha .

Uważaj się za szczęściarza, że ​​cały mikrokontroler nie został zniszczony, i ponownie koduj swoje aplikacje, aby nie używać już Pin 11.

Osobista wskazówka: już dawno zablokowałem gniazda VIN na moich płytach Arduino, przyklejając do nich izolację, aby uniknąć przypadkowego wystawienia przewodu zworki na to napięcie. Jeśli kiedyś będę musiał użyć VIN, spędzę cudowną godzinę, walcząc o wydobycie utkniętej tam izolacji.

Anindo Ghosh
źródło
6
Blokowanie gniazd VIN. Znakomity!
Jeff Severns Guntzel
9

Nie powinno być możliwe zniszczenie pinu przez zwarcie wejścia do wyjścia. Piny wejściowe mogą obsługiwać napięcie na poziomie Vcc, więc powinny być w stanie poradzić sobie z niższym napięciem wyjściowym z drugiego pinu. Ponadto mają wysoką impedancję, dlatego powinny chronić je przed większością rzeczy. (Zobacz odpowiedź Anindo na to samo pytanie, aby uzyskać więcej informacji na ten temat). W twoim konkretnym przypadku zdaje się, że wystąpiła jedna z następujących sytuacji:

  • Oba piny zostały skonfigurowane do wyjścia
  • Zwarłeś coś i nie zauważyłeś
  • (Odkąd wspominałeś na czacie, że szpilka znów zaczęła działać) nagromadzony kurz lub wilgoć posmarowały szpilkę

Możesz jednak niszczyć piny za pomocą następujących połączeń (wzięte z tego doskonałego posta , istnieje wiele innych ogólnych sposobów niszczenia Arduino):

  • WYSOKI pin wyjściowy do GND
  • Pin wyjściowy WYSOKI na pin wyjściowy LOW
  • Przyłóż dowolne wysokie napięcie powyżej 5,5 V do styku ( może to zniszczyć więcej niż tylko styk)

Jeśli chodzi o to, co robić ogólnie po zniszczeniu szpilki:

W takich przypadkach pin mikrokontrolera jest wypalony i nie można go naprawić. Jedynym sposobem, aby to naprawić, jest wymiana mikrokontrolera (jeśli jest to pakiet DIP, jest to stosunkowo tanie i łatwe) lub zakup nowej płyty. Podczas wymiany mikrokontrolera będziesz musiał wypalić bootloader na nowym mikrokontrolerze (chyba że masz go za pomocą bootloadera), jeśli chcesz zaprogramować Arduino przez USB.


Patrząc na schematy, poniższe płytki mają piny podłączone bezpośrednio do mikrokontrolera.

  • ONZ
  • Mega
  • Duemilanove
  • LilyPad
  • Fio
  • Nuova Generazione
  • Diecimila

Na poniższych tablicach znajduje się kilka szpilek, które są chronione i trudne do wypalenia:

Jeśli jednak wypalisz na nich szpilkę, nie możesz nic więcej zrobić niż wymienić mikrokontroler.

Jeśli wydajesz się mieć skłonność do przypalania palców , możesz wypróbować ruggedduino .

Manishearth
źródło
3

Inną dość tanią rzeczą jest kupienie kolejnej atmega328, rozładowanie podejrzanego uszkodzonego układu, załadowanie nowego do gniazda, spalenie bootloadera i sprawdzenie, czy to pomoże. Zakładając, że Twoja płyta ma wbudowany DIP atmega328.

Steve Cooley
źródło