Skocz do zawartości

Konsola PONG


atlantis86

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂

Link do komentarza
Share on other sites

23 minuty temu, InspektorGadzet napisał:

Klony PONG'a widziałem na PIC i AVRtiny.

I co z tego?

Plusik dla autora za tę nieodpartą (i całkowicie zrozumiałą) ciekawość wygrzebywania i wskrzeszania z czeluści historii lub zakamarków magazynów upadłych technologii. Ja mam bitwę czołgów w jeszcze gorszym pudełeczku, opartą też na AY-3-cośtam - wciąż działa 🙂 Ech, kiedyś to robili scalaki... Wbudowałeś modulator RF do wejścia antenowego (do tego potrzebny stary telewizor z tunerem "analogowym" a ten na taki wygląda) czy wchodzisz sygnałem baseband przez euro lub chinch?

  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

1 godzinę temu, marek1707 napisał:

Plusik dla autora za tę nieodpartą (i całkowicie zrozumiałą) ciekawość wygrzebywania i wskrzeszania z czeluści historii lub zakamarków magazynów upadłych technologii. Ja mam bitwę czołgów w jeszcze gorszym pudełeczku, opartą też na AY-3-cośtam - wciąż działa 🙂 Ech, kiedyś to robili scalaki...

Mam słabość do starych układów scalonych. Zbudowałem już kilka konstrukcji na starych procesorach (MOS6502, Z80, 8051, polski MCY7880), leży też u mnie trochę ciekawy, zabytkowych układów cyfrowych, które czekają na swój moment, gdy będę miał trochę więcej czasu. 😉 Wiele rzeczy można zaemulować na mikrokontrolerze. Tylko po co, skoro można skorzystać z oryginalnego krzemu sprzed trzydziestu lat? 🙂

1 godzinę temu, marek1707 napisał:

Wbudowałeś modulator RF do wejścia antenowego (do tego potrzebny stary telewizor z tunerem "analogowym" a ten na taki wygląda) czy wchodzisz sygnałem baseband przez euro lub chinch?

To tylko chinch. Budowa modulatora nie miałaby w tej chwili sensu, bo i tak nie mam już w domu tak starego telewizora, który nie dysponowałby wejściem kompozytowym albo scart. Jeśli już, to raczej idę w drugą stronę - dodając wyjście wideo do starego sprzętu. W kolejce czeka chociażby konsola Rabmo (podróbka Atari 2600, hit polskich bazarów na początku lat dziewięćdziesiątych).

Link do komentarza
Share on other sites

31 minut temu, atlantis86 napisał:

Wiele rzeczy można zaemulować na mikrokontrolerze. Tylko po co, skoro można skorzystać z oryginalnego krzemu sprzed trzydziestu lat?

Tyle, że zdobycie AY-3-8500 łatwe nie jest. Z AY-3-8500 można uzyskać obraz kolorowy taka modyfikacja jest ciekawa. Ja bym się skusił na inne gry z serii AY-3-8xxx. Były dwa fajne scalaki, 10 gier, w tym koszykówka i Motocross. Te scalaki z chęcią bym kupił.

 

34 minuty temu, atlantis86 napisał:

Mam słabość do starych układów scalonych.

Mnie te przeszło jakieś 10 lat temu.

 

35 minut temu, atlantis86 napisał:

Zbudowałem już kilka konstrukcji na starych procesorach (MOS6502, Z80, 8051, polski MCY7880),

Coś w rodzaju sterowników czy bardziej komputerów z układem wizyjnym?

Link do komentarza
Share on other sites

1 minutę temu, InspektorGadzet napisał:

Tyle, że zdobycie AY-3-8500 łatwe nie jest. Z AY-3-8500 można uzyskać obraz kolorowy taka modyfikacja jest ciekawa. Ja bym się skusił na inne gry z serii AY-3-8xxx. Były dwa fajne scalaki, 10 gier, w tym koszykówka i Motocross. Te scalaki z chęcią bym kupił.

Ja swój egzemplarz AY-3-8500 kupiłem parę lat temu na olx. Z tego co widzę można te scalaki bez większego problemu kupić na Aliexpress, za niewielkie pieniądze. Kiedyś zresztą zamówiłem z Chin kilka sztuk, ale jeszcze ich nie przetestowałem. Jest dla mnie wielką tajemnicą skąd Chińczycy biorą duże ilości układów retro. Kiedyś natknąłem się na aukcje, na których masowo sprzedawano MOS6502. Zamówiłem je z ciekawości, bo wychodziło mniej niż dolar za sztukę. Spodziewałem się, że nie będą działały. Zbudowałem jednak płytkę testową, przygotowałem testowy program na EPROM-ie i... Niespodzianka! Każdy scalak zadziałał prawidłowo.

Można by iść w stronę teorii spiskowej, że oni wkładają tam jakieś współczesne mikrokontrolery, emulujące stary krzem, ale:

  1. Marny byłby to interes, sprzedawać je potem za mniej niż dolara.
  2. Układy faktycznie wyglądają na stare. Postarzanie ich tylko zwiększałoby koszt tej wątpliwej inwestycji.

Innym razem na eBay'u kupiłem od chińskiego sprzedawcy układy 65C02 (ten sam procesor w wersji CMOS). I tutaj faktycznie się naciąłem. To znaczy układ działał, ale na pewno był standardową wersją w wersji NMOS - wskazywał na to pobór prądu i brak obsługi kilku dodatkowych rozkazów.

Moja robocza hipoteza jest następująca: Do Chin musiał kiedyś trafić ogromny transport złomu elektronicznego, ale tamtejsi przedsiębiorcy zauważyli, że mogą zarobić, odsprzedając Europejczykom i Amerykanom co ciekawsze części. Niewykluczone zresztą, że nie są to oryginalne MOS6502, ale jakieś klony robione przez firmy trzecie. Tyle tylko nie wiem, czy 6502 był w ten sposób kopiowany na taką samą skalę, jak np. 8080. Dla mnie to i tak nie jest tak istotne - ważne, że układ działa.

1 minutę temu, InspektorGadzet napisał:

Mnie te przeszło jakieś 10 lat temu.

Dla mnie to jednak dość istotny aspekt tego hobby i chętnie do niego wracam. Po prostu będąc dzieciakiem, w połowie lat dziewięćdziesiątych zainteresowałem się amatorską elektroniką. Składałem wtedy proste radia i wzmacniacze, ale konstrukcje na Z80 i 8051 były poza moim zasięgiem - zwyczajnie brakowało wiedzy, umiejętności i narzędzi. Teraz to wszystko kosztuje grosze. 😉

1 minutę temu, InspektorGadzet napisał:

Coś w rodzaju sterowników czy bardziej komputerów z układem wizyjnym?

Jedno i drugie. To znaczy komputery jeszcze nie dorobiły się układów wizyjnych, ale pewnie kiedyś wrócę do tego projektu. Zrobiłem też kilka kontrolerów na 65C02 i na nich planuję w przyszłości zrobić coś bardziej konkretnego: mówiący zegar LED z chipem do syntezy mowy z lat osiemdziesiątych, jakiegoś jeżdżącego robota i coś w rodzaju stacji pogodowej. 😉

Niektóre z moich projektów retro były publikowane w tym dziale. Wystarczy przejść kilka stron wstecz.

  • Lubię! 1
Link do komentarza
Share on other sites

Z ciekawości: natknąłeś się może na 6510? Kiedyś bardzo chciałem coś na to zrobić, ale scalak był jakoś słabo dostępny... może bym sobie przypomniał jak to się robi...

  • Lubię! 1
Link do komentarza
Share on other sites

28 minut temu, ethanak napisał:

Z ciekawości: natknąłeś się może na 6510? Kiedyś bardzo chciałem coś na to zrobić, ale scalak był jakoś słabo dostępny... może bym sobie przypomniał jak to się robi...

Z tego co pamiętam MOS6510 był produkowany specjalnie z myślą o Commodore 64. Układ został zaprojektowany po tym, gdy producent komputerów wykupił fabrykę mikroprocesorów. Od standardowego 6502 różnił się właściwie tylko obecnością portu I/O, którego kilka linii było wyprowadzonych na zewnątrz. Służyło to do przełączania portów, można było dzięki temu zrezygnować z kilku zewnętrznych scalaków. Pewnie da się je jeszcze kupić, zdemontowane z uszkodzonych komputerów. Jednak każdy projekt można równie dobrze zrealizować na 6502, który jest znacznie łatwiej dostępny, nawet w wersji CMOS. Jeśli nie chcesz kupować w Chinach, to na eBay'u można znaleźć kilku sprzedawców z róznych krajów Europy, którzy handlują tymi scalakami. Oczywiście cena jest odpowiednio wyższa. 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

No właśnie chodziło mi o port (na adresie 0 miałeś coś w rodzaju dzisiejszego GPIO).

Bawiłem się kiedyś w zewnętrzne scalaki (256kB RAM w C16) ale raczej jako programista... elektronikę robił ktoś inny.

Cóż, aż takim maniakiem nie jestem, chyba zostanę przy AVR-ach 😞

 

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)
1 godzinę temu, ethanak napisał:

No właśnie chodziło mi o port (na adresie 0 miałeś coś w rodzaju dzisiejszego GPIO).

Myślę, że takie wykorzystanie 6510 trochę mija się z celem. Pamiętaj, że to mikroprocesor, a nie mikrokontroler. Żeby zrobić z nim cokolwiek, i tak musisz stworzyć szynę systemową, do której będzie podpięta przynajmniej jakaś pamięć stała z programem. Żeby korzystanie z tego miało jakikolwiek sens, trzeba dać jeszcze RAM - bez niego nie zaimplementujemy stosu i możemy zapomnieć o podprogramach czy przerwaniach. A skoro już mamy szynę systemową, to możemy do niej podpiąć różne inne rzeczy - GPIO, porty szeregowe, wyświetlacz na HD44780 (do 6502 podpina się go bardzo wygodnie, w przeciwieństwie do układów z szyną Intela).

Myślę, że najbliższym, sensownym sposobem realizacji twojego pomysłu byłoby wykorzystanie jakiegoś układu z rodziny 8051. One miał już trochę wbudowanej pamięci RAM, a niektóre z nich (m.in. seria AT89 od Atmela) dysponowała także pamięcią flash. Zewnętrze pamięci można (ale nie trzeba) było podpiąć do szyny. No i portów było trochę więcej, był też wbudowany UART.

Cytat

Bawiłem się kiedyś w zewnętrzne scalaki (256kB RAM w C16) ale raczej jako programista... elektronikę robił ktoś inny.

Elektronika jest tak naprawdę bardzo prosta. Gdy już się zrozumie o co w tym chodzi, jest to bardzo logiczne. Wszystko podpinamy do tej samej szyny systemowej i umieszczamy w przestrzeni adresowej mikroprocesora. Za aktywowanie poszczególnych układów odpowiada dekoder adresów, który trzeba sobie zbudować z układów logicznych. W jednym z przyszłych projektów spróbuję chyba wykorzystać układ GAL - taki odległy przodek współczesnych CPLD i FPGA. Można sobie na nim zaimplementować jakąś prostą logikę, sterującą pracą systemu mikroprocesorowego.

Cytat

Cóż, aż takim maniakiem nie jestem, chyba zostanę przy AVR-ach 😞

Zabawa ze starymi procesorami pozwala lepiej zrozumieć jak taki AVR działa. Masz tam te same bloki funkcyjne, tylko zamiast po prostu skonfigurować licznik, musisz go fizycznie podpiąć do szyny - bo jest on osobnym scalakiem. 😉

Edytowano przez atlantis86
  • Lubię! 1
Link do komentarza
Share on other sites

Owszem - elektronika jest prosta. Dekoder na szynie adresowej i zapis  do jakiegoś rejestru jeśli adres się zgadza.

Gorzej z odczytem - bo o ile zapis do nieużywanej części RAM-u niespecjalnie przeszkadza, o tyle z odczytem jest gorzej: muszę przełączyć odczyt z pamięci na odczyt z portu. Czyli parę kostek więcej...

W przypadku pamięci było to proste - dekoder podawał po prostu dwa bity na linie adresowe pamięci. Przy porcie I/O raczej byłoby to bardziej skomplikowane...

Nic to, przeżyłem bez tego, podejrzewam że dalej też przeżyję 🙂 AVR-y też są fajne i wykorzystanie tego mikroskopijnego RAM-u to też jest całkiem ciekawa zabawa.

 

  • Lubię! 1
  • Nie zgadzam się! 1
Link do komentarza
Share on other sites

(edytowany)
47 minut temu, ethanak napisał:

Owszem - elektronika jest prosta. Dekoder na szynie adresowej i zapis  do jakiegoś rejestru jeśli adres się zgadza.

Gorzej z odczytem - bo o ile zapis do nieużywanej części RAM-u niespecjalnie przeszkadza, o tyle z odczytem jest gorzej: muszę przełączyć odczyt z pamięci na odczyt z portu. Czyli parę kostek więcej...

Odczyt jest tak samo prosty jak zapis. Mikroprocesory generują specjalne wygnały, które pozwalają sterować operacjami odczytu i zapisu. W przypadku szyny intela są to sygnały !WR i !RD. Mikroprocesory z rodzin 6502 i 6800 co prawda nie generują ich bezpośrednio, ale można je w prosty sposób uzyskać za pomocą kilku bramek. Jest to wskazane, to większość powszechnie dostępnych pamięci EPROM i RAM została zaprojektowana z myślą o pracy na magistrali Intela.

Jeśli chodzi o odczyt z/zapis do portu, to masz do wyboru dwie opcje:

  1. Wykorzystanie trójstanowego bufora zatrzaskowego, np. 74373 lub 74573. Możesz na nich zbudować zarówno port wyjściowy, jak i wejściowy. Tylko niestety, wyboru dokonujesz na etapie projektowania elektroniki i rozwiązanie działa tylko w jedną stronę, to znaczy nie będziesz w stanie odczytać wartości wpisanej wcześniej do portu wyjściowego. Musisz ją sobie trzymać w jakiejś pomocniczej zmiennej.
  2. Wykorzystanie specjalizowanego portu GPIO (np. 8255), który konfiguruje się podobnie do portów ze współczesnych mikrokontrolerów.

W przypadku 6502 układy IO zajmują tą samą przestrzeń adresową, co pamięć. Systemy wzorowane na 8080/8085 (np. Z80 albo rodzina x86) miały osobną (mniejszą) przestrzeń adresową dla układów IO. Wyglądało to w ten sposób, że procesor posiadał dodatkowe linie !WR i !RD, ktore aktywowały się przy odczycie z/zapisie do peryferiów. W przypadku Z80 była to chyba jedna dodatkowa linia, którą trzeba było przepuścić przez dodatkową logikę aby stwierdzić, z czym procesor chce się w danej chwili dogadać. 😉

Edytowano przez atlantis86
  • Lubię! 2
Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

Gorzej z odczytem - bo o ile zapis do nieużywanej części RAM-u niespecjalnie przeszkadza, o tyle z odczytem jest gorzej: muszę przełączyć odczyt z pamięci na odczyt z portu.

Co? Jakie przełączanie? Widać, że nigdy nie zbudowałeś systemu z CPU.

 

1 godzinę temu, ethanak napisał:

Czyli parę kostek więcej... 

Znów piszesz głupoty! W najprostszym wykonaniu 74HC138, w bardziej zaawansowanym zaproponowany przez @atlantis86 GAL.

 

1 godzinę temu, ethanak napisał:

W przypadku pamięci było to proste - dekoder podawał po prostu dwa bity na linie adresowe pamięci. Przy porcie I/O raczej byłoby to bardziej skomplikowane..

Dekoder podłączony do linii adresowych a nie /CS? Co to za "cudna" konstrukcja?

Czy to pamięć, czy  PIO, SIO,TIMER, itp dekoder adresowy aktywuje układ używając linii /CS. 

 

24 minuty temu, atlantis86 napisał:

Mikroprocesory z rodzin 6502 i 6800 co prawda nie generują ich bezpośrednio

Co tak jak i 68k używają bardziej rozsądnej pary sygnałów, E i O2. Wygenerowanie z nich /RD i /WR to jeden 74HC00 (3 bramki). Ja robiłem to razem z dekoderem adresowym w GAL lub bardziej rozbudowanych konstrukcjach (68000, 68010) w CPLD. Kiedyś w TME kupiłem 68000/12 w obudowie PGA.

 

24 minuty temu, atlantis86 napisał:

Wykorzystanie specjalizowanego portu GPIO (np. 8255), który konfiguruje się podobnie do portów ze współczesnych mikrokontrolerów.

Do 6502 lepiej użyć układów przeznaczonych dla 68xx np PIO+Timery+rejestr szeregowy 6820 6821. Była też wersja specjalnie dla 6502 w postaci 6526. Można użyć C-MOS'owej z Amigi 8500. Jest i SIO dla 68xx ale nie pamiętam oznaczenia. Fajny jest CPU 65816. Do 68xx czy 6502 ciężko natomiast podłącza się układy oz Z-80. One w czasie generowania przerwania robią "bałagan" na magistrali danych i trzeba sobie z tym poradzić. Łatwo natomiast podłączało się Intele, jak wspomniany, baznadziejny (jak wszystko co Intelowskie)  8255 czy SIO 8251 (ale badziewie), który w zasadzie nie mógł się obyć bez CTC 8254 dlatego lepiej było użyć 16C550 czy 16C552, 16C554, które miały 16-bajtowe FIFO.

Edytowano przez InspektorGadzet
  • Nie zgadzam się! 3
Link do komentarza
Share on other sites

14 minut temu, InspektorGadzet napisał:

Co? Jakie przełączanie? Widać, że nigdy nie zbudowałeś systemu z CPU.

@InspektorGadzet wielka prośba... daruj sobie takie zgryźliwości. Jak chcesz wytknąć komuś brak wiedzy to bądź tak miły i wykaż się swoimi umiejętnościami. Energię poświęconą na pisanie takich złośliwości lepiej zamienić na 2-3 merytoryczne zdania, z których będzie można się czegoś dowiedzieć. Wszystkim wyjdzie to na dobre, bo wprowadzanie takiej nerwowej atmosfery do rozmów nikomu nie służy 😉

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.