logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMEGA128 – brak pinów MISO/MOSI/RESET w schemacie, jak programować przez ISP?

darex120 11 Paź 2025 17:00 1935 68
Najlepsze odpowiedzi

Jak zaprogramować ATmega128 przez ISP, gdy w schemacie nie widać bezpośrednio pinów MISO, MOSI i RESET?

ATmega128 programuje się przez ISP po podłączeniu USBasp do właściwych linii SPI mikrokontrolera: MISO, MOSI, SCK, RESET, VCC i GND; dla ATmega128 są to wyprowadzenia portu B, czyli PB3=MISO, PB2=MOSI, PB1=SCK i PB0/SS, więc złącze ISP na płycie może być poprawne mimo braku tych nazw wprost na schemacie [#21717421][#21753440] Jeśli programator nie wykrywa układu, ustaw tryb „slow CLK” albo niską częstotliwość bit clock, bo ATmega128 może wymagać wolniejszego taktowania przy programowaniu [#21717421][#21732429] Warto też sprawdzić fusebity, zasilanie i połączenia, bo błędne ustawienia zegara potrafią sprawić, że procesor przestaje być widoczny dla programatora [#21732429]
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.

Podsumowanie tematu

✨ Dyskusja dotyczy problemów z programowaniem mikrokontrolera ATMEGA128 przez interfejs ISP, zwłaszcza braku widocznych na schemacie pinów MISO, MOSI i RESET, które są niezbędne do programowania przez USBASP. Okazało się, że w niektórych projektach, np. sterowniku akwariowym, złącze opisane jako ISP jest w rzeczywistości interfejsem UART (piny RX, TX), co uniemożliwia programowanie standardowym programatorem USBASP korzystającym z SPI. Rozwiązaniem było podłączenie się bezpośrednio do właściwych pinów ATMEGA128 (11, 12, 13, 20) odpowiadających MISO, MOSI, SCK i RESET zgodnie z datasheetem. Zalecano użycie trybu "slow CLK" w programatorze USBASP, np. w AVRDUDESS, aby poprawnie wykryć mikrokontroler.

W trakcie programowania pojawiły się problemy z fusebitami i blokadą procesora, które udało się rozwiązać przez przywrócenie właściwych ustawień fusebitów i stosowanie niskiej częstotliwości taktowania. Po wgraniu oprogramowania sterownik akwariowy uruchamiał się, ale wyświetlacz LCD (zgodny ze sterownikiem KS0108, zakupiony w firmie Artronic) początkowo nie wyświetlał nic lub pokazywał nieczytelne dane. Okazało się, że konieczne jest podłączenie modułu RTC oraz klucza sprzętowego (gniazdo "SAFE"), bez którego sterownik pozostaje zablokowany na ekranie powitalnym. Próby obejścia klucza nie powiodły się, a kontakt z autorem projektu był niemożliwy.

Dodatkowo omówiono podłączenie wyświetlacza ILI9486 Waveshare do ATMEGA128, gdzie SPI jest na porcie B (PB3 - MISO, PB2 - MOSI, PB1 - SCK, PB0 - SS/CS). Problemy z wyświetlaniem na tym LCD wynikały z nieprawidłowego podłączenia pinów i konfiguracji. Wskazano też, że przetwornica QDC1WDIL5/5 zapewnia separację galwaniczną i może być zastąpiona inną o podobnych parametrach. Do programowania i weryfikacji firmware polecano program AVRDUDESS jako wygodny i darmowy.

Podsumowując, kluczowe kwestie to prawidłowe podłączenie pinów ISP zgodnie z datasheetem ATMEGA128, ustawienie fusebitów i taktowania, konieczność posiadania modułu RTC i klucza sprzętowego do uruchomienia sterownika oraz poprawne podłączenie i konfiguracja wyświetlaczy LCD.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA