Jawaban atas pertanyaan Anda berbeda tergantung pada apa tujuan akhir Anda. Jika Anda membutuhkan sedikit atau kurang dari perangkat ini, Anda harus membuat pengembangan lebih mudah, dan tidak perlu khawatir tentang biaya komponen. Jika Anda akan membuat seribu atau lebih dari ini, ada baiknya menganalisis persyaratan Anda dan mengurangi biaya perangkat keras perangkat.
Jumlah kecil
Jika Anda menjalankan perangkat ini satu kali atau sedikit, maka upaya pengembangan Anda akan membanjiri biaya per-item Anda, dan Anda harus fokus pada apa yang akan termudah / tercepat untuk Anda kembangkan, daripada biaya / ukuran mikroelektronik.
Secara umum enkapsulasi dapat mengurangi kompleksitas, meningkatkan produktivitas Anda. Jika Anda memiliki beberapa persyaratan real-time yang sulit, seperti kontrol BLDC, loop PID, dll, maka Anda mungkin menemukan lebih cepat untuk menggunakan pengontrol terpisah khusus untuk tugas-tugas yang berkomunikasi dengan pengontrol di mana Anda menjaga antarmuka pengguna dan non-real lainnya tugas waktu.
Jadi dalam hal ini, jawaban atas pertanyaan Anda adalah:
Apakah pendekatan all-in-one adalah ide yang bagus ketika harus melakukan banyak tugas multitasking, atau apakah lebih baik melakukan segmentasi dan mengisolasi, dan
Skala tips sedikit menuju segmentasi dan isolasi. Alasan utama adalah bahwa debugging sistem waktu nyata bisa sangat memakan waktu, dan menjaga tugas-tugas seperti itu pada prosesor mereka sendiri membatasi variabel yang harus Anda ukur atau kontrol ketika mencoba menemukan mengapa sesuatu tidak berfungsi dengan benar.
Bagaimana saya bisa mengetahui secara intuitif jika mikrokontroler yang saya lihat memiliki daya komputasi yang cukup untuk melakukan apa yang saya butuhkan berdasarkan daftar tugas saya?
Dalam hal ini perbedaan biaya antara prosesor 32 bit dengan banyak sumber daya dan prosesor 8 bit dengan sumber daya terbatas relatif kecil dibandingkan dengan jumlah waktu yang Anda habiskan untuk pengembangan. Ada sedikit alasan untuk mencoba dan mencari tahu berapa banyak daya yang Anda butuhkan - dapatkan saja prosesor terbesar yang menurut Anda dapat Anda kembangkan dan gunakan itu. Jika pada suatu saat nanti Anda perlu mengoptimalkan desain biaya, itu relatif mudah untuk mengukur penggunaan sumber daya prosesor yang sebenarnya, kemudian pilih prosesor lessor yang dapat menangani beban aktual. Sampai saat itu, gunakan yang terbesar dan jangan khawatir tentang menemukan "paling cocok".
Produksi massal
Jika Anda berencana untuk membuat banyak perangkat ini, maka analisis yang cermat akan menghasilkan penghematan biaya yang signifikan. Secara umum, mikrokontroler yang lebih besar akan menelan biaya kurang dari dua mikrokontroler yang mampu menggantikan mikrokontroler tunggal, meskipun tentu ada pengecualian tergantung pada tugas-tugas khusus yang diperlukan. Pada jumlah ini, biaya perangkat keras kemungkinan akan jauh lebih besar daripada biaya pengembangan, jadi Anda harus berharap untuk menghabiskan lebih banyak waktu menganalisis persyaratan Anda dan melakukan pengembangan daripada yang akan Anda lakukan jika Anda hanya menghasilkan sedikit.
Apakah pendekatan all-in-one adalah ide yang baik ketika harus melakukan banyak tugas multitasking, atau lebih baik melakukan segmentasi dan mengisolasi?
Pendekatan all-in-one umumnya akan lebih murah sepanjang umur seluruh proyek daripada beberapa prosesor. Ini akan membutuhkan lebih banyak pengembangan dan waktu debug untuk memastikan berbagai tugas tidak bertentangan, tetapi desain perangkat lunak yang ketat akan membatasi hampir sebanyak memiliki perangkat keras terpisah.
Bagaimana saya bisa mengetahui secara intuitif jika mikrokontroler yang saya lihat memiliki daya komputasi yang cukup untuk melakukan apa yang saya butuhkan berdasarkan daftar tugas saya?
Anda perlu memahami tugas yang ingin Anda lakukan dan berapa banyak sumber daya yang mereka ambil. Misalkan yang berikut ini benar:
Rutinitas BLDC PI Anda akan mengkonsumsi X siklus waktu prosesor 100 kali per detik, dan masing-masing membutuhkan sekitar 50 byte RAM untuk operasi, 16 byte EEPROM untuk penyetelan, dan 1k flash untuk kode. Mereka masing-masing membutuhkan 3 periferal 16 bit PWM dalam mikrokontroler. Anda mungkin perlu menentukan jitter, yang akan memiliki persyaratan latensi interupsi tertentu.
USB dan rutinitas serial Anda akan mengkonsumsi siklus Y dari waktu prosesor sesuai kebutuhan, 2k RAM, 64 byte EEPROM, dan 8k flash. Ini akan membutuhkan USB dan periferal serial.
GUI Anda akan mengkonsumsi daya siklus Z 30 kali per detik, dan akan membutuhkan 2k RAM, 128 byte EEPROM, dan 10k flash. Ini akan menggunakan 19 I / O untuk komunikasi dengan LCD, tombol, kenop, dll.
Ketika Anda baru mulai, mungkin sulit untuk memahami apa itu X, Y, Z sebenarnya, dan ini akan berubah sedikit tergantung pada arsitektur prosesor. Namun Anda harus dapat memahami, dalam perkiraan rata-rata, berapa banyak ram, eeprom, dan flash yang akan dibutuhkan desain Anda, dan periferal apa yang Anda butuhkan. Anda dapat memilih rangkaian prosesor yang memenuhi memori dan persyaratan periferal dan memiliki beragam opsi kinerja dalam keluarga itu. Pada titik itu, untuk pengembangan, Anda cukup menggunakan prosesor paling kuat di keluarga. Setelah Anda menerapkan desain Anda, Anda dapat dengan mudah memindahkan keluarga dalam hal daya ke opsi biaya yang lebih rendah tanpa mengubah desain atau lingkungan pengembangan Anda.
Setelah cukup banyak melakukan desain ini, Anda dapat memperkirakan X, Y, dan Z dengan lebih baik. Anda akan tahu bahwa rutinitas BLDC PI, meskipun sering dijalankan, cukup kecil dan membutuhkan siklus yang sangat sedikit. USB dan serial rutin membutuhkan banyak siklus, tetapi jarang terjadi. Antarmuka pengguna memerlukan beberapa siklus sering untuk menemukan perubahan, tetapi akan membutuhkan banyak siklus jarang memperbarui tampilan, misalnya.