Merancang sirkuit dengan masa pakai lebih lama

11

Saya telah belajar tentang mikrokontroler gambar untuk jangka waktu tertentu dan memiliki pengetahuan yang cukup tentang penanganan elektronik digital. Saya telah bekerja pada proyek elektronik dasar dan sekarang saya perlu mengerjakan beberapa aplikasi komersial.

Pertanyaan saya adalah tentang bagaimana merancang dan membangun sirkuit yang andal dan tahan lama. Saya membangun sirkuit pengontrol cahaya otomatis yang mengambil input dari LDR dan menampilkan nilai pembacaan analog pada panel tujuh segmen. Kemudian melakukan beberapa perhitungan dan mengontrol cahaya melalui relay. Sirkuit ini perlu dinyalakan secara permanen (24 jam sehari). Beberapa bulan pertama sirkuit bekerja dengan baik, tetapi setelah sekitar 6 bulan mulai rusak. Ini menunjukkan hal-hal yang tidak masuk akal pada layar 7 segmen (hanya menunjukkan bagian-bagian angka), kemudian menyalakan bohlam pada indikator LED tetapi tidak menyalakan relai. Ini bukan perilaku yang diharapkan. Masalahnya adalah itu tidak akan selalu bekerja seperti itu. Terkadang ini bekerja dengan sempurna. Kemudian mulai lagi kerusakan. Tidak ada urutan pasti di mana ia bekerja.

Sekarang pertanyaan saya adalah mengapa sirkuit ini berperilaku seperti ini. Saya berasumsi ini mungkin karena ia bekerja sepanjang hari tanpa jeda. Aplikasi semacam ini perlu bekerja sepanjang hari. Saya menggunakan PIC karena saya tahu tentang pic saja. Apakah atmal lebih dapat diandalkan daripada pic? (Saya bertanya karena atmal digunakan di sebagian besar aplikasi otomasi, lebih sering daripada pic yang digunakan) Saya butuh saran dari seorang ahli dalam elektronik digital. Bagaimana aplikasi industri semacam ini dibangun? Apakah ada aturan khusus untuk diikuti? Bagaimana cara mendesain sirkuit yang lebih andal? Setiap saran atau bimbingan dari seorang ahli akan sangat dihargai. Terima kasih...

EDIT

Seperti yang disarankan dalam jawaban, saya akan mengedit jawaban saya dengan menyediakan sumber daya tambahan untuk membantu mencari tahu bug dalam desain.

Di bawah ini adalah gambar yang menggambarkan bagaimana rangkaian terlihat setelah itu dibangun. Ini adalah transformator pusat 12V yang memasok daya ke sirkuit. Ini diperbaiki menggunakan penyearah setengah gelombang, kemudian diatur menggunakan IC 7805.

masukkan deskripsi gambar di sini

Di bawah ini adalah desain skematis.

masukkan deskripsi gambar di sini

Jika ada informasi tambahan yang dibutuhkan, saya akan memberikan semua yang dibutuhkan. Jika program diperlukan, saya akan menambahkannya. Programnya agak panjang. Menggunakan interupsi.

danial weaber
sumber
6
Jika Anda menggunakan IC dalam peringkat yang ditentukan (lihat lembar data) maka hampir semua produsen menjamin 10 tahun seumur hidup. Dan itu pada suhu tinggi. Anda dapat menyalahkan komponen tetapi saya pikir masalahnya adalah ada sesuatu yang tidak terduga terjadi dalam desain Anda. Atau mungkin salah satu chip mengalami pelepasan ESD dan itu baru muncul sekarang. Anda harus mencari komponen yang salah terlebih dahulu sebelum saran yang bermanfaat dapat diberikan.
Bimpelrekkie
2
Selain apa yang dikatakan FakeMoustache, saya ragu PIC adalah sumber kegagalan. Kemungkinan besar komponen itu terpisah atau terkait dengan desain sirkuit.
DigitalNinja
1
Saya memiliki PIC yang bekerja sepanjang waktu di banyak tempat yang kasar. Tidak ada masalah. Satu-satunya masalah yang saya miliki adalah korosi pada colokan dan kapasitor TFT listrik yang dipaksakan secara fisik dengan pin yang rusak.
Szidor
1
Dan BTW saya kira maksud Anda Atmel bukan "atmal". Juga, PIC adalah microC dari MicroChip (MicroChip membuatnya). Atmel juga merupakan produsen mikroC, mereka membuat mikrokontroler Atmega. Keduanya hanyalah IC digital yang dibuat dalam proses pembuatan yang serupa dan memiliki keandalan yang serupa. Jika satu lebih atau kurang dapat diandalkan daripada yang lain, tidak ada yang akan membelinya (dengan harga yang sama).
Bimpelrekkie
3
Anda perlu memposting skema, dan idealnya gambar dari sistem yang bermasalah. Saya juga meragukan masalah Anda adalah "harapan seumur hidup", tetapi agak melewatkan sesuatu yang sangat mendasar, seperti kebersihan catu daya atau EMI.
Techydude

Jawaban:

17

Sebelum Anda mulai berpikir tentang beralih, pastikan Anda memiliki desain solid yang bagus. Anda harus mulai memikirkan semua cara Anda dapat memiliki masalah dalam desain Anda. Cara yang baik untuk melakukan ini adalah berhenti memikirkan mikroprosesor sebagai "kotak ajaib" yang Anda masukkan kode dan melakukan apa yang Anda kirim dan mulai berpikir tentang bagaimana fungsinya, pada tingkat gerbang dan tingkat sistem. Anda harus membuat mikroprosesor Anda senang.

  1. Daya - Jika daya mikroprosesor tidak bersih, itu tidak akan berfungsi dengan benar. Itu berarti melihat desain PCB dan memastikan Anda memiliki jalur induktansi rendah yang baik dari catu daya Anda dan pastikan Anda memiliki tutup daya yang memadai dekat dengan chip. Pantau dan ukur daya pada desain yang Anda tahu tidak bekerja dengan osiloskop dan voltmeter, apakah ini kekuatannya? Apakah Anda melihat masalah terjadi ketika ada lonjakan atau penurunan daya? Apakah Anda melihat lonjakan atau penurunan pada garis Vcc Anda?
  2. Code \ Clock - Apakah ada kesalahan pada kode yang menyebabkannya tidak berfungsi dengan benar? Sudahkah Anda melihat kode di unit intermiten? Apakah itu memverifikasi (cocok) dengan kode yang Anda miliki sekarang? Apakah Anda mengalami degradasi flash? Bagaimana dengan jam? Kekuatan sebenarnya dapat menurunkan jam dari waktu ke waktu . Apakah jam Anda seperti yang seharusnya? Jika Anda memperlambat jam, apakah kode Anda berhenti berfungsi?
  3. Perlindungan lingkungan. Apakah Anda mengoperasikan mikroprosesor dalam spesifikasi yang dirancang untuk itu? Apakah suhu konstan di unit yang gagal? Apakah mereka berada di area dengan faktor lingkungan seperti debu, EMI, ESD atau Temperatur yang dapat menyebabkannya gagal. Apakah input Anda terlindungi ke dunia luar, mungkinkah orang menabrak unit? Panas akan melakukan hal-hal buruk pada elektronik seiring waktu. Dapatkan kamera termal dan lihat apakah semuanya normal

Yang benar-benar perlu Anda lakukan adalah menemukan mekanisme kegagalan, Anda perlu tahu mengapa itu gagal. Setelah Anda tahu mengapa ini gagal, Anda dapat mengatasi masalahnya. Jika Anda tidak dapat menemukan itu maka Anda harus membuat desain Anda tak terkalahkan untuk menghentikan masalah yang terjadi. Jika tidak, Anda dapat beralih mikroprosesor dan masih memiliki masalah yang sama. Jika Anda ingin beralih, ST membuat beberapa mikroprosesor hebat yang lebih cocok untuk aplikasi industri.

Lonjakan tegangan
sumber
2
Tambahkan radiasi ke daftar faktor lingkungan. Radiasi pengion kebanyakan jenis (atomik, fotonik, dll) dapat menyebabkan elektronik mengalami SEU atau gangguan peristiwa tunggal yang menghasilkan output kacau.
rdtsc
Seperti yang saya sarankan saya memperbarui jawaban saya menambahkan sumber daya tambahan. desain skematis dan gambar jika rangkaian. tolong bisakah kamu menemukan bug dalam desain.
danial weaber
Terima kasih banyak. Saya mendapat ide dan lebih banyak pengetahuan tentang dessing sirkuit yang lebih dapat diandalkan. Saya harus belajar lebih banyak sebelum mulai membangun aplikasi komersial. Terima kasih banyak. Diterima sebagai jawabannya.
danial weaber
Saya agak berasumsi bahwa radiasi bukan merupakan faktor, tetapi jika Anda menjalankan hal-hal ini di samping pembangkit nuklir atau sumber radiasi lainnya (atau di luar angkasa, itu menjadi masalah serius dengan MCU komersial yang memiliki beberapa SEU seminggu, bahkan Rad prosesor keras akan memiliki SEU). MCU biasa bisa memiliki SEU tetapi saya akan berpikir itu akan berada di urutan tahun untuk kemungkinan itu dalam lingkungan normal.
Voltage Spike
@danial weaber 7805 tidak akan menghentikan pemadaman listrik dengan tutup yang Anda miliki. Katakanlah penarikan daya dari reg 5V adalah 100mA maks (Anda dapat menjalankan calc ini jika Anda mengukur arus maks aktual Anda), itu akan seperti beban 50Ohm. Topi Anda adalah 10 uF jadi tau = RC -> tau = 50 * 10 uF = 0,5 msec. Itu kira-kira waktu yang diperlukan bagi Anda untuk memiliki masalah. Anda mungkin ingin membeli "kutil dinding" Cina murah untuk beberapa dolar yang dapat mentolerir beberapa droppout dari listrik AC. Atau Anda bisa menggunakan konverter DC ke DC yang mungkin lebih toleran. Seperti apa tampilan landasan Anda pada PCB?
Voltage Spike
7

Karena Anda tidak mengatakannya, saya mempertanyakan bagaimana rangkaian yang bermasalah dibangun secara fisik - karena ini terdengar seperti PERSIS jenis yang biasanya terlihat ketika seseorang yang tidak solder membangun sirkuit pada papan tempat memotong roti dan dedaunan "push to connect" selama beberapa bulan.

Jika ini menyerupai kasus Anda, ada masalah Anda; jika tidak, saya masih akan mencurigai koneksi yang buruk, tetapi itu menjadi masalah "keterampilan menyolder" lebih dari masalah "kegagalan untuk menyolder apa pun".

Ecnerwal
sumber
3
Untuk menambah teknik penyolderan yang tidak tepat ini dapat menghasilkan sambungan dengan kekuatan mekanik yang buruk dan masalah lain yang menyebabkan sambungan gagal setelah periode waktu yang lebih singkat.
crasic
Terima kasih banyak. Saya memperbarui jawaban saya dan jika Anda dapat menemukan bug dalam desain yang akan sangat berterima kasih.
danial weaber
Penyolderan terlihat bagus, tidak ada efek yang terlihat dalam penyolderan. Bisakah itu menjadi masalah yang berkaitan dengan program. Tapi lalu bagaimana cara kerjanya baik pada suatu waktu
danial weaber
... memberikan gambar sisi solder? Adapun masalah pemrograman yang kadang-kadang bekerja, kadang tidak, berbagai opsi sudah disebutkan dalam komentar pada pertanyaan. Dan ada soket di IC sebagai titik kegagalan potensial solder (antara soket dan pin IC.) Soket kadang merupakan ide yang bagus, tetapi dapat menyebabkan masalah. Jika masalah menjadi lebih baik untuk sementara waktu jika Anda menghapus dan mengganti IC, itu mungkin menjadi bagian dari masalah. ... juga, kapasitor filter catu daya Anda terlihat sedikit di sisi kecil - semua 33 pF antara jembatan dan input regulator? Betulkah?
Ecnerwal
5

Anda tidak memiliki kapasitor decoupling pada pasokan PIC, tetapi pada papan kecil seperti ini Anda mungkin akan lolos begitu saja. Anda mungkin juga ingin menambahkan perlindungan kecoklatan sehingga PIC diatur ulang jika tegangan turun di bawah ambang batas.

Tapi saya akan melihat kode Anda.

Sebagai permulaan, Anda harus mengaktifkan pengawas di mikro. Jika kode berhenti bekerja dengan benar, anjing penjaga akan memulai kembali.

Kemungkinan besar, Anda baru saja menemukan bug di suatu tempat. Sebagai seorang insinyur perangkat lunak tertanam oleh profesi, saya kira itu terkait dengan interupsi, karena di situlah pemula paling sering membuat kesalahan. Sebagai seorang pemula, ada sejumlah besar kesalahan yang bisa Anda buat dalam kode, jadi itu hanya tempat pertama yang saya lihat. (Jangan tersinggung - saya membuat banyak kesalahan sendiri, termasuk ketika saya benar-benar seharusnya tahu lebih baik. ;-)

Graham
sumber
+1 terima kasih banyak. Sekarang saya mengerti bahwa saya telah melakukan beberapa kesalahan. Saya perlu belajar lebih banyak sebelum mulai membangun aplikasi komersial.
danial weaber
3

Saya setuju dengan komentar bahwa Anda memerlukan kapasitor lemak yang bagus di kedua sisi 7805. Terutama dengan relay di sana. Saya berharap ini adalah masalah root. Saya akan menambahkan kapasitor decoupling di seluruh jalur catu daya PIC juga.

Saya juga akan mencari sendi kering.

Saya juga akan memeriksa program saya secara menyeluruh, dan menggunakan fasilitas pengawas apa pun yang ada.

Namun, inilah beberapa hal menarik dari pertanyaan Anda:

Ini menunjukkan hal-hal yang tidak masuk akal pada layar 7 segmen (itu menunjukkan hanya bagian dari angka)

Saya akan mencoba mencari tahu apa yang terjadi. Apakah PIC rusak misalnya?

Sekarang, jika saya membaca skema Anda dengan benar, maka agar masing-masing dari 7 segmen display menunjukkan sesuatu , dan sesuatu yang berbeda dan konstan pada setidaknya dua dari mereka, maka masing-masing dari Q1, Q2 dan Q3 pasti masih harus diputar aktif secara berurutan, dan output ke segmen harus benar. Ini akan memberitahu saya PIC Anda masih menjalankan setidaknya beberapa kodenya, tetapi entah bagaimana output digit telah diacak. Misalnya mungkin itu tidak diberikan angka 0-9 untuk ditampilkan, tetapi angka 17 atau serupa (yang mendapatkan tata letak digit dari lokasi memori acak).

Kamu bilang:

itu menyalakan bohlam pada LED indikator tetapi tidak menyalakan relay

Melihat skematis, maka kecuali jika output PIC berdenyut atau sesuatu (bukan tidak mungkin karena itu juga port output timer), ini harus berupa kegagalan listrik (misalnya sambungan kering), masalah PSU (lihat kapasitor di atas ulang) , atau transistor Q4 (mungkin) tidak sepenuhnya jenuh. Saya belum pernah membaca lembar data PIC, tetapi BC547 memiliki I C maksimum 100mA (mudah-mudahan itu cukup untuk mengarahkan estafet dan LED Anda), dan hFE dari 120 pada tingkat semacam itu, sehingga Anda akan membutuhkan sekitar 1mA masuk 10k karena itu mungkin sedikit banyak. Saya mungkin mencoba 3k3.

Lebih lanjut, Anda tidak memiliki sarana debug yang berguna. Karena tampilan Anda selalu menyala, mungkin Anda dapat membuat titik desimal titik akhir flash sekali per detik (atau serupa) untuk menunjukkan semuanya baik-baik saja.

Jika saya harus mengambil tusukan liar di kegelapan, saya akan menebak bahwa terutama ketika relay menyala, sirkuit menarik arus yang signifikan. Karena kurangnya kapasitor besar di sisi input 7805, ketika tegangan AC melintasi nol, 7805 tidak akan menyediakan arus keluaran apa pun (dan mungkin memang menguras kapasitor itu sendiri) - dari lembar data 7805 'The tegangan input harus tetap khas 2,0 V di atas tegangan output bahkan selama titik rendah pada tegangan riak input ' . Tegangan pada PIC karena itu akan berkurang, mungkin cukup untuk menabraknya. Letakkan cakupan garis 5V di sebelah PIC dan jika Anda tidak melihat apa pun selain garis 5V yang bagus, Anda tahu Anda memiliki masalah.

abligh
sumber
+1 terima kasih banyak. Jawaban ini memberi saya ide bagus tentang bagaimana merancang rangkaian dan beberapa kesalahan yang telah saya lakukan. Saya akan mengecek menambahkan kapasitor dan memberitahukan hasilnya.
danial weaber
3

Setiap kali Anda memiliki perilaku tidak menentu dalam mikroprosesor, ada dua sumber utama untuk masalah ini. 1) kapasitor "bypass" yang hilang atau tidak cukup, 2) pin mikroprosesor "mengambang".
Setiap "chip" perlu memiliki bypass cap, tepat di pin chip yang terhubung ke Vcc (+ 5v).
Pin apa pun yang tidak digunakan, harus diikat tinggi atau rendah, tetapi jangan pernah "mengambang".

Saya setuju bahwa Anda tidak mengemudi "cukup keras" Q4, saya sarankan 1K untuk R12.

Guill
sumber
+1 terima kasih atas jawabannya. Saya akan mencoba menambahkan kapasitor bipass. Apakah perlu menetapkan nilai untuk pin yang tidak saya gunakan dalam desain.
danial weaber
Kata yang benar adalah "decoupling" kapasitor, bukan "memotong". Juga setuju bahwa pin mengambang dapat melakukan hal-hal lucu. Saya akan menambahkan sumber utama ketiga - brown-out atau kondisi reset cerdik serupa. Tetapi meskipun begitu, dalam hal ini ketika Anda memiliki seorang pemula yang melakukan hal-hal rumit dengan interupsi, uang saya selalu ada pada perangkat lunak.
Graham