Saya memiliki papan Arduino ATMega328 khusus yang umumnya berjalan pada 5V @ 8MHz (menggunakan profil dan bootloader Arduino Pro 3.3V 8MHz). Alasan utama saya menggunakan pengaturan ini adalah agar saya dapat mematikan papan ketika daya utama terputus dan mulai kehabisan daya baterai (3V dari sel koin). Sumber 5V dan 3V dioda OR'ed bersama-sama dan input 5V diikat ke INT0. Dalam kode, ketika mendeteksi bahwa INT0 telah jatuh rendah, itu menginisialisasi mode tidur dan semuanya mati dengan pengecualian pengawas waktu yang menjaga siklus 1Hz untuk menjaga jumlah internal dan memeriksa chip harus dibangunkan kembali. Ini bekerja dengan baik ketika daya 5V diterapkan pertama kali, kemudian baterai dimasukkan, lalu5V terputus. Ini pergi tidur dan ketika 5V dibawa kembali itu bangun dan aku bisa melihatnya belum hilang hitungan.
Namun, masalahnya muncul ketika 3V diterapkan terlebih dahulu . Sejujurnya saya tidak yakin apakah ini booting. Tapi apa yang seharusnya dilakukan adalah boot, periksa apakah INT0 (Digital 2) rendah dan, jika demikian, langsung tidur. Dengan menonton undian saat ini saya melihat bahwa daya hingga beberapa mA selama beberapa detik, kemudian turun menjadi sekitar 0,3mA (masih lebih tinggi dari yang seharusnya dalam mode tidur). Tetapi ketika saya mendaftar ulang 5V, tidak ada . Pengambilan daya kembali tetapi tidak responsif (melalui serial FTDI).
Apakah mungkin ada sesuatu yang saya lewatkan sehingga tidak dapat di-boot pada 3V ... secara teori seharusnya berjalan dengan baik.
Pembaruan: Saya menjatuhkan LED ke D13 dan mencoba sketsa kedip. Bekerja dengan baik ketika mulai dari 3V atau 5V. Namun, ketika saya menjalankan firmware saya dan memulainya dari 3V, LED hanya mulai berkedip liar. Saya tidak tahu apa yang menyebabkannya karena saya bahkan tidak pernah mengatur D13 sebagai sesuatu dalam kode saya. Tapi itu membuat saya merasa itu ada hubungannya dengan bootloader ...