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.
▼
sobota, 28 kwietnia 2018
Opis budowy SD2IEC
SD2IEC to interfejs, który emuluje stację dysków 1541 i umożliwia odczyt plików d64, prg i p00 z karty SD.
Obsługuje się go jak standardową stację dysków.
Do budowy będą nam potrzebne:
1. Atmega 1284P
2. Podstawka DIP 40
3. Kwarc 8 MHz
3. Kondensatory 33 pF - 2 szt.
4. Kondensator 100 nF
5. Wtyk DIN 6 pin
7. Czytnik kart SD Arduino
8. Dioda led zielona i czerwona
9. Rezystor 560 ohm - 2 szt.
10. Rezystor 10K
11. Przycisk chwilowy 3 szt.
12. Płytka uniwersalna i przewody połaczeniowe
Schemat podłączenia
Na schemacie widać Atmegę od góry i gniazdo serial od przodu.
Inny schemat, gdzie widać, że dodatkowo są podłączone piny 37 i 38 do przełączania numeru stacji dysków na 9, 10 i 11.
Wyprowadzenia Atmega 1284P takie jak na pierwszym schemacie.
Mój SD2IEC wykonałem na płytce uniwersalnej, do zasilania wykorzystałem wtyk USB, ponieważ ciężko dostać wtyk do gniazda magnetofonu.
Atmega wymaga zasilania 5V i zasilanie z USB doskonale nadaje się do tego.
Na płytce dolutowałem golpiny do przełączania numeru stacji i do programowania Atmegi.
Moduł czytnika karty SD.
Moduł karty SD ma opisane piny i podłączamy do pinów 5,6,7 i 8 Atmegi oraz +5V do Vcc i masę GND.
Do zaprogramowania Atmegi użyłem starego komputera na Windowsie XP z portem LPT.
Wykonałem programator LPT według schematu.
Piny 18 do 25 w gnieździe LPT łączymy razem do masy.
Atmega na czas programowania wymaga zasilania 5V, wykorzystałem do tego zasilanie z portu USB.
Programator musi posiadać wlutowany kwarc 8 MHz i kondensatory 33 pF i 100 nF, bez nich Atmega nie chciała się zaprogramować.
Można oczywiście podlutować przewody do pinów Atmegi na czas programowania do gotowego modułu SD2IEC.
Do zaprogramowania poprzez port LPT użyłem programu WinAVR, do pobrania stąd -> Link
Po zainstalowaniu program będzie na dysku C w katalogu WinAVR-20100110, dla ułatwienia zmieniłem nazwę katalogu na Winavr.
Najnowsze oprogramowanie SD2IEC znajdziemy na stronie -> Link
Teraz uruchamiamy wiersz poleceń -> Start -> Uruchom i wpisujemy CMD
W wierszu poleceń wpisujemy:
cd C:\Winavr\bin
Instalujemy giveio, aby można było zaprogramować przez port LPT.
Wpisujemy:
install_giveio i wciskamy Enter.
Teraz plik do zaprogramowania Atmegi -> Link po rozpakowaniu kopiujemy do katalogu Winavr/bin.
Jest to najnowsza wersja oprogramowania SD2IEC wraz z bootloaderem, więc gdy pojawi się nowsze oprogramowanie, plik bin wystarczy wgrać na kartę SD i po uruchomieniu zaktualizuje się do najnowszej wersji.
Dalej do wiersza poleceń kopiujemy polecenie:
avrdude -p m1284p -P lpt1 -c pony-stk200 -U flash:w:sd2iec.bin -U lfuse:w:0xEF:m -U hfuse:w:0x99:m -U efuse:w:0xFF:m
Po wciśnięciu Enter powinno rozpocząć się programowanie Atmegi.
Po poprawnym zaprogramowaniu powinniśmy mieć.
Odłączamy zasilanie atmegi i wyciągamy przewód z portu LPT, przekładamy Atmegę do SD2IEC lub odlutowujemy przewody.
Po podłączeniu zasilania dioda zielona powinna mignąć krótko raz.
Na kartę SD możemy skopiować sobie program CBM FileBrowser -> Link , aby łatwo przeglądać i uruchamiać skopiowane programy i gry.
W pliku w katalogu program będzie plik fb64, proponuję skopiować go do głównego katalogu na karcie sd.
Teraz po podłączeniu SD2IEC do portu serial Commodore 64 i zasilania i włączeniu C64 wpisujemy:
Load"FB64",8
i
RUN
Uruchomi się program i łatwo za pomocą strzałek możemy przeglądać pliki i foldery.
Na stronie projektu SD2IEC jest folder Third-party tools -> Link
Jest tam program SD2IEC SNOOP za pomocą, którego możemy sprawdzić wersję oprogramowania SD2IEC.
Gdyby ktoś nie miał starego komputera z portem LPT, to dodałem opis jak zaprogramować Atmegę1284P do SD2IEC programatorem USBasp -> Link
Obsługuje się go jak standardową stację dysków.
Do budowy będą nam potrzebne:
1. Atmega 1284P
2. Podstawka DIP 40
3. Kwarc 8 MHz
3. Kondensatory 33 pF - 2 szt.
4. Kondensator 100 nF
5. Wtyk DIN 6 pin
7. Czytnik kart SD Arduino
8. Dioda led zielona i czerwona
9. Rezystor 560 ohm - 2 szt.
10. Rezystor 10K
11. Przycisk chwilowy 3 szt.
12. Płytka uniwersalna i przewody połaczeniowe
Schemat podłączenia
Na schemacie widać Atmegę od góry i gniazdo serial od przodu.
Inny schemat, gdzie widać, że dodatkowo są podłączone piny 37 i 38 do przełączania numeru stacji dysków na 9, 10 i 11.
Wyprowadzenia Atmega 1284P takie jak na pierwszym schemacie.
Mój SD2IEC wykonałem na płytce uniwersalnej, do zasilania wykorzystałem wtyk USB, ponieważ ciężko dostać wtyk do gniazda magnetofonu.
Atmega wymaga zasilania 5V i zasilanie z USB doskonale nadaje się do tego.
Na płytce dolutowałem golpiny do przełączania numeru stacji i do programowania Atmegi.
Moduł czytnika karty SD.
Moduł karty SD ma opisane piny i podłączamy do pinów 5,6,7 i 8 Atmegi oraz +5V do Vcc i masę GND.
Do zaprogramowania Atmegi użyłem starego komputera na Windowsie XP z portem LPT.
Wykonałem programator LPT według schematu.
Piny 18 do 25 w gnieździe LPT łączymy razem do masy.
Atmega na czas programowania wymaga zasilania 5V, wykorzystałem do tego zasilanie z portu USB.
Programator musi posiadać wlutowany kwarc 8 MHz i kondensatory 33 pF i 100 nF, bez nich Atmega nie chciała się zaprogramować.
Można oczywiście podlutować przewody do pinów Atmegi na czas programowania do gotowego modułu SD2IEC.
Do zaprogramowania poprzez port LPT użyłem programu WinAVR, do pobrania stąd -> Link
Po zainstalowaniu program będzie na dysku C w katalogu WinAVR-20100110, dla ułatwienia zmieniłem nazwę katalogu na Winavr.
Najnowsze oprogramowanie SD2IEC znajdziemy na stronie -> Link
Teraz uruchamiamy wiersz poleceń -> Start -> Uruchom i wpisujemy CMD
W wierszu poleceń wpisujemy:
cd C:\Winavr\bin
Instalujemy giveio, aby można było zaprogramować przez port LPT.
Wpisujemy:
install_giveio i wciskamy Enter.
Teraz plik do zaprogramowania Atmegi -> Link po rozpakowaniu kopiujemy do katalogu Winavr/bin.
Jest to najnowsza wersja oprogramowania SD2IEC wraz z bootloaderem, więc gdy pojawi się nowsze oprogramowanie, plik bin wystarczy wgrać na kartę SD i po uruchomieniu zaktualizuje się do najnowszej wersji.
Dalej do wiersza poleceń kopiujemy polecenie:
avrdude -p m1284p -P lpt1 -c pony-stk200 -U flash:w:sd2iec.bin -U lfuse:w:0xEF:m -U hfuse:w:0x99:m -U efuse:w:0xFF:m
Po wciśnięciu Enter powinno rozpocząć się programowanie Atmegi.
Po poprawnym zaprogramowaniu powinniśmy mieć.
Odłączamy zasilanie atmegi i wyciągamy przewód z portu LPT, przekładamy Atmegę do SD2IEC lub odlutowujemy przewody.
Po podłączeniu zasilania dioda zielona powinna mignąć krótko raz.
Na kartę SD możemy skopiować sobie program CBM FileBrowser -> Link , aby łatwo przeglądać i uruchamiać skopiowane programy i gry.
W pliku w katalogu program będzie plik fb64, proponuję skopiować go do głównego katalogu na karcie sd.
Teraz po podłączeniu SD2IEC do portu serial Commodore 64 i zasilania i włączeniu C64 wpisujemy:
Load"FB64",8
i
RUN
Uruchomi się program i łatwo za pomocą strzałek możemy przeglądać pliki i foldery.
Na stronie projektu SD2IEC jest folder Third-party tools -> Link
Jest tam program SD2IEC SNOOP za pomocą, którego możemy sprawdzić wersję oprogramowania SD2IEC.
Gdyby ktoś nie miał starego komputera z portem LPT, to dodałem opis jak zaprogramować Atmegę1284P do SD2IEC programatorem USBasp -> Link
środa, 25 kwietnia 2018
Wykonanie przewodu serial do stacji dysków 1541
Po zakupie stacji dysków, brakowało mi przewodu serial do podłączenia stacji dysków 1541 II, przewody są trudno osiągalne i postanowiłem zrobić taki przewód.
Schemat przewodu serial.
Będą nam potrzebne dwa wtyki DIN 6 pin, można je kupić na Allegro lub w sklepie elektronicznym.
Połączenia wtyków są jeden do jeden, czyli łączymy pin 1 z pinem 1, 2 z 2, itd...
Do połączenia wykorzystałem przewód sterowniczy w ekranie LIYCY 6x0,5.
Po zlutowaniu przewodów według schematu, po podłączeniu do stacji dysków wszystko działa prawidłowo.
Gotowy przewód serial.
Schemat przewodu serial.
Będą nam potrzebne dwa wtyki DIN 6 pin, można je kupić na Allegro lub w sklepie elektronicznym.
Połączenia wtyków są jeden do jeden, czyli łączymy pin 1 z pinem 1, 2 z 2, itd...
Do połączenia wykorzystałem przewód sterowniczy w ekranie LIYCY 6x0,5.
Po zlutowaniu przewodów według schematu, po podłączeniu do stacji dysków wszystko działa prawidłowo.
Gotowy przewód serial.
wtorek, 24 kwietnia 2018
Wykonanie zasilacza do stacji dysków 1541 II
Ostatnim moim zakupem była stacja dysków 1541 II.
Niestety nie miałem do niego oryginalnego zasilacza, a zakup nie był zbyt prosty.
Jednak możemy wykorzystać zasilacz do dysków twardych 12V, ma on odpowiednie napięcia do zasilenia stacji dysków.
Zakupiłem zasilacz jak na zdjęciu niżej.
Zasilacz ma napięcia 12V DC - 1,5A i 5V DC - 1,5A, DC oznacza napięcie stałe.
Oryginalny zasilacz ma parametry jak niżej, 700mA przy 5V i 500mA przy 12V, więc mój jest wystarczający.
Po ściągnięciu izolacji przewodów, pomierzyłem napięcia i na białym przewodzie było napięcie +5V, na żółtym +12V, a czarny to zazwyczaj masa GND.
Będzie jeszcze potrzebny wtyk DIN 4 pin, można go kupić na Allegro lub w sklepie elektronicznym.
Na zasilaczu są opisane napięcia na pinach, ale jest to widok wtyczki od przodu.
Lutujemy więc przewody jak pokazano niżej.
Gotowy zasilacz.
Po podłączeniu do stacji dysków, stacja działa prawidłowo.
Niestety nie miałem do niego oryginalnego zasilacza, a zakup nie był zbyt prosty.
Jednak możemy wykorzystać zasilacz do dysków twardych 12V, ma on odpowiednie napięcia do zasilenia stacji dysków.
Zakupiłem zasilacz jak na zdjęciu niżej.
Zasilacz ma napięcia 12V DC - 1,5A i 5V DC - 1,5A, DC oznacza napięcie stałe.
Oryginalny zasilacz ma parametry jak niżej, 700mA przy 5V i 500mA przy 12V, więc mój jest wystarczający.
Po ściągnięciu izolacji przewodów, pomierzyłem napięcia i na białym przewodzie było napięcie +5V, na żółtym +12V, a czarny to zazwyczaj masa GND.
Będzie jeszcze potrzebny wtyk DIN 4 pin, można go kupić na Allegro lub w sklepie elektronicznym.
Na zasilaczu są opisane napięcia na pinach, ale jest to widok wtyczki od przodu.
Lutujemy więc przewody jak pokazano niżej.
Gotowy zasilacz.
Po podłączeniu do stacji dysków, stacja działa prawidłowo.
poniedziałek, 23 kwietnia 2018
Commodore 64G
Commodore 64G, popularnie zwany chlebakiem, pojawił się w Niemczech w 1987 roku i w przeciwieństwie do pierwszej wersji posiadał jasne klawisze, tak jak w wersji 64C, zamontowana została zielona dioda. Wersja ta posiadała procesor MOS 8500.
Kilka zdjęć mojego egzemplarza, po czyszczeniu i wybielaniu.
Kilka zdjęć mojego egzemplarza, po czyszczeniu i wybielaniu.
niedziela, 22 kwietnia 2018
UNO2IEC, czyli emulator stacji dysków 1541
UNO2IEC to emulator stacji dysków 1541 na Arduino UNO lub Nano.
Komunikacja odbywa poprzez port serial Commodore 64, a z komputerem poprzez port USB.
Komputer stanowi rodzaj hosta z którego poprzez specjalny program montujemy obrazy programów lub gier i ładujemy do Commodore 64.
Do budowy wystarczy wtyk DIN 6 pin, przewody połączeniowe i Arduino UNO lub Nano z przewodem USB.
Gotowy projekt UNO2IEC
Projekt nie wymaga specjalnych układów, czy elektroniki i jest prosty w wykonaniu, jedyne co musimy zrobić, to przylutować przewody połączeniowe do wtyku DIN 6 pin.
Wtyk DIN 6 pin.
Gniazdo serial ma takie sygnały.
Podłączenie wtyku do Arduino.
Po wykonaniu połączeń należy ściągnąć i zainstalować program Arduino -> Link
Po zainstalowaniu uruchamiamy raz i zamykamy program, w folderze Moje dokumenty zostanie utworzony folder Arduino, a w nim libraries.
Do tego folderu kopiujemy potrzebne biblioteki.
Do działania wymagana jest ta biblioteka -> Link
Po rozpakowaniu folder arduino_max7219-master kopiujemy do libraries.
Program do wgrania do Arduino -> Link
Po rozpakowaniu w folderze uno2iec jest program uno2iec.ino, klikamy w niego 2 razy, uruchomi się program Arduino, wybieramy odpowiedni rodzaj Arduino i odpowiedni port COM w menu Narzędzia.
Teraz wystarczy wgrać program do Arduino klikając w strzałkę u góry po lewej stronie.
Po wgraniu powinien pokazać się nap[is na dole ładowanie zakończone.
Możemy zamknąć program Arduino.
Do ładowania obrazów dyskietek d64 i programów z komputera służy ten program -> Link
Po rozpakowaniu uruchamiamy go klikając 2 razy w uno2iec.exe.
Po uruchomieniu wchodzimy w górne menu Main -> Settings i ustawiamy jak pokazano niżej.
COM port - wybieramy port com na jakim pracuje Arduino.
Serial Speed ustawiamy na 57600
Device number - ustawiany numer stacji
Piny ustawiamy kolejno 6, 5, 4, 3 jak na obrazku wyżej.
Folder D64 wybieramy folder z obrazami d64 lub programami.
Po poprawnym połączeniu powinno być tak.
Teraz wybieramy obraz d64 lub program i klikamy Mount Selected Image.
Teraz mamy emulowaną stację dysków i możemy wpisać w Commodore:
LOAD"$",8
Teraz wpisujemy LIST ,aby wyświetlić listę plików.
Teraz wpisujemy LOAD"nazwa_programu",8
W programie na komputerze zacznie się ładować program.
Teraz wpisujemy RUN , aby uruchomić program.
Program powinien zacząć się uruchamiać.
Aby uruchomić inny program w programie na komputerze wybieramy Unmount i montujemy nowy program.
To tyle, jest to dosyć dobre i proste rozwiązanie, jeżeli nie chcemy ładować gier z magnetofonu lub stacji dyskietek.
Komunikacja odbywa poprzez port serial Commodore 64, a z komputerem poprzez port USB.
Komputer stanowi rodzaj hosta z którego poprzez specjalny program montujemy obrazy programów lub gier i ładujemy do Commodore 64.
Do budowy wystarczy wtyk DIN 6 pin, przewody połączeniowe i Arduino UNO lub Nano z przewodem USB.
Gotowy projekt UNO2IEC
Projekt nie wymaga specjalnych układów, czy elektroniki i jest prosty w wykonaniu, jedyne co musimy zrobić, to przylutować przewody połączeniowe do wtyku DIN 6 pin.
Wtyk DIN 6 pin.
Gniazdo serial ma takie sygnały.
Podłączenie wtyku do Arduino.
Po wykonaniu połączeń należy ściągnąć i zainstalować program Arduino -> Link
Po zainstalowaniu uruchamiamy raz i zamykamy program, w folderze Moje dokumenty zostanie utworzony folder Arduino, a w nim libraries.
Do tego folderu kopiujemy potrzebne biblioteki.
Do działania wymagana jest ta biblioteka -> Link
Po rozpakowaniu folder arduino_max7219-master kopiujemy do libraries.
Program do wgrania do Arduino -> Link
Po rozpakowaniu w folderze uno2iec jest program uno2iec.ino, klikamy w niego 2 razy, uruchomi się program Arduino, wybieramy odpowiedni rodzaj Arduino i odpowiedni port COM w menu Narzędzia.
Teraz wystarczy wgrać program do Arduino klikając w strzałkę u góry po lewej stronie.
Po wgraniu powinien pokazać się nap[is na dole ładowanie zakończone.
Możemy zamknąć program Arduino.
Do ładowania obrazów dyskietek d64 i programów z komputera służy ten program -> Link
Po rozpakowaniu uruchamiamy go klikając 2 razy w uno2iec.exe.
Po uruchomieniu wchodzimy w górne menu Main -> Settings i ustawiamy jak pokazano niżej.
COM port - wybieramy port com na jakim pracuje Arduino.
Serial Speed ustawiamy na 57600
Device number - ustawiany numer stacji
Piny ustawiamy kolejno 6, 5, 4, 3 jak na obrazku wyżej.
Folder D64 wybieramy folder z obrazami d64 lub programami.
Po poprawnym połączeniu powinno być tak.
Teraz wybieramy obraz d64 lub program i klikamy Mount Selected Image.
Teraz mamy emulowaną stację dysków i możemy wpisać w Commodore:
LOAD"$",8
Teraz wpisujemy LIST ,aby wyświetlić listę plików.
Teraz wpisujemy LOAD"nazwa_programu",8
W programie na komputerze zacznie się ładować program.
Teraz wpisujemy RUN , aby uruchomić program.
Program powinien zacząć się uruchamiać.
Aby uruchomić inny program w programie na komputerze wybieramy Unmount i montujemy nowy program.
To tyle, jest to dosyć dobre i proste rozwiązanie, jeżeli nie chcemy ładować gier z magnetofonu lub stacji dyskietek.