Apakah aman untuk menghubungkan dua pin MCU langsung satu sama lain?

10

Saya sedang mengerjakan proyek MSP430 yang mengharuskan saya untuk merutekan output dari satu perangkat ke input perangkat lain. Jadi, saya memiliki dua pin MCU yang terhubung langsung satu sama lain. Ini terlihat mencurigakan bagi saya karena ada kemungkinan kesalahan pemrograman yang menyebabkan keduanya menjadi (mungkin bertentangan) output. Juga, ada masalah kondisi startup dan pemrograman.

Dalam kasus terburuk, jika satu pin mengemudi HI, yang lain mengemudi LO, pin GPIO umumnya memiliki kemampuan tenggelam lebih dari kemampuan sumber ... jadi itu akan seperti mengambil output HI dan menyingkatnya menjadi dekat- tanah. Mana yang buruk ... tapi seberapa buruk itu? Apakah mungkin menyebabkan kerusakan pada MCU?

Saya sering melihat contoh di web orang yang menggunakan Arduino untuk menyalakan LED di antara dua pin tanpa resistor, dan saya belum pernah mendengar cerita tentang siapa pun yang menggoreng apa pun selain LED. Jelas Anda tidak ingin melakukan ini dalam suatu produk, tetapi apakah pabrikan umumnya mencoba melindungi MCU dari pin GPIO yang kelebihan beban?

Memikirkannya dalam retrospeksi, menempatkan resistor pembatas arus antara kedua pin akan mencegah kekhawatiran, tetapi bahkan perubahan perangkat keras kecil adalah hal yang sangat sulit untuk dilakukan pada titik ini.

Untuk referensi di masa mendatang dan manfaat generasi mendatang, apakah ada yang punya ide lain tentang cara yang tepat untuk meminimalkan risiko menghubungkan dua pin MCU bersama-sama, dan secara lebih umum, meminimalkan risiko yang berasal dari kemungkinan overloading pin GPIO?

Dmitri
sumber
Saya juga menggunakan pengontrol msp430 jika Anda menggunakan kedua pin sebagai output, ada kemungkinan shorting.tapi jika Anda mengkonfigurasi pin sebagai output dan input lainnya sebagai input, itu tidak akan membuat masalah.tetap pula apa perangkat yang ingin Anda hubungkan?
yogece
Saya menghubungkan output penghitung waktu ke input penghitung waktu yang berbeda. Pertanyaannya sepenuhnya tentang kemungkinan korslet. Saya tidak berpikir untuk menggunakan keduanya sebagai output, tetapi selalu ada kemungkinan mereka berdua (setidaknya untuk sementara waktu) menjadi output secara tidak sengaja, karena faktor-faktor di luar kendali saya.
Dmitri

Jawaban:

6

Ini bukan masalah tetapi jika Anda khawatir bahwa mungkin ada konflik output kemudian hubungkan dengan resistor 1k ohm. Ini akan membatasi arus sesuai.

Namun, jika input membutuhkan tepian yang sangat cepat maka ketika Anda yakin itu berfungsi, jembatan 1k ohm dengan pendek atau 100 ohm mungkin.

Bonus tambahan dari memiliki resistor adalah bahwa jika Anda memiliki desain yang dikomit ke PCB maka itu memberi Anda opsi re-wire yang mudah.

Ini masalah yang sama dengan input yang tidak digunakan - ikat mereka ke ground atau Vcc dan Anda berisiko menarik arus besar dari perangkat tanpa cara mudah untuk mengetahui apa yang sedang terjadi - ikat melalui 1k jika tidak digunakan atau mungkin 10k.

Pembatasan kelebihan dilakukan pada beberapa chip tetapi hanya berdasarkan bahwa transistor tidak bisa secara inheren memasok "amp" tetapi ini dapat bekerja melawan Anda karena jika Anda memiliki beberapa pin o / p disingkat ke tanah (atau satu sama lain) dan masing-masing membatasi dengan anggun, Anda mungkin masih melebihi nilai maksimum arus ke dalam pin daya perangkat.

Untuk MSP430 series 2 halaman 21 dari dokumen ini mengatakan: -

masukkan deskripsi gambar di sini

Ini memberitahu saya bahwa jika arus output gabungan dari beberapa pin mencapai batas tertentu maka kemampuan output dari pin lain (bahkan yang mungkin dimuat dengan ringan) dapat terganggu oleh jumlah yang sama atau mungkin lebih buruk.

Andy alias
sumber
Saya memang melihat electronics.stackexchange.com/questions/50539/… dan yang lainnya di grup itu setidaknya tiga duplikat. Anda membuat poin yang sangat bagus tentang overcurrenting pin PSU - saya pikir itu mungkin bahaya terbesar menghubungkan pin yang tidak digunakan ke GND / PSU. Jadi .. transistor pada pin GPIO mungkin tidak akan melakukan hampir cukup untuk merusak dirinya sendiri (kecuali disingkat menjadi sesuatu yang jauh dari jangkauan PSU).
Dmitri
Mengapa input yang tidak digunakan (Dianggap Z Tinggi) menyebabkan penarikan arus berat?
Pejalan kaki
@ passerby Jika Anda menghubungkannya ke rel PSU karena sebagian orang suka melakukannya dan mereka secara tidak sengaja menjadi keluaran. Lihat pertanyaan dalam string yang saya tautkan, diskusi yang cukup menarik.
Dmitri
@ passerby OP menyarankan ini "kemungkinan kesalahan pemrograman yang menyebabkan keduanya menjadi (mungkin bertentangan) output" dan saya berasumsi ini berlaku untuk kesalahan pemrograman pada pin yang tidak digunakan.
Andy alias
Hanya saja garis seperti ini membuatnya tampak seolah-olah input yang tidak digunakan terikat pada rail tanpa jenis kesalahan pemrograman yang menyebabkan penarikan yang berat.
Pejalan kaki
2

Masalah terbesar adalah seperti yang Anda sebutkan, kesalahan pemrograman. Ada potensi masalah, jadi Anda harus kode dengan hati-hati. Selain itu, selama pin tidak sama-sama output dengan level yang berbeda, tidak apa-apa.

Menggunakan dua pin untuk menggerakkan satu sumber tidak jarang (menggabungkan output saat ini).

Menggunakan dua pin untuk menggerakkan led (atau dua) juga tidak jarang. Meskipun tidak menggunakan resistor tidak disarankan, Anda dapat melakukannya. Jika tegangan output Anda relatif dekat dengan tegangan maju led, maka arus saat ini mungkin tidak menjadi masalah. Dan ada tegangan pin terkulai. Sebagai Sumber arus Meningkat, Tegangan pada pin itu Mengurangi (Vcc ke Vcc - 0,3 ke -1, dll). Saat arus tenggelam Meningkat, Tegangan Meningkat (Dari Gnd ke Gnd + 0.3v ke + 1v, dll). Itu adalah sedikit berkat yang mengoreksi diri, tetapi tidak seharusnya diandalkan.

Dan seperti yang telah Anda katakan, resistor pembatas arus sederhana dapat digunakan.

Pejalan kaki
sumber