Cześć,
kupiłem nową ATmegę328P do projektu na studia. Działała bez problemu przy prostych programach sterujących świeceniem diody. Schody zaczęły się gdy podpiąłem kwarc 16MHz i przestawiłem fusebity (lfuse = 0xFF). AVRDUDE co prawda wykrywał podpięte urządzenie, ale niepoprawna była jego sygnatura. Co ciekawe, przy każdym wywołaniu komendy zmieniała się. Czasami udawało się nawet trafić w sygnaturę charakterystyczną dla ATmegi328P, ale odczytywane wartości fusów bywały przekłamywane.
Postanowiłem przywrócić pierwotne wartości fusebitów. W tym celu kupiłem ATmegę8A, żeby posłużyła jako generator częstotliwości. W ten sposób udało mi się przywrócić komunikację z ATmegą328P. Ale każda kolejna próba zmiany fusów kończyła się tym samym problemem. Nie dało mi się wypalić bootloadera Arduino, ponieważ IDE "nie widziało" ATmegi.
Myśląc, że problem leży po stronie mikrokontrolera, kupiłem nową ATmegę328P już z wgranym bootloaderem. Przy okazji wymieniłem też kwarc. To też nie poprawiło sytuacji, nadal był ten sam problem. Uznałem, że wina leży po stronie programatora USBasp, kupiłem nowy, ale tu też bez zmian.
Próbowałem przeinstalowywać sterowniki programatora, sprawdzałem na drugim komputerze, wymieniałem kondensatory 22pF, używałem zasilania zewnętrznego i z programatora, wpisywałem przełącznik -b do zmiany szybkości, wielokrotnie sprawdzałem przewody i nic. Wykluczam uszkodzenie mikrokontrolera, bo już wgrany program działa, np. migający diodą. Z kwarcem robi się to z większą częstotliwością.
Kończą mi się pomysły, nie jestem w stanie wskazać winowajcy, a czas ukończenia projektu nieustannie się zbliża.
Obecne ustawienia fusebitów: lfuse - 0xFF, hfuse - 0xDE, efuse - 0x05.
Zdjęcie układu (linie zasilania i masy są połączone poniżej):
Błędy z avrdude:
Pozdrawiam
kupiłem nową ATmegę328P do projektu na studia. Działała bez problemu przy prostych programach sterujących świeceniem diody. Schody zaczęły się gdy podpiąłem kwarc 16MHz i przestawiłem fusebity (lfuse = 0xFF). AVRDUDE co prawda wykrywał podpięte urządzenie, ale niepoprawna była jego sygnatura. Co ciekawe, przy każdym wywołaniu komendy zmieniała się. Czasami udawało się nawet trafić w sygnaturę charakterystyczną dla ATmegi328P, ale odczytywane wartości fusów bywały przekłamywane.
Postanowiłem przywrócić pierwotne wartości fusebitów. W tym celu kupiłem ATmegę8A, żeby posłużyła jako generator częstotliwości. W ten sposób udało mi się przywrócić komunikację z ATmegą328P. Ale każda kolejna próba zmiany fusów kończyła się tym samym problemem. Nie dało mi się wypalić bootloadera Arduino, ponieważ IDE "nie widziało" ATmegi.
Myśląc, że problem leży po stronie mikrokontrolera, kupiłem nową ATmegę328P już z wgranym bootloaderem. Przy okazji wymieniłem też kwarc. To też nie poprawiło sytuacji, nadal był ten sam problem. Uznałem, że wina leży po stronie programatora USBasp, kupiłem nowy, ale tu też bez zmian.
Próbowałem przeinstalowywać sterowniki programatora, sprawdzałem na drugim komputerze, wymieniałem kondensatory 22pF, używałem zasilania zewnętrznego i z programatora, wpisywałem przełącznik -b do zmiany szybkości, wielokrotnie sprawdzałem przewody i nic. Wykluczam uszkodzenie mikrokontrolera, bo już wgrany program działa, np. migający diodą. Z kwarcem robi się to z większą częstotliwością.
Kończą mi się pomysły, nie jestem w stanie wskazać winowajcy, a czas ukończenia projektu nieustannie się zbliża.
Obecne ustawienia fusebitów: lfuse - 0xFF, hfuse - 0xDE, efuse - 0x05.
Zdjęcie układu (linie zasilania i masy są połączone poniżej):
Błędy z avrdude:
Kod: Dos
Pozdrawiam
