Instalowanie innego oprogramowania na Arduino

12

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ąć?

JVarhol
źródło
2
Większość nowych funkcji zapewniają biblioteki i programowanie. O jakich „więcej rzeczach” mówisz?
TheDoctor
Co powiedział TheDoctor, co masz na myśli przez więcej rzeczy? Ponadto, o czym mówisz „oprogramowanie układowe”? Oprogramowanie / system operacyjny jest na pokładzie?
hichris123
Czy powinienem po prostu usunąć pytanie
JVarhol
@JVarhol Jeśli możesz to uczynić jaśniejszym, nie, zachowaj to. Po prostu wyjaśnij nam, co dokładnie myślisz o ...
hichris123
Wiem, że możesz zainstalować nowe oprogramowanie układowe na szeregowym układzie USB, aby móc emulować klawiaturę
TheDoctor

Odpowiedzi:

7

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:
wprowadź opis zdjęcia tutaj

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.

Connor Wolf
źródło
5

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.

Freq vs Vcc

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.

mpflaga
źródło
Najwyraźniej można go podkręcić do 20 MHz
TheDoctor
@TheDoctor - to nie jest podkręcanie. ATmega328p ma moc 20 MHz. Arduino są w rzeczywistości podkręcone do 16 MHz.
Connor Wolf,
@FakeName tak, miałem na myśli, że możesz zmodyfikować płytkę Arduino, aby mieć niezbędny rezonator, aby dostroił się do częstotliwości 20 MHz
TheDoctor
Och, kolejna uwaga. Zasadniczo można przekroczyć bezpieczny obszar operacyjny bez większych problemów. Mam kilka płyt działających z 16 MHz z szynami 3.3V bez problemów. Mogą mieć problemy ze stabilnością w ekstremalnych temperaturach, ale wydaje się, że działają głównie dobrze w temperaturze pokojowej.
Connor Wolf,