Czy możliwe jest uaktualnienie oprogramowania układowego w Arduino, aby mógł robić więcej rzeczy, takich jak zmiana zaniżania / przepięcia w celu zapewnienia większej mocy przetwarzania. Aby to zrobić, najprawdopodobniej musiałbyś ponownie sflashować sam układ, więc jak by to osiągnąć?
arduino-uno
firmware
JVarhol
źródło
źródło
Odpowiedzi:
Aby odpowiedzieć na pytanie dotyczące „oprogramowania układowego” w MCU ATmega328p stosowanego w większości płyt Arduino:
W ATmega nie ma żadnego oprogramowania układowego oprócz bootloadera. Programy, które piszesz, działają bezpośrednio na sprzęcie.
Istnieją pewne ustawienia „bezpiecznika”, które są ustawiane za pomocą programatora ISP . Jest ich jednak tylko 24 (trzy bajty) i w dużej mierze dotyczą one konfiguracji niskiego poziomu i nie są tym, o co myślę, że pytasz:
Istnieje również Bootloader , który jest małym programem, który znajduje się w oddzielnym segmencie pamięci programu MCU i pozwala mu się aktualizować podczas uruchamiania (tak programowane są wszystkie arduinos). Jednak podczas uruchamiania działa tylko przez krótki czas i jest całkowicie usuwany z pamięci po przejściu MCU do programu głównego.
Na końcu są dodatkowe MCU (ATmega16U2 / 8U2) na większości kart arduino, które są używane jako interfejsy szeregowe USB, które można aktualizować, aby działały inaczej (np. Emulowały klawiaturę / mysz), ale znowu, to nie jest w rzeczywistości zmiana do rdzenia procesora, więc to, czy liczy się to jako „instalowanie innego oprogramowania układowego”, zależy od tego, jak zdefiniujesz arduino.
Naprawdę zdecydowanie polecam przeczytanie arkusza danych ATmega328P . To jest dokumentacja MCU, która zasadniczo tworzy „Arduino”. Powinien zająć się czymś, co wydaje się być nieporozumieniem.
źródło
Zwróć uwagę na poniższą tabelę dotyczącą niskiego / nadmiernego napięcia urządzenia dla różnych F_CPU, wskazującego związek. W rezultacie większość Arduino działa przy 5 V i częstotliwości taktowania 16 MHz. Chociaż istnieje kilka wariantów 3,3 V, które działają z częstotliwością 8 MHz.
Jednak biblioteka podstawowa dostarczana z IDE zazwyczaj ma specyficzne #, jeśli dotyczy zarówno prędkości F_CPU 8, jak i 16 MHz, nie używając formuły w większości miejsc.
Dlatego możliwe jest robienie tego, o co prosisz. Znajdziesz jednak podstawowe ograniczenia dotyczące biblioteki. Przechylając stosunek kosztów do korzyści, do samego celu. I wtedy prawdopodobnie pozostawiłoby Stock IDE i podstawowe biblioteki bardziej makefile.
źródło