Mam niestandardową kartę Arduino ATMega328, która ogólnie działa przy 5 V @ 8 MHz (przy użyciu profilu Arduino Pro 3.3 V 8 MHz i programu ładującego). Głównym powodem, dla którego korzystam z tej konfiguracji jest to, że mogę uśpić płytę, gdy główne zasilanie zostanie odłączone i zacznie się wyczerpywać moc baterii (3 V z ogniwa monety). Źródła 5 V i 3 V są połączone diodami OR, a wejście 5 V jest powiązane z INT0. W kodzie, gdy wykryje, że INT0 spadł do niskiego poziomu, inicjuje tryb uśpienia i wszystko wyłącza się, z wyjątkiem timera watchdoga, który utrzymuje cykl 1Hz, aby zachować wewnętrzne zliczanie i sprawdzić, czy chip powinien zostać obudzony z powrotem. Działa to pięknie , gdy zasilanie 5V jest stosowany, potem jest włożona bateria, następnie5 V jest odłączone. Kładzie się spać, a gdy przywrócone zostaje napięcie 5 V, budzi się i widzę, że nie stracił na wartości.
Jednak problem pojawia się, gdy jest stosowana 3V pierwszy . Nie jestem pewien, czy to w ogóle się uruchamia. Ale to, co powinien zrobić, to uruchomić, sprawdzić, czy INT0 (Digital 2) jest niski, a jeśli tak, idź od razu do snu. Obserwując bieżący pobór, widzę, że zasila do kilku mA przez kilka sekund, a następnie spada do około 0,3 mA (nadal wyższy niż powinien być w trybie uśpienia). Ale kiedy ponownie zastosuję 5 V, nic . Pobór mocy powraca, ale nie odpowiada (w porównaniu z szeregowym FTDI).
Czy jest coś, za czym tęsknię, że nie można go uruchomić na 3V ... teoretycznie powinien działać dobrze.
Aktualizacja: Upuściłem diodę LED na D13 i wypróbowałem szkic mrugnięcia. Działa dobrze, gdy zaczynasz od 3 V lub 5 V. Jednak gdy uruchamiam oprogramowanie wewnętrzne i uruchamiam je z napięcia 3 V, dioda LED zaczyna po prostu pulsować. Nie mam pojęcia, co go powoduje, ponieważ nigdy nie ustawiłem D13 jako czegokolwiek w moim kodzie. Ale to sprawia, że mam coś wspólnego z bootloaderem ...