Sudahkah mikrokontroler mengganti IC yang lebih sederhana?

37

Apakah masih bermanfaat untuk belajar, misalnya, bagaimana menyetel timer 555 dengan resistor dan kapasitor, ketika Anda dapat menulis program timer untuk mikrokontroler dalam bahasa pemrograman yang dapat dibaca manusia?

Atau, dengan kata lain, adakah masalah bahwa IC bagus untuk mikrokontroler?

pengguna955
sumber
4
@ jes5199 - Saya tidak yakin bagaimana pertanyaan ini layak mendapat tag meta; dapatkah Anda mengomentari alasan Anda?
J. Polfer
3
Gagasan saya adalah bahwa saya tidak mengajukan pertanyaan tentang masalah tertentu, tetapi tentang seluruh bidang. Bagi saya itu agak meta.
user955
Papan sirkuit dengan komponen diskrit dan chip berlabel 555 timer jauh lebih mudah dibaca manusia daripada program yang disimpan dalam chip.
Kaz

Jawaban:

35

Sebagian besar, mikrokontroler telah menggantikan IC diskrit. Saya menemukan bahwa bahkan jika saya dapat merancang sebuah sirkuit dengan 555, kemungkinan bahwa sirkuit yang sama perlu diubah dalam beberapa minggu untuk melakukan sesuatu yang lain, dan mikro mempertahankan fleksibilitas itu.

Tetapi ada beberapa pengecualian.

Logika diskrit masih lebih cepat daripada kebanyakan mikrokontroler. Delay propagasi dan waktu switching untuk logika diskrit berada dalam kisaran 1-10 ns. Untuk mencocokkannya dengan mikrokontroler, Anda harus dapat mengimplementasikan logika apa pun yang Anda butuhkan dalam 1 instruksi, dan memiliki jam di kisaran 100 MHz hingga 1 GHz. Anda bisa melakukannya, tetapi mungkin tidak di atas papan tempat memotong roti di garasi Anda.

Contoh yang baik untuk hal ini adalah dekoder quadrature HCTL2020. Dibutuhkan dalam dua seri pulsa dan memberi tahu Anda ke arah mana motor Anda berputar. Ini diimplementasikan sebagai chip yang tidak dapat diprogram demi kecepatan.

Bidang lain yang menarik di mana logika digital dan dan mikrokontroler gagal dalam penyaringan sinyal. Jika Anda memiliki sinyal analog yang ingin Anda filter secara digital, Anda harus mengambil sampel dengan kecepatan tertentu. Tidak peduli seberapa cepat Anda mengambil sampelnya, noise pada sinyal yang muncul pada frekuensi lebih dari setengah frekuensi sampling Anda akan dialihkan ke frekuensi yang lebih rendah, yang dapat mengganggu sinyal Anda. Anda dapat memecahkan masalah ini dengan filter low-pass, terbuat dari topi dan resistor, sebelum pengambilan sampel Anda terjadi. Setelah pengambilan sampel, Anda kacau. (Tentu saja, sering kali kebisingan tidak akan tumpang tindih dalam frekuensi Anda, dan kemudian filter digital akan bekerja dengan baik.)

pingswept
sumber
> Logika diskrit masih lebih cepat daripada kebanyakan mikrokontroler. Kecuali Anda menggunakan Cypress PSoC3.
Rocketmagnet
3
@Rocketmagnet - PSoC, seperti FPGA, masih merupakan logika mentah. Tentu saja, ini tidak diskrit, tetapi sama cepatnya.
Kevin Vermeer
29

Anehnya, saya hanya punya satu pabrik Cina yang mencoba menambahkan mikro ke proyek di mana itu benar-benar berlebihan, dan saya mengatakan kepada mereka untuk menggunakan 555. Sebuah biaya 555 mungkin 6 sen, vs mikrokontroler murah untuk 60 sen. Ketika Anda membuat produk dalam jumlah besar, perbedaan biaya itu penting, dan Anda pasti ingin tahu cara menggunakan IC yang lebih murah. Jadi ya, mereka lebih baik dengan biaya lebih murah. :)

endolith
sumber
12
Anda juga dapat menambahkan keandalan untuk itu. Setiap perangkat lunak memiliki satu bug yang tersisa setelah yang terakhir dihapus.
stevenvh
13

Salah satu area di mana logika diskrit masih mengalahkan micros adalah stabilitas bagian jangka panjang.

Apakah mikro ini akan tersedia dalam 10 tahun? 20? Apakah IDE dan toolchain masih mendukungnya pada saat itu?

Anda bisa menjamin logika diskrit masih akan menjadi diskrit logika di masa depan. Micros, tidak banyak. Jika Anda merancang produk yang Anda harapkan memiliki masa produksi yang lama, logika generik, dan sebanyak mungkin, suku cadang generik akan mengurangi kebutuhan untuk mendesain ulang perangkat saat ketersediaan suku cadang bergeser.

Selain itu, Anda bukan SOL jika pabrikan chip Anda memiliki pemesanan-ulang. Banyak orang membuat logika generik yang kompatibel, sementara pada dasarnya tidak ada mikro generik.

Connor Wolf
sumber
11

Seringkali akan lebih murah menggunakan sirkuit diskrit untuk melakukan tugas sederhana. Misalnya, LED yang berkedip. PIC termurah, PIC10F200, sekitar US $ 0,35 dalam 5ku, dan itu sebelum biaya pemrograman dan mempertimbangkan ukuran kecil (dan masalah terkait dengan pembuatan.) Timer NE555, di sisi lain, dapat diambil sekitar US $ 0,10 dari TI dalam 5ku, dan solusi lengkap mungkin akan berbobot sekitar US $ 0,20.

Satu hal yang perlu dipertimbangkan adalah bahwa mikrokontroler adalah perangkat digital yang inheren. Tentu, sebagian besar memiliki ADC dan beberapa bahkan memiliki DAC, tetapi mereka masih bekerja pada unit waktu yang terpisah dan bekerja pada bit dan byte individu. Sirkuit analog dapat disetel dengan tepat untuk melakukan apa yang dibutuhkan perancang karena secara teori, analog memiliki resolusi tak terbatas **. Sirkuit digital dibatasi oleh komponennya yang paling lambat.

Akhirnya, ada masalah pasokan. Kembali ke contoh pertama saya, NE555. Itu sudah ada selama lebih dari 20 tahun dan mungkin akan ada sekitar 50 tahun lagi setelah ini. Ini adalah bagian ubur-ubur sehingga mungkin akan diproduksi selamanya (atau setidaknya sampai elektron konvensional menjadi usang dalam elektronik.) Sedangkan PIC10F dapat dibuat NRND kapan saja. Dengan pemasok tunggal seperti Microchip, ada risiko signifikan yang dapat merusak suatu produk.

** Oke, ini tidak sepenuhnya benar. Pada kenyataannya, kita terbatas pada resolusi elektron. 1 ampere = 6,24 × 10 18 elektron / detik. Jadi resolusi terbaik saat ini yang bisa Anda dapatkan adalah attoampere, atau 10 ^ -18 ampere, yaitu sekitar 6 elektron per detik. Tetapi untuk tujuan paling praktis, ini tidak apa-apa. :)

Thomas O
sumber
4
Anda membingungkan resolusi dengan presisi, kesalahan yang sering dibuat. Tidak ada gunanya memiliki resolusi> 10 digit jika penyimpangan menyebabkan presisi efektif hanya dua digit. Solusi digital mungkin memiliki presisi yang lebih tinggi walaupun memiliki diskrit dan karenanya resolusi lebih terbatas .
stevenvh
8

Jangan lupa logika yang dapat diprogram - CPLD dan FPGA. Dengan mengganti logika diskrit dengan CPLD, Anda tidak akan terpengaruh oleh bagian-bagian yang dihentikan dan bisa mendapatkan kinerja yang lebih banyak, ukuran berkurang dan biaya lebih rendah. Jika Anda memiliki FPGA dalam sistem, Anda dapat menerapkan soft core di dalamnya, yang dapat dengan mudah ditingkatkan jika persyaratan berubah, dan semuanya dapat dengan mudah dibuat "bukti masa depan".

Leon Heller
sumber
6

Saya akan belajar kelas untuk menyetel timer 555 sebagai "berjaga-jaga" pengetahuan. Itu sama dengan orang-orang yang mengatakan, "Saya menjalani seluruh hidup saya dengan baik tanpa aljabar, mengapa kita mengajarkannya kepada anak-anak?" Jika Anda tidak tahu cara menggunakan alat, Anda tidak akan pernah melihat masalah yang bisa diterapkan.

Adapun jawaban spesifik: logika digital sangat cepat diimplementasikan dalam FPGAs / ASICs saat ini karena akan terlalu lambat pada mikrokontroler / prosesor (kecuali itu adalah prosesor yang dirancang khusus seperti DSP).

penjuin
sumber
6

Dalam proyek saya saat ini, kami menggunakan chip Marvell ARM9 yang berjalan pada kecepatan 500Mhz dengan FPGA untuk menawarkan banyak port DIO. Namun, ada hal-hal yang ditangani dalam logika diskrit. Misalnya, kontrol motor stepper diperlukan untuk 4 motor stepper yang dikontrol secara individual. Ada satu osilator untuk menghasilkan frekuensi dengan penghitung yang akan memungkinkan sejumlah pulsa untuk melewatinya. Penghitung diatur dari mikrokontroler, tetapi kemudian beroperasi tanpa kontrol lebih lanjut dari mikrokontroler, sehingga memberikan waktu untuk mengerjakan tugas lain.

Kami bisa memilih lebih banyak mikrokontroler. Tetapi pengontrol pusat yang bekerja dengan logika diskrit tradisional dapat terbukti menjadi solusi yang kuat dan sangat andal.

Juga, jika Anda memiliki masalah yang didefinisikan dengan jelas, solusinya harus selalu sesederhana mungkin, tetapi tidak lebih sederhana (kutipan tersembunyi di sana ;-)). Jika 555 berfungsi, mengapa Anda tidak menggunakannya? Fleksibilitas mungkin merupakan argumen ketika orang lain memilih, tetapi mungkin tidak. Itu semua tergantung pada masalah Anda dan interpretasi Anda tentang apa solusi yang paling sederhana.

Wouter Simons
sumber
1
Saya akan berpikir I / O expander FPGA Anda akan menjadi tempat yang bagus untuk bagian "logika" dari kontrol stepper.
Chris Stratton
5

Aplikasi komunikasi frekuensi tinggi muncul dalam pikiran. Meskipun sekarang kita memiliki 'radio yang ditentukan perangkat lunak', akan sangat mengejutkan jika pemrosesan sinyal 100MHz + masih belum memiliki setidaknya beberapa tahap analog.

JustJeff
sumber
4

Sangat sedikit dari desain mikrokontroler saya saat ini yang membutuhkan logika diskrit. Pengecualian adalah menerapkan jenis reset Ctrl-Alt-Del di mana menekan dua tombol khusus pada keyboard khusus selama dua detik akan melakukan pengaturan ulang mikro yang sulit. Saya menggunakan gerbang NOR (digunakan sebagai gerbang AND dengan 2 input terbalik), sebuah gerbang AND, dan 74HC123. Nyaman untuk bisa mendapatkan gerbang spesifik yang saya butuhkan di gerbang tunggal dalam paket SMT, daripada 4 gerbang / paket di hari-hari DIP.

tcrosley
sumber
4

Saya memiliki kesempatan menjadi pengembang perangkat lunak selama bertahun-tahun dan sekarang bekerja sebagai insinyur elektronik.

Setiap sistem dengan kompleksitas dilengkapi dengan erro dan bug. Baik mikrokontroler dan IC memiliki kelebihan dan kekurangan berdasarkan area mereka masing-masing.

Untuk proyek skala kecil, IC lebih cepat, lebih murah, dan lebih andal daripada Microcontrollers. Untuk proyek skala besar dengan jutaan input, analisis, dan logika perbandingan, pasti mikrokontroler memiliki keunggulan dibandingkan IC.

Semua perangkat lunak gagal pada beberapa titik, bahkan kode tanpa bug rentan terhadap modifikasi karena jika disimpan pada ROM, mengakibatkan kesalahan logis (misalnya, kebocoran memori) yang sulit untuk dideteksi tetapi kadang-kadang berakhir dengan bencana.

Untuk sistem berbasis perangkat lunak anti peluru dari kegagalan dalam aplikasi kritis (seperti kelas militer atau sistem penyelamatan jiwa seperti sistem kontrol kereta), konsep "gagal aman" diterapkan dan dikembangkan.

Sistem yang gagal gagal kembali ke kondisi aman jika terjadi kesalahan luar biasa. Biasanya dua prosesor menjalankan kode yang sama, membandingkan hasil dari setiap instruksi, dan jika mereka sama, instruksi tersebut dijalankan. Kalau tidak, sistem menggunakan relay listrik fisik untuk kembali ke keadaan aman.

Sistem berbasis perangkat lunak yang gagal digunakan dalam sistem Interlocking dan ATP (Automatic Train Protection) kereta.

Merancang sistem kompleks yang sama dengan Ics adalah sakit kepala yang hebat untuk setiap insinyur. Dan itulah mengapa perangkat lunak dirancang sejak hari pertama!

hmdz
sumber
3

IC bisa sangat spesifik untuk domain. Saya sedang memikirkan decoder DTMF. Saya dapat memprogram mikrokontroler untuk memecahkan kode dua frekuensi, tetapi lebih mudah, lebih cepat, dan lebih murah untuk menggunakan chip yang tidak tersedia.

Saya pikir sangat penting untuk memiliki pengetahuan yang cukup tentang semua alat untuk mengetahui alat apa yang digunakan.

Robert
sumber
Tergantung tentu saja pada apakah Anda memerlukan mikrokontroler di sirkuit. Saya baru-baru ini memiliki proyek di mana saya membutuhkan dekoder DMTF. Chip harganya sekitar dolar dalam jumlah. Perbedaan harga antara PIC24F atau dsPIC33F setara (yang juga memiliki DSP) juga sekitar satu dolar dalam kuantitas. Rutin DSP decoder DTMF bebas dari Microchip. Ditambah lagi sekarang saya punya DSP untuk hal-hal lain.
tcrosley
FYI, saya menulis decoder DTMF yang cukup bagus untuk PIC 16C622 beberapa tahun yang lalu, hanya menggunakan komparator sebagai input.
supercat
3

Ada satu perbedaan besar antara mendesain sesuatu menggunakan hanya komponen diskrit dibandingkan menggunakan pengontrol mikro; perangkat lunak memiliki bug. Jika keandalan merupakan aspek penting, dimungkinkan untuk memverifikasi desain sesuatu yang terbuat dari komponen diskrit. Bahkan Knuth tidak berani mengklaim bahwa perangkat lunaknya tanpa kesalahan.

Tentu saja, desain Anda mungkin memiliki kesalahan juga dan mereka mungkin hanya muncul dalam kasus yang sangat jarang, tetapi mereka akan lebih mudah untuk dipahami dan diperbaiki. Mungkin saja perangkat lunak gagal dengan cara yang sangat tidak jelas dan tidak jelas, yang tidak akan pernah Anda temukan.

hlovdal
sumber
2
Karena komponen diskrit dalam hal ini mungkin berarti IC dan bukan transistor, apa yang membuat Anda berpikir IC tanpa bug? Perangkat lunak yang ditulis dengan baik berakhir dengan bug bukan karena itu adalah perangkat lunak, tetapi karena itu memecahkan persyaratan yang rumit - versi kabel sulit bisa buggy juga. Setelah Anda menemukan bug, itu jauh lebih murah untuk menyebarkan perbaikan ke perangkat lunak daripada memodifikasi PCB, kecuali Anda memiliki seseorang membakar inventaris besar OTP micros untuk Anda. Anda dapat melatih seseorang untuk menyambungkan kabel pemrogram dan mematuhi aturan ESD jauh lebih cepat daripada melatih mereka agar pandai mengerjakan ulang PCB SMT.
Chris Stratton
IC ada di semua jenis tingkat kerumitan, termasuk mikrokontroler. Probabilitas kesalahan dalam IC sebanding dengan kompleksitas IC. Pertanyaannya adalah tentang IC yang lebih sederhana seperti timer 555, dan saya pikir probabilitas kumulatif IC tersebut dan komponen tambahan untuk memiliki kesalahan jauh lebih rendah daripada probabilitas mikrokontroler yang menggantinya dengan kesalahan. Tentu saja jika Anda mengganti 1000 komponen dengan satu mikrokontroler, kemungkinannya akan berubah, sehingga gambarnya tidak sepenuhnya hitam dan putih. Tetapi untuk semua perangkat LED berkedip atau sejenisnya yang saya ...
hlovdal
... melihat pertanyaan ini tentang, saya masih percaya bahwa komponen diskrit memiliki potensi menjadi lebih dapat diandalkan. Dan untuk kesalahan perangkat lunak, mereka non-deterministik. Tentu saja tidak ada yang dijamin 100%, tetapi jika Anda menerapkan pengontrol lampu lalu lintas dengan komponen, Anda dapat memverifikasinya dan menyebarkannya, mengetahui bahwa itu akan terus bekerja selama X tahun sampai keausan fisik membuat unit cenderung gagal dan diganti dengan unit baru sebelum itu. Tidak ada cara Anda dapat memperkirakan bahwa perangkat lunak akan bekerja dengan andal untuk periode waktu apa pun.
hlovdal
Perangkat lunak dengan kompleksitas yang sebanding dengan beberapa diskresi dapat, pada cpu yang sesuai, dibuktikan secara matematis. Logika diskrit dari kompleksitas yang sebanding dengan perangkat lunak yang lebih umum tidak dapat benar-benar dibuat sepenuhnya aman terhadap hal yang tidak terbayangkan - meskipun seringkali dalam kedua kasus tersebut Anda dapat menggunakan kompleksitas tambahan untuk memberikan keamanan cadangan jika mekanisme utama gagal.
Chris Stratton
3

Jawabannya iya!

Anda perlu melihatnya sebagai perancang perangkat keras dengan orientasi biaya produksi. 555 adalah IC lama yang dianggap sangat mendasar. Jika Anda seorang EE kemungkinan besar Anda telah melihatnya beberapa kali di kelas elektronik digital. Menyiapkannya sangat mudah karena Anda harus menyelesaikan 2 atau 3 rumus untuk sebagian besar aplikasi umum. Ini hampir tidak memerlukan waktu (karena Anda sudah tahu bagiannya dan cara menggunakannya serta matematika itu mudah). Jumlah waktu yang diperlukan untuk menyiapkan pengembangan bahkan untuk MCU 8-bit dan memvalidasi perangkat lunak bisa memakan waktu dari hari ke bulan, tergantung pada lingkungan tempat Anda bekerja. Jadi ini mungkin menjaga biaya teknik turun dengan jumlah yang Anda tidak bayangkan mungkin dan juga, mungkin, mempersingkat waktu ke pasar.

Kisah nyata - Saya dulu bekerja di perusahaan medis besar. Saya merancang pengujian jig untuk validasi produk. Jig adalah bagian perangkat keras dan perangkat lunak tertanam bagian. Produk yang perusahaan buat berinteraksi dengan bagian tubuh yang rentan sehingga jumlah inspeksi yang kami lakukan adalah gila. Kali ini, saya harus menyesuaikan protokol komunikasi untuk mencerminkan perubahan pada produk itu sendiri. Perubahan itu mungkin 10 baris kode dalam C dan osilator kristal juga ditukar sebagai baud rate diubah dan apa yang awalnya dipasang bukan 11,0592MHz ... Butuh waktu sekitar 2 jam untuk menyelesaikan ini termasuk dokumentasi. Biaya untuk perusahaan itu mungkin $ 300 atau kurang dengan pesanan dari Digikey untuk suku cadang baru. Validasi peningkatan pengujian jig memakan waktu beberapa bulan (! ) dan membuat sekitar 3 atau 4 orang sibuk setidaknya beberapa kali sehari dalam masalah terkait. Berapa biaya perusahaan ini? Mungkin utara dari $ 10K - $ 15K. Biaya ini mencerminkan biaya sebenarnya dari perubahan kecil dalam desain. Sering kali Anda dapat menyimpannya dan mengetahui beberapa solusi yang hampir siap pakai dapat menghemat sedikit uang.

pengguna34920
sumber