Apa titik cutoff nyata dalam hal trade-off antara biaya dan kinerja untuk memilih mikrokontroler 32-bit?
Dengan kata lain, dengan kebangkitan dan dominasi arsitektur ARM, mengapa kita masih menggunakan mikrokontroler 8-bit dan 16-bit? Apakah mereka masih jauh lebih murah?
Saya mengerti bahwa perangkat yang sangat canggih tidak membutuhkan sumber daya yang ditawarkan oleh arsitektur yang lebih besar dan lebih kompleks. Namun, apa motivasi sebenarnya untuk tetap menggunakannya jika biaya tampaknya mengarah ke kisaran yang sama?
microcontroller
arm
cost
Bruno Morais
sumber
sumber
Jawaban:
Mungkin setahun yang lalu, ada perbedaan yang signifikan antara low-end 8-pahit dan mikrokontroler 32-bit termurah. Bukan kasusnya lagi.
Berdasarkan harga massal Digi-Key, Anda bisa mendapatkan PIC10F200 8-bit untuk 35ȼ dalam jumlah 2500 dalam paket SOT-23-6. Anda mendapatkan CY8C4013SXI-400 32-bit (ARM Cortex-M0) untuk 36ȼ dalam jumlah 2500 dalam paket SOIC-8. (Harga massal Digi-Key tidak realistis dalam hal apa yang sebenarnya dibayar produsen, yang mungkin jauh lebih sedikit, tapi saya pikir itu valid untuk digunakan untuk perbandingan harga kasar antara produk yang berbeda untuk jumlah yang sama.)
Jadi OP benar, mereka bertemu.
Jadi mengapa chip 32-bit tidak digunakan lebih banyak? Seperti yang saya katakan di paragraf pertama, paritas titik harga dan ukuran ini hanya terjadi pada tahun terakhir atau 18 bulan terakhir. Dan mereka masih harus menempuh jalan panjang sebelum ada cukup banyak chip untuk bisa bersaing.
Dari 6875 chip ARM yang tersedia dari Digi-Key, hanya ada empat yang tersedia dengan harga kuantitas di bawah satu dolar. Empat . Sementara itu ada ratusan chip 8-bit di bawah satu dolar untuk dipilih para insinyur.
Tetapi katakanlah ada beberapa mikro 32-bit low-end yang tersedia. Apakah mereka akan secara otomatis memilih yang 8-bit?
Pertama-tama Anda harus membuat insinyur menyadarinya. Selalu ada banyak penolakan untuk berubah. Hal-hal baru untuk dipelajari - dari sudut pandang perangkat keras, belajar bagaimana memasukkan chip baru ke dalam sebuah rangkaian. Ada alat-alat baru, seperti programmer di-sirkuit, kompiler baru, dll. Untuk insinyur firmware, belajar cara menggunakan perangkat peripheral dan timer yang baru (kebanyakan mendaftar tata letak dan makna bit).
32-bit bagus dan semua itu, tetapi kecuali seseorang perlu melakukan banyak perhitungan, apa gunanya? Jika Anda hanya memiliki empat pin GPIO, mengaksesnya secara internal sebagai register 32-bit tidak memberikan keuntungan dibandingkan menggunakan register 8-bit.
Saya pikir konsumsi daya selalu akan mendukung mikro 8-bit.
Sebagai contoh, PIC10F200 menarik 175 μA berjalan pada 4 MHz dan 2v dan 100 nA dalam mode tidur. CY8C4013SXI-400 menarik sekitar 800 μA menjalankan @ 4MHz dan 2v dan 1 uA dalam mode tidur. (Datasheet untuk CY8C4013SXI tidak memiliki angka untuk 4 MHz atau 2v, jadi saya harus melakukan beberapa estimasi - datasheet mengatakan itu menarik 2 ma @ 6 MHz dan 3.3v.)
Jadi ARM menggambar 4,5 kali lebih banyak saat ini saat bangun, dan 10 kali saat tidur. Sepertinya tidak banyak, tetapi perbedaannya antara berjalan di sel koin selama 3 bulan atau selama satu tahun. (Saya berasumsi kedua mikrokontroler sebagian besar melakukan pengaturan waktu, memperbarui port dll dan tidak melakukan perhitungan yang sangat berat. Jika yang terakhir adalah kasus, dan mikro 8-bit harus melakukan banyak aritmatika multi-byte untuk periode yang diperpanjang waktu, ia kehilangan sebagian manfaatnya.)
Sangat menarik bahwa ARM menarik arus empat kali lebih banyak daripada 8-pahit, dan pada gilirannya memiliki register internal dan jalur data yang empat kali lebih lebar. Saya pikir ini bukan kebetulan. Untuk CMOS, konsumsi daya kira-kira sebanding dengan jumlah transistor yang diaktifkan, dan ARM jelas melakukan lebih banyak per instruksi yang dieksekusi.
Karena semakin banyak vendor ARM mengeluarkan chip low-end, saya tidak akan terkejut jika vendor seperti Microchip menurunkan harga mereka lebih jauh. Bagaimanapun, dengan harga yang kurang lebih sama, paket ukuran yang sama, tetapi lebih sedikit chip 32-bit untuk dipilih, saya pikir mikrokontroler 8-bit masih akan ada untuk sementara - terutama karena Anda telah punya puluhan ribu insinyur yang akrab dengan mereka.
sumber
Tiga poin utama:
50 ¢ saat Anda memesan 10.000 chip adalah uang yang agak banyak. Terlebih lagi ketika Anda memesan 100.000 chip.
Anda bisa mendapatkan chip 8 bit yang jauh lebih kecil dari chip 32-bit, seperti PIC10 yang tersedia dalam paket SOT23-6.
Chip 32-bit, karena mereka umumnya clock lebih cepat, dan melakukan lebih banyak, mengkonsumsi daya lebih banyak daripada chip 8-bit kecil. Baterai menguras lebih cepat, sistem tenaga harus menyediakan lebih banyak arus (dan karenanya menjadi lebih mahal), dll.
Lagi pula, mengapa Anda membeli raksasa untuk mengambil secangkir gula di sebelah?
sumber
Aplikasi UC yang saya kembangkan untuk produk komersial hampir tidak pernah menangani ukuran data yang lebih besar dari 8 bit; jadi bahkan jika 32-pahit adalah harga yang sama dengan 8-pahit, masih tidak ada manfaatnya. Seperti yang orang lain katakan, kita mencari apa yang akrab, sehingga kita bisa membuangnya lebih cepat. Namun yang terakhir saya kembangkan ternyata mendorong PIC16 yang saya gunakan hingga batasnya dalam segala hal - tapi itu bukan karena ukuran data. Jika saya melakukan hal seperti itu lagi, maka saya benar-benar harus belajar ARM.
sumber
Saya berharap bahwa chip ARM akan mengambil alih sebagian besar fungsi di mana sesuatu berperilaku seperti "komputer". Di sisi lain, banyak mikrokontroler 8-bit membiasakan diri untuk melakukan hal-hal yang dapat dilakukan dengan perangkat logika yang dapat diprogram yang relatif sederhana atau jumlah gerbang yang moderat, tetapi sebenarnya dapat dilakukan lebih murah dan / atau dengan penarikan yang kurang saat ini menggunakan mikro 8-bit sederhana. Ketika merancang aplikasi yang lebih rumit, sering kali lebih mudah menggunakan mikro 32-bit daripada yang 8-bit, tetapi jika seluruh tujuan chip adalah untuk, mis. Menonton dan men-debo input tertentu dan, jika naik tinggi, mulailah menghasilkan 200 pulsa pada output tertentu pada interval 1 ms, kemudian 100 pada interval 2 ms, kemudian 100 pada 3 ms, kemudian berhenti selama 100 ms, dan terus lakukan itu sampai inputnya rendah, merancang kode untuk itu mungkin sebenarnya lebih mudahpada mikro 8-bit daripada pada 32-bit. Perbedaan biaya antara mikro 8-bit dan 32-bit mungkin tidak lagi cukup dalam banyak kasus untuk membenarkan pengeluaran upaya rekayasa tambahan untuk membuat proyek "cocok" dalam mikro 8-bit, tetapi dalam kasus di mana bagian 32-bit tidak akan tidak akan menghemat upaya rekayasa tidak ada alasan untuk menghabiskan bahkan satu sen ekstra.
sumber
Sementara saya setuju bahwa biaya CPU dan konsumsi daya adalah alasan utama, satu pertimbangan lagi yang belum saya lihat tercantum di sini adalah ruang PCB. Untuk banyak jenis sistem tertanam, seperti, katakanlah, skala kamar mandi elektronik, tidak ada banyak kebutuhan untuk I / O, tidak ada manfaat untuk ukuran bus yang lebih besar dan tidak ada manfaat untuk pemrosesan yang lebih cepat. Namun, ada yangmanfaat untuk paket yang lebih kecil dengan pin lebih sedikit karena membuat tata letak dan perutean papan sirkuit cetak lebih sederhana dan sering kali lebih kecil. Jika papan dapat dirancang sebagai papan 2-lapisan daripada papan 4-lapisan, ada penghematan biaya yang cukup besar, dan jumlah pin yang lebih kecil yang sering datang dengan prosesor 8-bit cenderung memfasilitasi penghematan yang lebih mudah daripada 32- prosesor bit yang umumnya memiliki lebih banyak pin dan paket yang secara fisik lebih besar.
sumber
Bahkan dalam dunia 8 bit, tipe yang lebih baru diketahui membutuhkan waktu yang sangat lama untuk mengambil alih tipe yang lebih tua - lihat MCS51 masih hidup di ceruknya dan MCS48 masih ditemukan di tempat-tempat yang tidak terduga.
Dalam banyak kasus, perubahan tidak terjadi karena tidak membawa nilai tambah, dan disertai dengan biaya mempelajari teknologi baru yang belum terbukti tetap ada dan / atau diharapkan masih menjadi target yang bergerak (yang membuat ini menarik bagi orang-orang yang ingin fokus pada teknologi MCU tetapi menjengkelkan bagi orang-orang yang ingin fokus pada aplikasi mereka dan tidak terus-menerus memperbaiki dan menguji ulang perangkat lunak produksi untuk mengadaptasi ARM vintage tahun ini!). Bagi sebagian orang, komponen yang tidak lagi dikembangkan sudah usang, bagi yang lain komponen itu akhirnya menjadi stabil , dan sementara itu mungkin perlu solusi untuk bug yang tumbuh ke dalam, itu setidaknya menyediakan platform yang stabil untuk ini. Aliran lahar tidak selalu merupakan antipattern yang menjadi retak - cenderung membuat gunung tetap ...
sumber