Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
IGE-XAO
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Budowa klonu Pegasusa (UA6527P + UA6538)

Atlantis86 14 Sep 2021 10:47 753 31
  • #1
    Atlantis86
    Level 19  
    Jakiś czas temu zaopatrzyłam się w zestaw układów do Pegasusa: UA6527P (CPU) oraz UA6538. Planowałem je wykorzystać do naprawy zepsutej konsolki - pamiątki z dzieciństwa. W międzyczasie okazało się jednak, że natura awarii był inna i układy nie były potrzebne. Jakiś czas temu z nudów zacząłem więc składać własnego "klona" na płytce uniwersalnej, z użyciem dużej ilości kynaru.

    Budując urządzenie posługiwałem się schematem, który dodaję w załączniku. Występujące na nim tranzystory zastąpiłem zwykłymi BC547 i BC557. Zamiast kwarcu 21.477272 MHz (NTSC) użyłem 26.601712 MHz (PAL).

    Na płytce znajduje się slot n kartridze, do którego doprowadziłem większość sygnałów, chwilowo nie jest on jednak wykorzystywany - równolegle zastosowałem dwie podstawki pod pamięci EPROM 27256 oraz 2764, w których planuje umieścić jakąś prostą grę, niewymagającą stosowania mappera. Docelowo planuję dodać logikę, która będzie wykrywała włożony kartridż, wybierając określony zestaw pamięci. Tymczasowo pewne sygnały na złączu kartridżów są połączone na stałe, konkretnie:
    1) Piny 45 i 46 są połączone zworką przepuszczającą sygnał audio.
    2) Pin 18 (CIRAM_A10) jest połączony z pinem 53 (PPU_A10).
    3) Pin 48 (CIRAM_CE) jest połączony z pinem 49 (zanegowana linia A13).
    4) Pin 44 ( /ROMSEL) jest połączony z pinem "E" EPROM-u PRG. Jego pin "G" jest na stałe zwarty do masy.
    5) Wejście "E" EPROMU CHR jest aktywowane sygnałem PPU_A13, natomiast jego wejście "G" jest połączone z linią /PPU_RD.

    Korzystając z urlopu popchnąłem trochę projekt do przodu i zakończyłem lutowanie większości połączeń - na chwilę obecną pozostało już tylko okablować gniazdka padów.

    Do testów postanowiłem wykorzystać współczesną, darmową grę "Gruniożerca". Wyciągnąłem z pliku NES obrazy pamięci PRG i CHR, zaprogramowałem nimi EPROMY i włożyłem je do podstawek.

    Po podłączeniu zasilania osiągnąłem tylko częściowy sukces - telewizor odtwarza muzykę dźwięk z planszy startowej gry, jednak ekran jest czarny. Wiem jednak, że działa przynajmniej procesor.

    Podpiąłem wyjście wideo do strego, polskiego oscyloskopu (niestety nie mam niczego lepszego w tej chwili). Widać na nim jakąś aktywność - serie impulsów, którym od czasu do czasu towarzyszą impulsy o około dwa razy większej amplitudzie (wiec tak jakby obraz się zmieniał).

    Próbowałem podmienić U6538 na inny egzemplarz, pochodzący z innego źródła, le układ nadal zachowuje się tak samo.

    Gdzie mogę szukać przyczyny takiego zachowania?
    Ethernet jednoparowy (SPE) - rozwiązania w przemyśle. Szkolenie 29.09.2021r. g. 11.00 Zarejestruj się za darmo
  • IGE-XAO
  • #2
    gumisie
    Level 43  
    Atlantis86 wrote:
    Występujące na nim tranzystory zastąpiłem zwykłymi BC547 i BC557
    Te tranzystory mają inny układ wyprowadzeń, może źle je zamontowałeś?
  • #3
    Atlantis86
    Level 19  
    gumisie wrote:
    Te tranzystory mają inny układ wyprowadzeń, może źle je zamontowałeś?


    Montowałem na płytce uniwersalnej w oparciu o schemat, więc sprawdziłem układ wyprowadzeń dla użytych (zresztą dobrze mi znanych) tranzystorów. Zresztą, już parę razy upewniłem się, że tranzystor jest wlutowany poprawnie.

    Jeszcze jedna rzecz przyszła mi do głowy po ponownym rzuceniu okiem na schemat. Widzę, że ten tranzystor nie jest podłączony do żadnego gniazdka RCA, ale do złącza, które prawdopodobnie jest wejściem modulatora. Czy to możliwe, że czegoś brakuje na tej linii i ten jeden tranzystor nie jest w stanie prawidłowo wysterować wejścia wideo w telewizorze?

    Pamiętam, że w budowanych przeze mnie klonach Spectrum w okolicy wyjścia wideo zazwyczaj znajdował się kondensator 220uF oraz rezystor 75 omów.
  • #4
    gumisie
    Level 43  
    Sprawdziłeś przebiegi na pin. 21 (UA6538)?
  • #5
    Atlantis86
    Level 19  
    gumisie wrote:
    Sprawdziłeś przebiegi na pin. 21 (UA6538)?


    N pierwszy rzut oka wyglądają identycznie z tym, co mam na wyjściu za tranzystorem. Dokładnie nie mam jak porównać z uwagi na brak dwukanałowego oscyloskopu.

    EDIT:
    Ok, zrobiłem jeszcze jeden test. Zapomniałem wspomnieć, że oscyloskop podpinałem do nieobciążonego wyjścia. Gdy sprawdzam poziom sygnału przy podpiętym telewizorze, ten spada niemalże do zera. Poziom sygnału na pinie 21 się nie zmienia.
  • #6
    gumisie
    Level 43  
    Atlantis86 wrote:
    N pierwszy rzut oka wyglądają identycznie z tym, co mam na wyjściu za tranzystorem.
    Na wyjściu tranzystora, sygnał powinien mieć większą amplitudę.

    Ok. Nie będę się "wymądrzał", nigdy nie "budowałem" od podstaw tego urządzenia.
    Poczekajmy, może ktoś kompetentny z doświadczeniem się odezwie.

    Pozdrawiam.

    Dodano po 18 [minuty]:

    EDIT:

    Atlantis86 wrote:
    Gdy sprawdzam poziom sygnału przy podpiętym telewizorze, ten spada niemalże do zera. Poziom sygnału na pinie 21 się nie zmienia.
    Rezystor R6, podłączony do +5V?
    Budowa klonu Pegasusa (UA6527P + UA6538)
  • #7
    maciej_333
    Level 36  
    Tyle wypowiedzi a nikt nie zauważył specyfiki tego wyjścia. Nie ma szans, by tym wysterować wejście composite video w typowym telewizorze. Po pierwsze jest składowa stała. Musi być kondensator sprzęgający. Po drugie jest też, co gorsza za wielka rezystancja wyjściowa. Przecież R6 ma aż 2,2 kΩ. Tu trzeba dać wtórnik na kolejnym tranzystorze i dopiero od jego emitera kondensator sprzęgający. Zwróćmy uwagę, że nie bez powodu jest R12. W swoim komputerze na 8080 mam zrobione coś takiego:
    Budowa klonu Pegasusa (UA6527P + UA6538)
    Bazę tego wtórnika trzeba dać na sygnał VIDEO na złączu P3.
  • IGE-XAO
  • #8
    Atlantis86
    Level 19  
    maciej_333 wrote:
    Bazę tego wtórnika trzeba dać na sygnał VIDEO na złączu P3.


    Dzięki za odpowiedź. W międzyczasie, przeglądając forum trafiłem na projekt rozbudownego klona Pegasusa, którego autor rozwiązał problem w następujący sposób:

    Budowa klonu Pegasusa (UA6527P + UA6538)

    Są tutaj dwa przełączane segmenty, ponieważ projekt wykorzystywał dwie różne wersje układu graficznego (na PAL i NTSC). Tutaj jednak nie widać kondensatora separującego. Czy takie rozwiązanie także jest dopuszczalne?

    Pamiętam, że kondensatora separującego nie było także w aplikacji układu TMS9918, którego użyłem w paru swoich komputerkach. Schemat znajduje się TUTAJ.

    Jeśli chodzi o twój schemat, to czy potencjometr do regulacji poziomu sygnału jest konieczny? Nie wiem czy będę miał pod ręką PR 200 omów...
  • #9
    gumisie
    Level 43  
    maciej_333 wrote:
    Tyle wypowiedzi a nikt nie zauważył specyfiki tego wyjścia.
    Owszem, lecz wszystko zależy od danego modelu telewizora (VIDEO IN).
    Najczęściej na tych wejściach stosowany były kondensatory oraz rezystory 75Ω.
    Nie zmienia to faktu, że Twoja porada jest słuszna.
  • #10
    maciej_333
    Level 36  
    Atlantis86 wrote:
    Jeśli chodzi o twój schemat, to czy potencjometr do regulacji poziomu sygnału jest konieczny? Nie wiem czy będę miał pod ręką PR 200 omów...

    Można wstawić też stały rezystor, tak jak to jest na załączonym tu schemacie (tym czarnym). Może to też być coś w okolicy np. 220 Ω. Jednak potencjometr może się czasem przydać przy niektórych odbiornikach. Odnośnie dwóch wersji z PAL i NTSC, to zdaje się, że U5 ma dwa osobne wyjścia do tego. Tutaj bym z tym nie kombinował, bo zmiana na NTSC to nie tylko samo NTSC. Częstotliwość odchylania poziomego to 15750 Hz zamiast 15650 Hz. W przypadku pionowego jest to 60 Hz zamiast 50 Hz. Jakiś telewizor LCD powinien sam się do tego dostosować. Jednak nie CRT. Z kolei przerobienie telewizora CRT na coś takiego to sporo zachodu. Jest to łatwe tylko z telewizorem w stylu Vela 203/202, Neptun 150 itp.
  • #11
    Atlantis86
    Level 19  
    Ok, jest sukces, chociaż jeszcze niepełny.
    Dodanie kolejnego stopnia wzmacniacza na BC547 sprawiło, że obraz pojawił się na ekranie. Niestety gra jest poszatkowana. Poniżej przykład tego, jak wygląda Super Mario Bros. Podobny efekt występował także w Gruniożercy. Wygląda na to, że sprite'y wyświetlają się prawidłowo, w prawidłowy sposób przemieszczają się też po ekranie, jednak tła są pomieszane.

    Co może być nie tak? Już wcześniej przedzwoniłem wszystkie linie miernikiem i wyglądało na to, że s podłączone prawidłowo.

    Na chwilę obecną mm dwie główne hipotezy:
    1) Źle podłączona linia A10 pamięci RAM. W tej chwili podłączyłem ją po prostu do linii A10 magistrali układu graficznego. Jednak czytałem gdzieś, że nie bez przyczyny była ona wyprowadzona na slot kartridża - różne gry w różny sposób przełączały banki RAM-u i w niektórych przypadkach konieczne było połączenie wejścia A10 RAM-u z wyjściem A11 układu graficznego. Były też chyba inne kombinacje. Jk to wyglądało w przypadku Mario?
    2) Uszkodzona pamięć RAM albo układ graficzny.

    EDIT: Zamienienie pamięci miejscami oraz wymiana układu graficznego na inny egzemplarz nic nie zmieniło.
  • #12
    maciej_333
    Level 36  
    Może faktycznie być uszkodzony jakiś cyfrowy układ np. pamięć. Możesz też mieć jakieś zwarcie np. jakiś wiórek cyny. Można umyć całą płytkę uniwersalną spirytusem. Odnośnie tych linii A10 i A11 od układu graficznego, to coś z tym jest. Kiedyś lutowałem cartridge z maperm UNROM i bez niego. W tym drugim przypadku posługiwałem się tym schematem: Link. Zobacz co tam zrobiono. Musi być do tego przełącznik. W przypadku błędnego ustawienia jest taki efekt poszatkowania.
  • #13
    Atlantis86
    Level 19  
    maciej_333 wrote:
    Może faktycznie być uszkodzony jakiś cyfrowy układ np. pamięć.


    Pamięci EPROM niby przechodzą weryfikację po zaprogramowaniu, a RAM-y zamieniłem miejscami. Nie wpłynęło to ani trochę na zachowanie układu. Nie pamiętam czy pozostałe układy logiczne testowałem MiniProgiem - jeśli są przez niego wspierane, to sprawdzę je.


    Quote:
    Możesz też mieć jakieś zwarcie np. jakiś wiórek cyny. Można umyć całą płytkę uniwersalną spirytusem.


    Umyć będzie trudno, ze względu na znaczną ilość kynaru na spodzie płytki. Ale jutro,m przy dziennym świetle przyjrzę się jej uważnej.

    Przetestowałem kilka gier przy obydwu ustawieniach CIRAM_A10 - przy podłączeniu zarówno do A10, jak i A11. Efekt poszatkowania występuje nadal.
    Odkryłem też coś jeszcze - próbując dociskać elementy w podstawkach odkryłem, że dotykanie GPU i PPU w pobliżu krótszych krawędzi powoduje niestabilne działanie. W przypadku PPU zmienia się obraz na ekranie i zwalnia muzyka, ale po dotknięciu procesora program się zawiesza. Jakiś pomysł na co to może wskazywać?
  • #14
    gumisie
    Level 43  
    Atlantis86 wrote:
    po dotknięciu procesora program się zawiesza. Jakiś pomysł na co to może wskazywać?
    Za_ekranować generator zegarowy? :cry:
  • #15
    maciej_333
    Level 36  
    Atlantis86 wrote:
    Odkryłem też coś jeszcze - próbując dociskać elementy w podstawkach odkryłem, że dotykanie GPU i PPU w pobliżu krótszych krawędzi powoduje niestabilne działanie. W przypadku PPU zmienia się obraz na ekranie i zwalnia muzyka, ale po dotknięciu procesora program się zawiesza. Jakiś pomysł na co to może wskazywać?

    Może być tego bardzo wiele powodów. Kwestia kondensatorów odsprzęgających i ich umiejscowienia, długie połączenia (szczególnie przy sygnale zegarowym), słabe lutowania, niekontaktujące podstawki, utlenione styki układów.

    Popatrzyłem na schemat generatora zegarowego. Nie chciałoby mi się bawić z tym układem. Nie rozumiem też skąd taka kombinacja. Zrób to "normalnie" na 74LS04. Na pewno będzie to bardziej odporne na zakłócenia. Takie coś musiałoby być bardzo blisko CPU i PPU. Tutaj łatwo to obciążyć pojemnością a nawet zerwać drgania.

    Odnośnie montażu na płytkach uniwersalnych, to nie rozumiem dlaczego większość kładzie kynar od strony druku. Trochę mniej pracy, ale za to modyfikacje są w zasadzie niemożliwe. U mnie jest zawsze jak należy.
  • #16
    Atlantis86
    Level 19  
    maciej_333 wrote:

    Może być tego bardzo wiele powodów. Kwestia kondensatorów odsprzęgających i ich umiejscowienia, długie połączenia (szczególnie przy sygnale zegarowym), słabe lutowania, niekontaktujące podstawki, utlenione styki układów.


    Kondensatory odsprzęgające przy układach są raczej ok. Podstawki były nowe i układy siedzą w nich mocno, poza tym efekt pojawia się nawet przy bardzo delikatnym dotyku. Luty wyglądają prawidłowo. Najbardziej podejrzany będzie chyb właśnie sygnał zegarowy - faktycznie długi kawałek kynaru biegnącego przez pół płytki może mu nie sprzyjać...


    Quote:
    Popatrzyłem na schemat generatora zegarowego. Nie chciałoby mi się bawić z tym układem. Nie rozumiem też skąd taka kombinacja. Zrób to "normalnie" na 74LS04. Na pewno będzie to bardziej odporne na zakłócenia. Takie coś musiałoby być bardzo blisko CPU i PPU. Tutaj łatwo to obciążyć pojemnością a nawet zerwać drgania.


    Nie jestem pewien czy te układy nie wymagają na wejściu
    sygnału sinusoidalnego o niższej amplitudzie. Dopiero wewnętrznie jest on wzmacniny, formowany i dzielny. Wolałem nie eksperymentować z taktowaniem sygnałem TTL, skoro we wszystkich znanych mi klonach NESa/Famicoma stosowano właśnie takie rozwiązanie. Nie spotkałem się jeszcze z generatorem na 7402 albo scalonym generatorem TTL.

    Quote:
    Odnośnie montażu na płytkach uniwersalnych, to nie rozumiem dlaczego większość kładzie kynar od strony druku. Trochę mniej pracy, ale za to modyfikacje są w zasadzie niemożliwe. U mnie jest zawsze jak należy.


    Zrobiłem dokładniejszą inspekcję. Odchyliłem przewody na tyle, na ile było to możliwe. Sprawdziłem, czy nie ma luźnych/zerwanych - jeden faktycznie się znalazł, ale możliwe, że uszkodzenie powstało podczas inspekcji i raczej nie miało nic wspólnego z tym problemem. W każdym razie jego przylutowanie niczego nie zmieniło. Nie trafiłem też na żadne zwarcia.

    Zrobiłem kilka kolejnych testów:
    1) Usunięcie VRAM-u powoduje występienie podobnego efektu - losowe wzory zamiast tła, jednak charakter tych znieksztłceń jest nieco inny.
    2) Usunięcie układu 373 sprawia (zgodnie z przewidywaniami), że układ traci w ogóle możliwość komunikacji z urządzeniami na magistrali PPU, czyli także z pamięcią stałą. Sprite'y także zaczynają być poszatkowane.
    3) Wymiana 373 nie pomaga.
    4) Przerobiłem układ na uruchamianie gier z kartridży. Na fabrycznych kartridżach problem też występuje, więc teraz już wiem, że źródłem problemu nie byłą moja prowizorka z EPROM-ami.

    Wniosek z tego jest taki, że najwyraźniej problem leży gdzieś w okolicy VRM-u. PPU jest w stanie komunikować się z EPROM-em i jest w stanie odczytać z niego dane (np. wygląd sprite'ów). Sprite'y są wyświetlane prawidłowo i we właściwych lokalizacjach, bo o ich zachowaniu decydują osobne rejestry w PPU. Natomiast problem jest w z pamięcią, która powinna trzymać dane tła.

    Sprawa jest o tyle dziwniejsza, że jeśli zamienię miejscami układy pamięci VRAM i RAM, to problem nadal występuje.

    Tak więc albo mam do czynienia z dość specyficznym uszkodzeniem obydwu egzemplarzy 6516 (które daje o sobie znać tylko przy zastosowaniu jako VRAM, ale jeszcze w żadnej grze nie ujawniło się w przypadku pamięci przy CPU) albo mam do czynienia z jakimś błędem montażowym. To drugie wyjaśnienie jest o tyle dziwne, że przedzwoniłem wszystkie linie i wszystko zdaje się być połączony z tym, z czym powinno. No chyb, że błąd jest na schemacie...

    Uszkodzenie PPU jest raczej mało prawdopodobne, skoro problem występuje z dwom różnymi egzemplarzami.

    Niestety nie mm więcej 6516, a MiniProg nie potrfi ich testować...

    BTW chyba jednak w przyszłości daruję sobie montaż z kynarem. Tak, daje sporą oszczędność miejsca, ale poza tym są z tym same problemy. Debugowanie to masakra, czas poświęcony na montaż spokojnie wystarczyłby n zaprojektowanie płytki, a efekt końcowy jest i tak mniej estetyczny od wytrawionej płytki z ponanoszonymi poprawkami. Nie mówiąc już o tym, że wyprodukowanie kolejnego egzemplarza to droga przez tę samą mękę. :)
  • #17
    ArturAVS
    Moderator of HydePark/Cars
    Atlantis86 wrote:
    Nie jestem pewien czy te układy nie wymagają na wejściu
    sygnału sinusoidalnego o niższej amplitudzie. Dopiero wewnętrznie jest on wzmacniny, formowany i dzielny. Wolałem nie eksperymentować z taktowaniem sygnałem TTL, skoro we wszystkich znanych mi klonach NESa/Famicoma stosowano właśnie takie rozwiązanie. Nie spotkałem się jeszcze z generatorem na 7402 albo scalonym generatorem TTL.

    Dla tych układów nie ma to większego znaczenia, skoro pracują na logice TTL to taki sygnał spokojnie wezmą. @maciej333 ma rację, układ generatora jest przekombinowany choć może takie a nie inne rozwiązanie jest spowodowane specyfiką oryginalnych rezonatorów kwarcowych.
  • #18
    maciej_333
    Level 36  
    ArturAVS wrote:
    Atlantis86 wrote:
    Nie jestem pewien czy te układy nie wymagają na wejściu
    sygnału sinusoidalnego o niższej amplitudzie. Dopiero wewnętrznie jest on wzmacniny, formowany i dzielny. Wolałem nie eksperymentować z taktowaniem sygnałem TTL, skoro we wszystkich znanych mi klonach NESa/Famicoma stosowano właśnie takie rozwiązanie. Nie spotkałem się jeszcze z generatorem na 7402 albo scalonym generatorem TTL.

    Dla tych układów nie ma to większego znaczenia, skoro pracują na logice TTL to taki sygnał spokojnie wezmą. @maciej333 ma rację, układ generatora jest przekombinowany choć może takie a nie inne rozwiązanie jest spowodowane specyfiką oryginalnych rezonatorów kwarcowych.

    Generator na TTL można zresztą łatwo podłączyć poprzez oryginalne układy RC i to właśnie był zalecał. Widać, że PPU i CPU dostają sygnały jakoś przesunięte w fazie i bez składowej stałej. Nie wiem, czy tak musi być. Nie ma do tego datasheet.

    Porównaj też schemat z tym wątkiem: Link.
  • #19
    ArturAVS
    Moderator of HydePark/Cars
    Większość układów cyfrowych wejścia zegarowe ma wewnętrznie linearyzowane więc składowa stała im nie przeszkadza. Taki a nie inny układ generatora mógł być wymuszony problemami ze wzbudzeniem kwarca na trzecim overtonie co ma tu kluczowe znaczenie. Generatory kwarcowe na bramkach TTL do pracy na overtonie (harmoniczna częstotliwości podstawowej kwarcu) są nieco bardziej rozbudowane.
  • #20
    Atlantis86
    Level 19  
    Jeszcze jedna hipotez przychodzi mi do głowy. Czy to możliwe, że wina leży po stronie zbyt wolnego RAM-?
    Używam UL6516DG15. Czy powinienem je zastąpić czymś innym?
  • #23
    Atlantis86
    Level 19  
    maciej_333 wrote:
    Nie mogę znaleźć datasheet dokładnie tej wersji pamięci, ale czasy propagacji to nie to. Z pewnością czas ten jest mniejszy od najkrótszych sygnałów, jakie tu panują.


    Twoim zdaniem 150ns jest w zupelności wystarczające w obwodzie wideo i nie ma powodu, żeby zamawiać szybszą pamięć?
    Bo ta hipoteza zdaje się pasować do objawów - przy założeniu, że faktycznie nie mam jakiegoś błędu montażowego, którego nie zauważam. Część z CPU zdaje się pracować całkowicie prawidłowo, a problem występuje w PPU - najprawdopodobniej w okolicy VRAM-u. Obydwa układy pamięci są tego samego typu i ich podmiana nic nie daje.

    Mogłoby to wynikać z tego, że ten przy CPU pracuje w bardziej komfortowych warunkach. Częstotliwość taktowania tej części konsoli to 26.6 MHz podzielone przez 16, czyli 1.6625 MHz.
    W przypadku PPU częstotliwość jest dzielona przez pięć, co daje nam 5.32. A to już dość sporo jak na technologię z 1983 roku. ;)
  • #24
    ArturAVS
    Moderator of HydePark/Cars
    Atlantis86 wrote:
    A to już dość sporo jak na technologię z 1983 roku

    Nie do końca :D Jeśli piksele "pływają" to masz gdzieś brak połączenia pin np. SRAM wisi w powietrzu. Daj film jak to rzeczywiście wygląda.
  • #25
    gumisie
    Level 43  
    ArturAVS wrote:
    Daj film jak to rzeczywiście wygląda.
    Na innym telewizorze.
    Może wina leży po stronie tego leciwego SHARP_a? :wink:
  • #26
    ArturAVS
    Moderator of HydePark/Cars
    @gumisie jeśli synchronizację trzyma to nie jest to problem TV. Latające piksele to łapanie zakłóceń.
  • #27
    gumisie
    Level 43  
    ArturAVS wrote:
    @gumisie jeśli synchronizację trzyma to nie jest to problem TV.
    O ile "trzyma".
    Ja spojrzałem na zdjęcie z postu #11, to tak mi się skojarzyły dawne czasy gdy jeszcze byłem czynny zawodowo.
  • #28
    Atlantis86
    Level 19  
    Pierwszy kartridż jaki miałem pod ręką.

  • #29
    maciej_333
    Level 36  
    Widać, że oczywiście nie ma to związku z telewizorem. Zresztą wcześniej było wiadomo na 100%, że to nie to. Obstawiłbym problem z zegarem, jeśli układy są sprawne i połączenia pewne. Przecież nie problem przerobić to na układ z 74LS04...

    Dodano po 2 [godziny]:

    Przypatrzyłem się schematowi konsoli. Wg schematu U1 ma być wybierany poziomem wysokim, przy czym 6516 wybierana jest poziomem niskim. Jednak widać, że to błąd na oryginalnym schemacie - brak negacji. Przykładowo w przytoczonym wcześniej schemacie kolegi Phanick nie ma układu mającego pewnie wydłużyć impuls wybierający na D1, C20 i R14.
  • #30
    Atlantis86
    Level 19  
    maciej_333 wrote:
    Widać, że oczywiście nie ma to związku z telewizorem. Zresztą wcześniej było wiadomo na 100%, że to nie to.


    Tak. Tym bardziej, że to jest mój główny telewizor CRT do sprzętów retro. Ze wszystkimi innymi komputerami i konsolami współpracuje prawidłowo.

    Quote:
    Obstawiłbym problem z zegarem, jeśli układy są sprawne i połączenia pewne. Przecież nie problem przerobić to na układ z 74LS04...


    Osobiście nie wydaje mi się. Gdyby problemem był zegar, to całe PPU (prawdopodobnie także CPU) pracowałoby nieprawidłowo. Tymczasem układ graficzny działa w 100% poprawnie, jeśli chodzi o obsługę sprite-ów - odczytuje je z EPROM-u i wyświetla we właściwych miejscach we właściwej formie. Jedynie tła są popsute, a to zdaje się wskazywać na problem z VRAM-em.
    W tej chwili zbyt wolna pamięć wydaje mi się całkiem prawdopodobnym wytłumaczeniem - przecież przy 5.32 MHz na jeden cykl przypada 188 ns. Obecne pamięci są na 150 ns.


    Quote:
    Przypatrzyłem się schematowi konsoli. Wg schematu U1 ma być wybierany poziomem wysokim, przy czym 6516 wybierana jest poziomem niskim. Jednak widać, że to błąd na oryginalnym schemacie - brak negacji.


    Jesteś pewien? U1 to pamięć CPU, a ta część systemu działa. Gdyby wartość linii CS była odwrócona, to żaden program nie mógłby prawidłowo działać. Tymczasem gry startują, odtwarzają muzykę i wyświetlają sprite'y w początkowych animacjach. Poza tym testowałem działanie CPU jeszcze przez okablowaniem PPU - odpaliłem prosty program machający jedną z linii I/O. program wywoływał procedurę, a więc korzystał ze stosu. Bez działającej pamięci U1 nie byłoby to możliwe.
pcbway logo