sobota, 28 kwietnia 2018

Programowanie Atmega1284P programatorem USBasp

Ostatnio opisałem jak zaprogramować Atmegę 1284P dla SD2IEC poprzez port LPT w komputerze, jednak nowsze komputery nie posiadają tego portu.

Możemy jednak zaprogramować Atmegę 1284P poprzez programator USB USBasp.

Kosz zakupu nie jest zbyt wielki, można go kupić za około 10 zł.

Programator jest według projektu Thomasa Fischla i opis oraz sterowniki jest dostępny na stronie -> Link



Programator posiada zworki JP1, gdzie ustawiamy napięcie pracy, ustawiamy na 5V oraz JP2, która po zwarciu pozwala zaprogramować układ w samym programatorze.

Czasem po zakupie programator nie jest poprawnie wykrywany w systemie Windows i musimy mu wgrać firmware czyli oprogramowanie Thomasa Fischla.

Możemy do tego celu użyć Arduino Uno.

Ściągamy plik usbasp.2011-05-28.tar.gz ze strony Thomasa Fischla -> Link

Po rozpakowaniu w folderze bin będzie firmware i sterowniki pod Windowsa.

Najpierw wgramy firmware do programatora.

Ściągamy program Arduino i instalujemy -> Link

Sygnały w gnieździe programatora USBasp są jak na zdjęciu niżej, dla mojego egzemplarza ustaliłem, że masa jest na pinie numer 8.


Łączymy piny USBasp według schematu:

VCC - 5V Arduino
GND - GND Arduino
RST - 10 Arduino
MOSI - 11 Arduino
MISO - 12 Arduino
SCK - 13 Arduino

Łączymy piny JP2 zworką, jeżeli nie ma goldpinów, to musimy je dolutować.

Tak przygotowane Arduino Uno podłączamy do komputera.

Uruchamiamy program Arduino wybieramy Uno i odpowiedni port Com


Teraz w Plik -> Przykłady wybieramy ArduinoISP


Programujemy Arduino klikając w strzałkę u góry po lewej stronie.

Zamykamy program Arduino.

We wcześniejszym wpisie -> Link podałem link do programu WinAVR, jeżeli go mamy nie musimy go ściągać. Folder z programem to Winavr.

Wcześniej programowałem na komputerze z Windowsem XP i portem LPT, teraz robię to na Windows 10.

Uruchamiamy wiersz poleceń -> prawy klawisz myszy na okienku po prawej w Windows 10 i wybieramy Uruchom i wpisujemy cmd i klikamy OK.

W wierszu poleceń wpisujemy:

cd C:\winavr\bin

Teraz z wcześniej ściągniętego pliku ze strony Thomasa Fischla kopiujemy plik usbasp.atmega8.2011-05-28.hex z bin\firmware na dysk C do winavr\bin

W wierszu poleceń wpisujemy:

avrdude –C avrdude.conf –c avrisp –P COM9 –b 19200 –p m8 –v

COM9 - jest port na jakim pracuje Arduino UNO.

Jeżeli wszystko będzie dobrze to zobaczymy.


Teraz programujemy Atmegę8 w programatorze poleceniem:

avrdude –C avrdude.conf –c avrisp –P COM9 –b 19200 –p m8 –U flash:w:usbasp.atmega8.2011-05-28.hex



Na końcu zobaczymy.


Odłączamy Arduino Uno, rozłączamy przewody i ściągamy zworkę z JP2.

Teraz możemy programator USBasp podłaczyć do komputera.

Programator powinien zostać wykryty jako USBasp.

Wchodzimy w menadżer urządzeń -> prawy klawisz myszy na okienku na dole po lewej stronie.

Zobaczymy na liście USBasp.


Klikamy prawym klawiszem i wybieramy Aktualizuj sterownik.

Wybieramy Przeglądaj mój komputer...


Podajemy ścieżkę do folderu z wcześniej ściągniętego pliku do bin/win-driver/libusb_0.1.12.1


Klikamy OK i Dalej.

Pojawi się błąd, że brak jest podpisu cyfrowego sterownika.

Na stronie Thomasa Fischla jest link do programu Zadig -> Link

Ściągamy go i uruchamiamy

Wybieramy jak niżej


Klikamy Install driver.

Teraz sterownik powinien być poprawnie zainstalowany.

Ściągamy program SinaProg -> Link

Odłaczamy programator USBasp z komputera.
Podłączamy Atmegę1284P do odpowiednich pinów programatora USBasp, opisane jest we wcześniejszym poście na blogu, czyli MOSI do MOSI itd..
Atmega1284P musi mieć wlutowany kwarc i kondensatory.



Uruchamiamy program Sinaprog, wybieramy Atmega1284P i klikamy Search, strzałką w prawo rozwijamy okienko.


Jak widać wszystko jest dobrze.

Najpierw programujemy FUSE bity, przy Fuses klikamy Advanced.

Ustawiamy jak niżej.


Klikamy write i close.

Teraz programujemy Atmegę 1284P plikiem sd2iec.hex do pobrania tu -> Link

Wybieramy plik i przy Flash klikamy Program.
Rozpocznie się programowanie.


Po zakończeniu odłączamy USBasp i przewody od SD2IEC i mamy gotowy zaprogramowany moduł do Commodore 64.







Brak komentarzy:

Prześlij komentarz