Saya membakar pin. Sekarang apa yang aku lakukan?

16

Saya tidak sengaja menyingkat pin 10 dan 11 dengan 10 set ke output HIGH dan 11 set ke input. Pin 11 tidak berfungsi. Bagaimana cara mengetahui komponen apa yang saya bakar?

Bisakah masalah ini diperbaiki?

asheeshr
sumber
3
Menentukan papan Arduino mana yang akan membantu mengidentifikasi komponen yang mungkin dikompromikan, dari skema.
Anindo Ghosh
@AnindoGhosh Saya memberi tag uno ^
asheeshr

Jawaban:

21

Asumsi: Karena model Arduino spesifik belum ditentukan, menggunakan Arduino Uno untuk menggambarkan jawaban ini. Alasannya berlaku identik dengan Arduino lain, untuk masing-masing tegangan operasi pin-out dan mikrokontroler.

Silakan lihat diagram pin-out ini untuk Arduino Uno : ( sumber )


Arduino Uno pin-out


  • Seperti dapat dilihat, Pin 10 dan 11 keduanya pin GPIO standar.
  • Setiap GPIO tidak bisa tegangan output lebih tinggi dari tegangan suplai mikrokontroler (V CC ) , di Arduino. Untuk Uno V CC adalah 5 Volts.
  • Pin GPIO apa pun dapat menahan tegangan input hingga V CC dan sedikit lebih tinggi (5,5 Volt ditoleransi sebagai standar)
  • Juga, ketika setiap Arduino GPIO diatur ke input, itu dalam keadaan impedansi tinggi, sehingga membuatnya tidak mungkin untuk mengalirkan arus yang cukup ke dalamnya untuk tegangan yang terlibat, untuk setiap kerusakan yang terjadi.
  • Jadi, korsleting pin 10 dan 11 tidak dapat menyebabkan kerusakan pada pin mana pun , dalam keadaan yang dilaporkan dalam pertanyaan.

Sekarang mari kita periksa kemungkinan alternatif:

  • Jika Uno diaktifkan dari jack barel DC bukannya 5 volt dari koneksi USB atau catu daya yang diatur lainnya, pin Vin mengeluarkan 1 dioda drop lebih rendah dari tegangan input ini: Ini akan menjadi sekitar 8,3 Volt jika pasokannya adalah 9 Volt baterai terpasang ke jack barel.
  • Memendekkan pin VIN ini ke pin analog atau digital Arduino ( selain pin tertentu yang dilindungi oleh resistor) ) sangat mungkin untuk menghancurkan baik dioda ESD internal / sirkuit perlindungan untuk pin di dalam mikrokontroler, atau menghancurkan mikrokontroler diri. Ini bisa menjadi penyebab masalah.
  • Hipotesis lain adalah bahwa Pin 11 terpapar ke sumber tegangan tinggi lainnya, di luar Vcc board. Ini bisa disebabkan EMF-belakang dari motor, atau dari tegangan tinggi (bisa 10+ volt ) yang dihasilkan oleh bender piezoelektrik (speaker piezo) jika dipukul dengan sesuatu. Ini dapat menyebabkan kerusakan pada dioda ESD / sirkuit perlindungan seperti disebutkan di atas
  • Selanjutnya, pelepasan elektrostatik dari listrik statis dapat merusak pin GPIO yang diberikan bahkan saat perangkat tidak dihidupkan. Apakah Anda kebetulan menyisir rambut Anda dan kemudian menyentuh papan Arduino di beberapa titik, misalnya? Masalahnya hanya akan muncul kemudian, ketika mencoba menggunakan pin itu di papan tulis, jadi kausalitas seringkali sulit untuk ditunjukkan.
  • Akhirnya, jika dua pin keduanya disetel ke output , satu set tinggi dan yang lainnya rendah, dan ini disingkat, pin "Tinggi" melihat sebuah pin pendek ke ground melalui pin "Rendah". Sumber ini menenggelamkan pertikaian yang dapat menyebabkan mikrokontroler memanas, dan meskipun mikrokontroler AVR biasanya memiliki perlindungan output pada GPIO, ini dapat menyebabkan satu atau yang lain dari pin berhenti berfungsi - meskipun seluruh mikrokontroler yang gagal lebih mungkin dalam kasus ini .

Setelah mengatakan semua itu, jika karena alasan apa pun Pin 11 tidak lagi melakukan input atau output, sirkuit perlindungan internal MCU yang sesuai rusak tidak dapat dibatalkan. Tidak ada cara untuk memperbaiki ini. Ini telah dibahas dengan baik dalam jawaban oleh Manishearth .

Anggap diri Anda beruntung bahwa seluruh mikrokontroler tidak hancur, dan buat ulang kode aplikasi Anda untuk tidak menggunakan Pin 11 lagi.

Kiat pribadi: Saya telah memblokir soket VIN pada papan Arduino saya sejak lama dengan menempelkan beberapa insulasi bergaris di dalamnya, untuk menghindari agar tidak pernah secara tidak sengaja memaparkan kawat jumper ke tegangan itu. Jika saya benar-benar perlu menggunakan VIN suatu hari, saya akan menghabiskan waktu yang menyenangkan berjuang untuk mengekstrak sedikit isolasi yang terjebak di sana.

Anindo Ghosh
sumber
6
Memblokir soket VIN. Cemerlang!
Jeff Severns Guntzel
9

Seharusnya tidak mungkin untuk menghancurkan pin Anda dengan mempersingkat input ke output. Pin input dapat menangani tegangan level Vcc, sehingga mereka harus mampu menangani tegangan output yang lebih rendah dari pin lainnya. Juga, mereka memiliki impedansi tinggi, sehingga harus melindungi mereka dari banyak hal. (Lihat jawaban Anindo pada pertanyaan yang sama ini untuk detail lebih lanjut tentang ini). Dalam kasus spesifik Anda, saya kira salah satu dari yang berikut ini terjadi:

  • Kedua pin dikonfigurasikan untuk output
  • Anda mempersingkat sesuatu dan tidak memperhatikan
  • (Karena Anda menyebutkan dalam obrolan bahwa pin mulai bekerja lagi) menumpuk debu atau kelembaban

Namun, Anda dapat menghancurkan pin dengan koneksi berikut (diambil dari pos yang luar biasa ini , ada banyak cara umum untuk menghancurkan Arduino di sana):

  • Pin output TINGGI ke GND
  • Pin output TINGGI ke pin output RENDAH
  • Terapkan tegangan tinggi di atas 5.5V ke pin (ini dapat menghancurkan lebih dari sekedar pin)

Mengenai apa yang harus dilakukan secara umum saat Anda menghancurkan pin:

Dalam kasus seperti itu, pin mikrokontroler terbakar dan tidak dapat diperbaiki. Satu-satunya cara untuk memperbaikinya adalah dengan mengganti mikrokontroler (jika paket DIP ini relatif murah dan mudah) atau beli papan baru. Saat mengganti mikrokontroler, Anda harus membakar bootloader ke mikrokontroler baru (kecuali jika Anda mendapatkannya dengan bootloader) jika Anda ingin memprogram Arduino melalui USB.


Melihat skema, papan berikut memiliki pin yang terhubung langsung ke mikrokontroler.

  • Uno
  • Mega
  • Duemilanove
  • Daun teratai
  • Fio
  • Nuova Generazione
  • Diecimila

Pada papan berikut, ada beberapa pin yang terlindungi dan sulit terbakar:

  • BT (pin 13, oleh resistor 1k)
  • USB v2.0 (pin 13, oleh resistor 1k)
  • Nano (pin Rx / Tx, dengan resistor 1rb)
  • Serial (pin 13, oleh resistor 1k)
  • Serial Satu Sisi (pin 13, oleh resistor 1k)
  • Mini 03 (pin 13, oleh resistor 1k)

Namun, jika Anda membakar pin pada ini, tidak ada lagi yang bisa Anda lakukan selain mengganti mikrokontroler.

Jika Anda cenderung membakar pin, Anda mungkin ingin mencoba ruggedduino .

Manishearth
sumber
3

Hal lain yang cukup murah untuk dicoba adalah membeli ATmega328 lain, membongkar chip yang diduga rusak, memuat yang baru ke dalam soket, membakar bootloader dan melihat apakah itu membantu. Dengan asumsi board Anda memiliki DIP atmega328 yang dicolokkan.

Steve Cooley
sumber