Katakanlah Anda memulai proyek tertanam dengan beberapa fungsi yang diketahui. Ketika Anda memilih mikrokontroler, bagaimana Anda memilih berapa banyak RAM yang Anda butuhkan?
Apakah Anda menggunakan papan pengembang dan kode proyek Anda terlebih dahulu dan kemudian melihat berapa banyak memori yang Anda gunakan dan kemudian pilih mikrokontroler yang sesuai yang sesuai dengan memori itu?
Apakah Anda hanya memilih mikrokontroler gemuk untuk prototipe dan kemudian menurunkan setelah Anda memiliki produk yang berfungsi?
Apakah Anda hanya memilih sesuatu yang Anda yakin akan cukup dan jika Anda kehabisan ruang, cukup tingkatkan ke kepadatan memori yang lebih tinggi jika tidak, Anda hanya mempertahankan mikrokontroler yang ada?
Apa yang dianggap sebagai praktik yang baik?
sumber
Jawaban:
Secara pribadi untuk proyek hobi saya cenderung menggunakan mikrokontroler paling kuat di keluarga dengan jejak yang benar. Saya kemudian mengembangkan PCB, menulis beberapa kode dan menghasilkan prototipe.
Ini memiliki keuntungan bahwa saya tahu sejumlah kecil mikrokontroler cukup baik, jadi saya dapat dengan cepat membuat prototipe tanpa harus membaca seluruh lembar data. Saya juga punya papan breakout dan templat kode untuk mereka.
Jika berfungsi dan saya membuat lebih dari beberapa, saya kemudian membeli mikrokontroler termurah yang memiliki periferal yang tepat dan memori yang cukup untuk apa pun yang saya kodekan sebelumnya. Ini dapat mengganggu jika register internal berubah (terjadi pada PIC) atau jika salah satu mikrokontroler memiliki periferal tambahan yang perlu dinonaktifkan untuk membuat kode berfungsi.
Namun untuk tujuan produksi ini akan memungkinkan Anda mencukur jumlah yang wajar dari setiap unit.
sumber
Tentu saja, untuk prototipe buatan sendiri mungkin merupakan rekomendasi yang baik untuk memulai dengan yang paling kuat dari semua mikros kompatibel dan turunkan setelahnya.
Namun jika Anda ingin memenangkan penawaran, Anda harus memberi tahu pelanggan harga sebelum Anda memiliki uang untuk mengimplementasikan apa pun.
Oleh karena itu, praktik yang baik adalah menuliskan semacam spesifikasi sebelum Anda memulai pemrograman. Anda tahu apa yang ingin Anda lakukan, dan Anda harus menuliskan bagaimana Anda akan melakukannya.
"Bagaimana" ini juga termasuk memikirkan tentang desain perangkat lunak, menjawab pertanyaan seperti:
Menyimpulkan semua nilai itu memberi Anda perkiraan kasar. Seberapa jauh Anda bisa percaya itu tergantung pada seberapa rinci analisis Anda, dan itu tergantung pada pengalaman Anda :-)
Menambahkan margin minimal 30.,50% dari estimasi Anda tentu merupakan ide yang bagus.
Setelah produk Anda selesai dan Anda memiliki sekitar 80..90% RAM yang digunakan, Anda dapat yakin bahwa pilihan Anda benar - setidaknya mengenai RAM.
sumber
Kalau saja mungkin untuk membuat kode sistem tertanam Anda terlebih dahulu dan kemudian membangun perangkat keras. Itu akan membuat hidup semua orang lebih mudah. Sayangnya, itu juga berarti tenggat waktu Anda di luar jendela. Biasanya perangkat keras harus dirancang jauh sebelum perangkat lunak dilakukan karena bagian-bagian perangkat keras seringkali memiliki waktu tunggu yang lama.
Dengan demikian, pengembang sw yang tertanam biasanya perlu memperkirakan kebutuhan memori dan CPU program mereka. Langkah pertama Anda harus mencoba dan meyakinkan orang-orang perangkat keras untuk memberi Anda mikrokontroler / CPU paling kuat dengan RAM sebanyak mungkin. Itu jarang berhasil karena mereka memiliki persyaratan tujuan mereka sendiri, tetapi sesekali Anda beruntung.
Jika itu tidak berhasil, maka hal berikutnya yang akan Anda lakukan adalah desain perangkat lunak tingkat tinggi dan memecah modul menjadi fungsionalitas. Anda kemudian akan memperkirakan garis kode untuk setiap fungsi untuk setiap modul dalam sistem. Anda kemudian dapat menggunakan rumus untuk mengonversi baris kode ke perkiraan rata-rata memori kode. Anda juga akan menyelidiki persyaratan memori yang tidak biasa (seperti array besar) dan menambahkan beberapa perkiraan untuk mengakomodasi itu. Kemudian tambahkan beberapa persentase di atas total itu untuk menutupi apa pun yang Anda lewatkan. Kemudian gandakan bahwa untuk memenuhi persyaratan pemanfaatan 50% khas.
Ya, itu butuh waktu. Ya, perlu untuk melewati semua rintangan karena mengubah perangkat keras benar-benar sulit setelah dibangun.
sumber
Secara umum, vendor mikrokontroler menaruh berbagai memori dalam perangkat mereka yang cocok untuk aplikasi tipikal. Jadi, jika Anda hanya memerlukan beberapa pin I / O dan satu SPI dalam perangkat footprint kecil, Anda tidak akan menemukan apa pun yang dikirimkan dengan 500 kBytes Flash dan 64 kBytes RAM. Dengan perangkat yang lebih besar, yang lebih dekat ke paket SoC, bahkan yang terkecil hampir pasti cukup besar kecuali jika Anda berencana untuk melakukan sejumlah angka serius seperti pemrosesan gambar.
Dalam lingkungan profesional kunci untuk memilih mikrokontroler yang tepat adalah dengan menggunakan data historis. Anda akan memiliki catatan tentang proyek lain yang telah Anda kembangkan dan tahu apa memori dan sumber daya silikon lain yang diperlukan untuk mengimplementasikan setiap fitur. Anda akan tahu apa yang diharapkan dilakukan oleh produk dan oleh karena itu memiliki daftar fitur yang baik dan dapat dengan cepat dan akurat menghitung sumber daya yang perlu disediakan oleh mikrokontroler. Mencoba menebak kebutuhan sumber daya dari spesifikasi desain di muka (dikembangkan pada awal proyek ketika sedikitnya informasi tentang sistem tersedia) tidak dapat diandalkan pada saat terbaik dan hanya insinyur yang sangat berpengalaman, yang telah membangun sebuah komprehensif database data historis di kepala mereka sendiri, akan memiliki segala jenis keberhasilan dalam menggunakan metode ini.
Banyak perusahaan telah mengadopsi pendekatan 'Agile' untuk perangkat lunak dan desain elektronik, yang melibatkan pembuatan 'perpustakaan' papan fitur kecil (misalnya papan RS-485, papan ADC, dll.) Bersama dengan papan platform generik yang menjadi tuan rumah mikrokontroler , dengan cara yang mirip dengan menggunakan dev-kit dan plug-in. Suatu produk kemudian dapat diujicobakan dengan cepat (dalam beberapa jam) dengan memilih dan menghubungkan set board yang diperlukan untuk fitur. Perangkat lunak ini dirakit dengan cara yang sama dari modul perpustakaan dan dapat porting dan diuji dengan cepat. Setelah ukuran bagian hardware-spesifik dari kode diketahui itu biasanya cukup untuk memilih bagian terkecil yang akan berisi itu. Pengecualian adalah yang disebutkan di atas di mana fungsi perangkat melibatkan data besar atau algoritma yang sangat kompleks. Metode ini memberikan
(Keuntungan lain dari pendekatan Agile adalah memungkinkan pengembangan perangkat lunak dan elektronik dilakukan secara paralel, dengan desain elctronics menjadi latihan dalam mengintegrasikan set papan fitur dan melakukan EMC yang relevan dan hal-hal sulit lainnya pada saat yang sama dengan perangkat lunak aplikasi sedang dikembangkan pada rakitan protoype. Beberapa porting dan integrasi masih diperlukan, tetapi hal ini dilakukan ketika perangkat lunak dan elektronik yang berfungsi keduanya tersedia.)
sumber