Apakah mungkin untuk memutakhirkan firmware pada Arduino sehingga dapat melakukan lebih banyak hal seperti mengubah undervolting / overvolting untuk memberikan kekuatan pemrosesan yang lebih. Untuk melakukan ini, Anda harus mem-flash chip itu sendiri, jadi bagaimana hal itu dapat dilakukan?
arduino-uno
firmware
JVarhol
sumber
sumber
Jawaban:
Untuk menjawab aspek pertanyaan Anda tentang "firmware" pada ATmega328p MCU yang digunakan di sebagian besar papan Arduino:
Tidak ada firmware pada ATmega sama sekali selain dari bootloader. Program yang Anda tulis berjalan langsung pada perangkat keras.
Ada pengaturan "sekering" tertentu yang ditetapkan dengan pemrogram ISP . Namun, hanya ada 24 di antaranya (tiga byte), dan sebagian besar berhubungan dengan konfigurasi tingkat rendah, dan bukan yang saya pikir Anda tanyakan:
Ada juga Bootloader , yang merupakan program kecil yang duduk di segmen terpisah dari memori program MCU dan memungkinkannya untuk memperbarui sendiri saat startup (yang merupakan cara semua arduinos diprogram). Namun, itu hanya berjalan untuk jangka waktu singkat saat startup, dan sepenuhnya dihapus dari memori setelah MCU telah melompat ke program utama.
Terakhir, ada MCU tambahan (ATmega16U2 / 8U2) pada sebagian besar papan Arduino yang digunakan sebagai antarmuka serial-USB, yang dapat diperbarui untuk berperilaku berbeda (misalnya mengemulasi keyboard / mouse), tetapi sekali lagi, ini sebenarnya bukan perubahan ke prosesor inti, jadi apakah itu dianggap sebagai "menginstal firmware yang berbeda" tergantung pada bagaimana Anda mendefinisikan Arduino.
Sungguh, saya akan sangat merekomendasikan membaca lembar data ATmega328P . Ini adalah dokumentasi untuk MCU yang pada dasarnya membentuk "Arduino". Ini harus membahas apa yang tampaknya kesalahpahaman.
sumber
Perhatikan bagan di bawah ini, berkenaan dengan over / over volting perangkat Anda untuk F_CPU berbeda, menunjukkan hubungannya. Akibatnya, Anda menemukan sebagian besar Arduino beroperasi pada 5V dan clock rate 16MHz. Sementara ada beberapa varian 3.3V yang berjalan pada 8MHz.
Namun, pustaka inti yang dilengkapi dengan IDE biasanya memiliki # if's untuk kecepatan F_CPU 8 dan 16 MHz, tidak menggunakan rumus di sebagian besar tempat.
Karena itu dimungkinkan untuk melakukan apa yang Anda minta. Namun, Anda akan menemukan keterbatasan perpustakaan inti yang mempengaruhi. Tip rasio biaya vs manfaat, dengan niat yang sangat. Dan kemungkinan besar orang akan meninggalkan Stock IDE dan perpustakaan inti ke metode makefile yang lebih.
sumber