1

(17 odpowiedzi, napisanych Fabryka - 8bit)

Jeśli chodzi o szczegóły to z tu za bardzo nie mam się co rozpisywać.
Założyłem sobie że wykonam prostą a przede wszystkim tanią w budowie kartę procesorową do Atari serii XE. Na razie jest na to za wcześnie ale docelowo chciałbym umieścić cała dokumentacje jako otwarty projekt na githubie (coś na wzór TF530 do Amigi).
Co do szczegółów technicznych to tak jak pisałem karta na razie jest w stanie testowym, wyłącznie z jednym buforem na szynie danych. Logiką steruje programowalna matryca XC9572XL. Odpowiedzialna jest za generowanie brakujących/wymaganych sygnałów dla 65c816. Dodatkowo zawiera "kopię" układu Freddie do generowania sygnałów RAS,CAS i W dla pamięci DRAM 44c256 oraz sygnału MPY dla multipleksera linii adresowych pamięci.
Założeniem była również minimalna ingerencja w płytę główną dlatego na razie nie musiałem ingerować w MMU na płycie.
Te 3 kabelki z prawej strony to doprowadzone z płyty sygnały 14MHz, CasInh i Extsel.
Na płycie głównej nie mam standardowych pamięci, a zamiast Freddiego mam układ któy generuje zegary 14 i 3,5MHz.
Pamięć ROM dodałem z marszu ale jeszcze nie mam na nią konkretnego pomysłu.

2

(17 odpowiedzi, napisanych Fabryka - 8bit)

Ja ostatnimi czasy również zapragnąłem potestować 65c816 w moim 130XE. Zaczęło się od małej płytki wytrawionej w domu, a obecnie moja testowa platforma wygląda tak:
https://obrazki.elektroda.pl/5042557900_1591550892.jpg
Na pokładzie do testów umieściłem 1MB pamięci oraz kość pamięci Rom (pod ręką akurat miałem Flash 29PL160).
Do jako kontroler logiki używam Xilinxa XC9572XL.
Niestety brakuje mi czasu na zabawę dlatego na razie jedyne co udało mi się osiągnąć to 1MB pamięci liniowej (może działać wraz z pamięcią na płycie głównej lub bez jako główna pamięć komputera). Tak naprawdę to pamięci liniowej to tylko 512kB bo jeszcze nie wymyśliłem jak odświeżać drugą połowę kości pamięci 44c256 (sterowanie linią A9). :(
Przewidziałem sporo luźnych wejść więc bez problemu mogę podłączyć sygnały z PIA i przeprogramować Xilinxa tak aby cała lub cześć pamięci pracowała jako np. 320kB  Rambo.
Udało mi się też zaprogramować kilka komórek flasha.
Brakuje mi czasu ale następne w planach mam wlutowanie rezonatora i zmuszenie procka do pracy z wyższą częstotliwością ale ponieważ nie zastosowałem na razie żadnych buforów to tu spodziewam się sporych problemów.

3

(31 odpowiedzi, napisanych Fabryka - 8bit)

Drakon napisał/a:
Mq napisał/a:

U Chińczyków są XC9536XL do dostania po około 3-5zł.

...i nawet działają, używam ich do dodgyPLA

Ja kupiłem kiedyś XC9572XL, sprawdziłem 2 i też działają, 2 jeszcze nie sprawdziłem, a w przypadku jednego okazało się że to uszkodzony XC9536XL  w obudowie 64pin (nie działa poprawnie 5 pinów) i się bardzo ciężko programuje (raz na 10).
Ale wiedziałem na co się decyduje więc nie jest to dla mnie problem :)

4

(31 odpowiedzi, napisanych Fabryka - 8bit)

atarixegs napisał/a:

1. Jakie  produkcje mogą nie zadziałać na zamienniku?

2. Jakieś konflikty z rozszerzeniami wew (u1MB) czy zew (np syscheck z 513k RAM)

3. No i jak się to ma do wspomnianej propozycji Lotharka czyli https://lotharek.pl/productdetail.php?id=233

Jeśli chodzi o pyt 1 i 2 to na tą chwile nie mam aż tak szerokich testów wykonanych. Nie mniej jednak zależności czasowe które pojawiają się na wyjściach CAS, RAS i W w mojej opinii wiernie odzwierciedlają oryginalny układ. Problemem mogą okazać się poziomy napięć wyjściowych Xilinxa.  Różnica na tą chwile to odmienna od oryginału multipleksacja adresów na szynie BA[7:0].
W tej chwili na BA0 pojawia się adres A0 i A8 a w Freddie wystawia tam z tego co pamiętam A0 i A14. W obecnych konstrukcjach nie wpływa to na działanie. To taka zaszłość konstrukcyjna dla obsługi DRAMów o pojemności 16kb.

Pyt 3. Zaprojektowane PCB umożliwia ograniczenie układu do samej funkcjonalności generatora sygnału 3,5Mhz (OSC). (bez Xilinxa a na spodzie płytki mam miejsce na dodatkowy dzielnik częstotliwości /4). Ale ta funkcjonalność jest przewidziana na moje przyszłe potrzeby i nawet jeszcze nie testowana.
W załączeniu zdjęcie miejsc na dodatkowe (zbędne w podstawowej wersji) scalaki.

5

(31 odpowiedzi, napisanych Fabryka - 8bit)

Sikor napisał/a:

@xxl: Atari nie chciało MapRAMu...
@Krystian77: nie ma załącznika, możesz dodać?  I zasadnicze pytanie: ile i dlaczego tak drogo? ;)

Dodałem załącznik.Mam nadzieję że teraz będzie ok.
Co do ceny to się jeszcze nie zastanawiałem, zanim pomyślę o dystrybucji chciałbym mieć przynajmniej jedno potwierdzenie od niezależnego testera. Nie posiadam np. 800XL aby przetestować płytę, choć zależy mi przede wszystkim na potwierdzeniu poprawnej pracy z różnymi wersjami obwodów rezonatorów 14Mhz stosowanych przez Atari.
Głównym czynnikiem mającym wpływ na cenę jest cena samego XC9536XL. Ja miałem używane ale z tego co widzę cena tego układu na rynku to kilkanaście złotych. Też cena zależy od wielkości zamówienia PCB.  Sumując to oraz tzw. drobnicę i mój czas to cena max 50 PLN za gotowy układ, choć myślę że przy większym zamówieniu PCB to cenę dało by się jeszcze obniżyć.

6

(31 odpowiedzi, napisanych Fabryka - 8bit)

barty79 napisał/a:

Nieźle wszystko rozmieściłeś. Czekamy na finalną wersję :)

Pomimo braku czasu to jednak dzięki namowom jednego z kolegów (Jaro124) postanowiłem dokończyć projekt.
W załączeniu zdjęcie wersji finalnej. Układ z uwagi na moje ograniczenia sprzętowe został z powodzeniem przetestowany w tylko płytach 130XE (1bitowe pamięci) oraz 65XE. Na dalsze testy układ zostanie przesłany do wspomnianego kolegi.

xxl napisał/a:

czy zaproponowany zamiennik obsluguje MAPRAM ?

Dla podstawowego działania wystarczy zamiennik umieścić w miejscu oryginalnego układu.
Dodatkowo zgodnie z sugestią kolegi przewidziałem funkcjonalność MapRam. W tym celu należy oprócz podstawowych układów dodatkowo dolutować w miejscu przewidzianym po drugiej stronie PCB układ 74LS02 oraz doprowadzić wymagane sygnały do pozostawionych na PCB punktów lutowniczych (PB7, PB0,PB5 i PB4). Test sprawności wykonałem przy użyciu programu CTEST.OBX.

Dla własnych/przyszłych zastosowań na PCB pozostawiłem punkty lutownicze dla sygnałów 14Mhz, ExtSel i CasInh oraz miejsce na jeszcze jeden układ TTL 74LS74.

7

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Ja jeszcze bym wymienił ROM stacji.  Ja miałem dwie takie stacje. W obu pomogła wymiana EPROMU.
Objawy były podobne jak u Ciebie, czyli kompletny brak komunikacji.

8

(31 odpowiedzi, napisanych Fabryka - 8bit)

xxl napisał/a:

czy zaproponowany zamiennik obsluguje MAPRAM ?

Jeśli dalsze testy potwierdzą że jestem w stanie obyć się bez sygnału Reset (jak dotąd działa bez) to pozostanie mi jedno wolne wejście do wykorzystania. Myślę że w Xilinxe funkcjonalność MAPRAM jeszcze się spokojnie zmieści bo jest miejsce. Tylko musiał bym dodać 74HCT02  aby dodać PB0 i PB7 ale to nie problem.
Dzięki za podrzucenie pomysłu.

9

(31 odpowiedzi, napisanych Fabryka - 8bit)

Cyprian napisał/a:

fajny pomysł. które CPLD użyłeś?

W pierwszej wersji CPLD miał być obok gniazda Ferdka. Ale na siłę szukałem sposobu zmieszczenia CPLD w obrysie podstawki DIP40. Długo kombinowałem jak to upchnąć ale się udało. Ale wymusiło to zastosowanie Xilinx XC9536XL. Ale wybór tego układu wiąże się z pewnymi konsekwencjami, o czym niżej. 

toriman1 napisał/a:

Układ kol. Simiusa działa bezbłędnie.

Znam ten projekt i tam kol. Simius wyprowadził "na zewnątrz" dodatkowe sygnały. Ja początkowo chciałem zachować 100% zgodność z oryginałem ale niestety wymuszony rozmiarami wybór układu ograniczył mi pole do wyłącznie 34 pinów. Dlatego niestety nogi 6, 7 i 36 pozostają niepodłączone. W oryginale były to odpowiednio sygnały /LE, /OE i /16K_CAS. Niestety nawet gdybym w jakiś sposób wygenerował sygnały /OE i /LE to i tak pewnie pozostały by bezużyteczne a na pewno i tak nie miał bym sposobu aby je sprawdzić. Sygnał /16K_CAS jestem w stanie poprawnie wygenerować (łącznie z poprawnym adresem co chcę jeszcze poprawić) ale z tego co kojarzę to i tak w żadnym Atari ten sygnał nie ma żadnego zastosowania.

W projekcie Simiusa na wspomnianych wyprowadzenia są dodatkowe sygnały. Sam MPY jest dla mnie jasny ale nie rozgryzłem zastosowania tych dwóch pozostałych (rozumiem że chodzi o coś związane z odświeżaniem).
Ponieważ mam sygnał Reset doprowadzony do struktury to podobnie jak Simius użyje go do resetowania zatrzasków sygnału /Cas_Inh i W (zgodnie z tym co przewiduje datasheet Ferdka).

PS. Jeśli chodzi o wspomniane przez mnie odświeżanie pamięci DRAM w Atari to trochę na tą chwilę brakuje mi pewności co do moje wiedzy/ podejrzeń ale chodzi mi po głowie pewien problem ale zanim zapytam to muszę coś sprawdzić.

10

(31 odpowiedzi, napisanych Fabryka - 8bit)

Ponieważ jakiś czas temu wpadły mi w ręce używane kości CPLD postanowiłem zrobić z nich użytek i postanowiłem że posłużą mi do nauki programowania w Verilog.  Po pierwszych sukcesach  nabrałem ochoty na coś „ambitniejszego”. Inspiracją był artykuł Naszego Kolegi http://hardware.atari8.info/freddie.php oraz mój uszkodzony  Atari 65XE. Tak powstał Freddie w wersji CPLD.

Do pracy użyłem układu testowego który to Pasiu zaproponował w swoim opracowaniu, tyle że z jedna zmianą (moje dwa uszkodzone Freddie mają linie A8 w innym miejscu niż wynika to ze schematu komputera oraz artykułu np. Wikipedi– prawdopodobnie posiadam wersje które potrafią również prawidłowo obsłużyć 16KB pamięci w komputerach Atari).  Zajęło mi chwilkę czasu zanim się zorientowałem ale się udało.
Opis, założenia:
1. Tak jak pisałem wcześniej do opisania struktury użyłem języka Verilog.
2. Do synchronizacji używam wyłącznie opadającego zbocza sygnału Phi2. Podjąłem też próby użycia obu zboczy tego sygnału ale zbocze narastając jest tak „rozwleczone” że nie nadaje się do niczego jeśli chodzi o CPLD.
3. Pierwsza wersja jaką napisałem „rozpoczynała” swoją pracę od pierwszego opadającego zbocza sygnału CLK. Działa ale uważam że nieprawidłowo (Problemy pojawiały się przy zamianie procesora). Spowodowane było to tym że procesor 6502c i układ generowania sygnału Phi2 dla procesora 65c816 wprowadzają różne opóźnienia dla sygnału zegara.
    Dlatego teraz pracuje nad wersją która będzie działała tak jak oryginał, czyli rozpoczynała pracę od pierwszego zbocza (opadającego lub narastającego) po opadającym Phi2.
4. Tymczasowo dla uproszczenia testów linie adresowe zdefiniowałem tak jak podaję Wikipedia ale docelowo spróbuje zrobić tak aby CPLD prawidłowo obsługiwała również 16KB pamięci.
5. Pomimo że sygnał RESET doprowadziłem do struktury to do niczego go w chwili obecnej nie wykorzystuje


PS. Chwilowo jestem na dłuższym wyjeździe i nie mogę dalej bawić się układem ale jak wrócę do domu i znajdę chwilkę postaram się opublikować kody źródłowe na githubie.

11

(19 odpowiedzi, napisanych Sprzęt - 8bit)

toriman1 napisał/a:

hej krystian77,

Pytanie na ostatnie pytanie - po co to robić?

Pozdrawiam

Znam projekt Simiusa. Moja dociekliwość wynika jedynie z mojej ciekawości - czy jest teoretyczna możliwość odratowania jakiegoś Ferdka, bo tak jak napisałeś : "o NOS Fredki będzie coraz trudniej..." :)
Częściowo również do zadania tego pytania zainspirowała mnie strona: http://visual6502.org/images/6502/index.html
Jasne jest że z ekonomicznego punktu widzenia moje rozważania nie mają najmniejszego sensu.

12

(19 odpowiedzi, napisanych Sprzęt - 8bit)

1. Jeśli pamięci się grzeją to pod żadnym pozorem nie należy włączać komputera, bo szkoda męczyć Ferdka!
2. Jeśli po włączeniu komputera podłączony monitor w żaden sposób nie reaguje to wskazuje również na uwalenie układu Freddie. Jeśli jest jakaś reakcje sugerująca złapanie sygnału synchronizacji to jest szansa że zegar taktujący ANTICA jeszcze działa (sygnał taktujący generuje Ferdek).

PS. Przy okazji tematu chciałem kolegów na forum trochę się poradzić w temacie Freddiego, otóż:
Posiadam dwa uwalone Ferdki. Postanowiłem je trochę przetestować. Testy przeprowadziłem w oparciu o układ testujący zaproponowany przez Pasia. Układ trochę zmodyfikowałem ale o tym może później.
Moje wnioski z testów logiki :
1. Pierwszy oczywisty - oba układy uszkodzone.
2. Układy nie mają poprawnych napięciowo (w sensie TTL) poziomów napięć wyjściowych.
3. Pomijając niestabilne poziomy napięcia wyjściowego oba z uszkodzonych układów działają w miarę POPRAWNIE LOGICZNIE.
4. Okazało się że każdy z moich układów inaczej multipleksuję linie adresowe niż wskazuje na to powszechna wiedza (w skrócie dla przykładu : na wyjściu BA0 pojawia się sygnał A0 i nie jak to by logika wykazywała A8 ale z tego co pamiętam to A14, podobne zmiany są na pozostałych wyjściach BA)
Po testach multimetrem w jednym z układów udało mi się namierzyć uszkodzenie : przerwa na linii GND ("nieskończona rezystancja do każdego z innych wejść)
Postanowiłem moje teorie sprawdzić poprzez umieszczenie układu w komputerze. Oczywiście komputer się nie uruchomił. Następnie wymyśliłem alternatywny sposób podania GND na logikę Ferdka. Ku mojemu zaskoczeniu na ekranie monitora pojawił się znajomy niebieski obraz tyle że z zakłóceniami :) Celowo nie opisuję na forum w jaki sposób dostarczyłem GND do układu bo nie chcę nikogo zachęcać  do takich eksperymentów.  Oczywiście zainteresowanym kolegom przekaże potrzebne do testów informacje - ale na własną odpowiedzialność.

Na koniec pytanie do kolegów: Czy jest możliwość/ szansa na ponowne "wszycie" chipa w nową obudowę DIP40? Wiem że np. w instytucie półprzewodników na PWR takie rzeczy kiedyś robili ale dla nowych układów.

13

(130 odpowiedzi, napisanych Fabryka - 8bit)

x_angel napisał/a:

Mam tylko płytki.
Kwarc sam ledwo znalazłem u siebie w zbiorach, bo tak jak pisałem, musiałem trochę powalczyć z tym generatorem, aby uzyskać 8.33 co i tak mi się nie udało (brak odpowiedniego kwarcu). Stanęło na 8Mhz i w sumie działa ale jeszcze nie wiem, czy tak być powinno :)

Znalazłem w sprzedaży  generatory 8,388MHz.  Jak myślicie może te 0,005 procenta nie sprawi problemu.