kategoria: A500
[#1] Turbo do A500 home made .. Help !!
Witam

Chciałbym zaprojektować własne turbo dla A500 .. mam pojęcie o elektronice praktycznej potrafię zaprojektować sprzęt (prototyp juz jest) jednak mam problem z programowaniem logiki ... projekt jest całkowicie hobbystyczny więc nie należy doszukiwać sie w tym sensu .. poszukuje chętnego do pomocy .. w projekcie użyłem dwóch Gali 16v8 i procesora 68HC000EI20 .. na początek chciałbym go podgonić na 28MHz bez Fastu ... będę również wdzięczny jeżeli ktoś poda jakieś namiary na dokumentację WinCUPL w którym chciałbym stworzyć projekt ..(wydaje mi sie najprostszy ) ..
[#2] Re: Turbo do A500 home made .. Help !!

@lukzer, post #1

Po pierwsze, to napisz coś więcej na temat swojego projektu, rzuć schemat (choćby blokowy), będzie o czym gadać. Bo tak to niestety nie podałeś żadnych konkretów, więc nie ma o czym gadać.

Co do GALi, to moja sugestia jest następująca: Nie chrzań się z GALami tylko weź jakieś łatwo dostępne CPLD np. XC9536XL (są dostępne w obudowach PLCC), który jest kompatybilny z napięciami 5V, a jednocześnie zastąpisz nim kilka GALi. Nie będziesz też musiał rzeźbić w syfiastym sofcie sprzed 20 lat, a będziesz mógł użyć czegoś w miarę nowoczesnego i darmowego np. Xilinx ISE. No chyba, że wsad do GALi masz już napisany, to inna sprawa.

Ostatnia aktualizacja: 24.08.2014 23:24:53 przez strim_
[#3] Re: Turbo do A500 home made .. Help !!

@strim_, post #2

pokłony strim_ jesteś moim idolem pokłony Normalnie miło się czyta takie posty. Sorki za OT, ale plusa bym ci dał jak by się dało.OK
[#4] Re: Turbo do A500 home made .. Help !!

@strim_, post #2


http://zapodaj.net/76a6a48bd771c.gif.html

Schemat blokowy i bardzo prymitywny (zrobiony na szybko) .. moje schematy jak narazie są tylko zrobione odręcznie .. samo podłączenie jest bardzo proste wystarczy zadbać o kilka sygnałów AS DTACK LDS UDS RW .. E VMA VPA ... resztę wystarczy połączyć bezpośrednio ... jak wcześniej napisałem nie znam sie na programowaniu LOGIKI i CUPL wydaje mi sie najprostszy ... nie ma problemu aby w projekcie zastosować jakiś uklad Xilinx-a bądź Alter-y jednak VHDL to juz dla mnie całkowicie magia ...

Ostatnia aktualizacja: 25.08.2014 00:02:04 przez lukzer
[#5] Re: Turbo do A500 home made .. Help !!

@lukzer, post #4

Mógłbym pomóc Ci napisać wsad do CPLD w VHDLu. Sam na razie nie wiem jak to zrobić, ale nie może być to takie trudne . Mógłbyś słownie opisać jak oczekujesz, że ta logika będzie działać i do jakich wniosków doszedłeś do tej pory.

W jaki sposób obecnie generujesz zegar 28MHz dla CPU? Jak zapewne wiesz, on musi być synchroniczny względem sygnału zegarowego 7MHz z Amigi.

Jednak patrząc na ten diagram, to mam wrażenie, że rozbicie tego na osobne GALe jeszcze dodatkowo komplikuje sprawę. Np. sygnał AS można by było wykorzystać przy obsłudze E/VPA/VMA.

Dobrze byłoby, gdybyś swoje odręczne schematy przerysował do jakiegoś CADu, np. KiCAD albo Eagla.

Ostatnia aktualizacja: 25.08.2014 00:48:47 przez strim_
[#6] Re: Turbo do A500 home made .. Help !!

@strim_, post #2

Seria XL też nowa nie jest, a do tego nie wiem czy absolutnie pełna kompatybilność 5V czy tylko na WEJŚCIACH. Pewien rysuneczek sugeruje, że na wyjściach jedynie 3.3V co mogą TTL zaakceptować, ale to będzie działać jedynie jeśli będziemy mieli pewność, że nic nie wystawi 5V bo to przez diody zabezpieczające podciągnie 5V do VCCIO XC9536XL i mniej lub bardziej szybko go usmaży.
[#7] Re: Turbo do A500 home made .. Help !!

@abcdef, post #6

Seria XL też nowa nie jest


Seria XL to najnowsze CPLD Xilinx, których można używać w Amigach (czy ogólnie sprzęcie opartym o 5V napięcia), bez potrzeby stosowania jakiś dodatkowych konwerterów poziomów logicznych. Są one obecnie produkowane, łatwo kupić nowe. Do tego są tanie, naprawdę nie widzę powodu żeby babrać się w 20 letnich GALach.

Pewien rysuneczek sugeruje, że na wyjściach jedynie 3.3V co mogą TTL zaakceptować (...)


Źródło?

Z moich doświadczeń dotychczasowych wynika, że nie ma problemów, poza tym datasheet twierdzi, że:

The I/Os on each XC9500XL device are fully 5V tolerant even though the core power supply is 3.3 volts. This allows 5V CMOS signals to connect directly to the XC9500XL inputs without damage. In addition, the 3.3V VCCINT power supply can be applied before or after 5V signals are applied to the I/Os.


Mam wrażenie, że zaraz rozpoczniemy bredzenie o niczym, więc lepiej poczekać na schemat od autora wątku zamiast snuć domysły...
[#8] Re: Turbo do A500 home made .. Help !!

@strim_, post #7

Źródło?
http://www.xilinx.com/support/documentation/user_guides/ug445.pdf
5V tolerant signal DRIVING - wyjście (wnioskują o stosowanie OBUF z 0 lub HiZ + ext. pullup resistor do 5V)
Oraz
http://www.xilinx.com/support/documentation/data_sheets/ds054.pdf
fig.11
Zwróć uwagę na OUT.
Do tego są tanie, naprawdę nie widzę powodu żeby babrać się w 20 letnich GALach.

Nie o to mi chodziło. Raczej o użycie jeszcze starszych i gorzej dostępnych bez dopisku XL ale z pelnym 5V I/O.
Wiem, że mikka leinonen w kilku wersjach cfide68k stosował XC9572XL 64 pin z buforem na 8 bitach danych (drugie 8 podpięte bezpośrednio) i działało ale można tak powiedzieć o dużej rzeszy różnych sprzętów działających poza oficjalną specyfikacją
[#9] Re: Turbo do A500 home made .. Help !!

@abcdef, post #8

Dobra, ale z tego nie wynika nic odkrywczego, tylko tyle, że maksymalnym napięciem wyjściowym jest 3.3V. A już na pewno nie mówi, że coś się będzie smażyć...

Jeśli jest potrzebne faktycznie pełne 5V na wyjściu, to można zastosować trick z rezystorem, ale (jeśli dobrze rozumiem), to ma na celu tylko podciągnięcie napięcia do 5V, dla kompatybilności z układami TTL, które z jakiś powodów nie traktują poziomu 3.3V jako logicznej jedynki. Nie ochronę CPLD przed uszkodzeniem.

Jeżeli istnieje jakakolwiek wątpliwość czy stan wysoki podany z XC9500XL będzie widziany jako wysoki przez 68000, to trzeba zajrzeć do datasheetu i przeczytać jakie jest minimalne napięcie traktowane jako stan wysoki. Wg. mnie będzie (patrz karty serii ACA ).
[#10] Re: Turbo do A500 home made .. Help !!

@lukzer, post #1

Apropo turbiacza do A500 niebawem powinien być dostępny TurboFlyer od Elboxu. W zasadzie to turbo + FastATA. Podobno ma wyciągać na dobrej karcie CF około 15MB/s.

link
[#11] Re: Turbo do A500 home made .. Help !!

@strim_, post #2

W sieci dostępna jest dokumentacja do A500, karty Turbo z 68020, jej wadą jest zastosowany i już trudno dostępny układ mach 120, czym można go zastąpić ? nadadzą się dwa układy XC9536XL lub jeden XC9572XL. Z pewnością łatwiej będzie tę kartę odtworzyć niż robić to od podstaw.
[#12] Re: Turbo do A500 home made .. Help !!

@strim_, post #9

Dobra, ale z tego nie wynika nic odkrywczego, tylko tyle, że maksymalnym napięciem wyjściowym jest 3.3V. A już na pewno nie mówi, że coś się będzie smażyć...

Jeśli wyjście będzie skonfigurowane jako twardo 0,1 (low, high) to tranzystor podciągający do VCCIO będzie działał inwersyjnie (na kolektorze mniejsze napięcie niż emiterze, a w zasadzie na drenie mniejsze niż źródle - patrz dioda wbudowana w MOSFET skierowana przeciwrównolegle będzie zwierała do VCCIO). I owszem, będzie to praca nieoptymalna, a czy szkodliwa to już inna sprawa.
Nie ochronę CPLD przed uszkodzeniem.

Jeśli masz niejako open drain to jak chcesz zwierać 5V do 3.3VCCIO?
Jeżeli istnieje jakakolwiek wątpliwość czy stan wysoki podany z XC9500XL będzie widziany jako wysoki przez 68000

Nie mam tutaj wątpliwości odnośnie wysokości stanów (bo większość TTL jako bezwzględnie wysoki traktuje już 1.8V) ale mogę mieć delikatne obawy co do stromości zboczy, parametru który czasem ma znaczenie.
[#13] Re: Turbo do A500 home made .. Help !!

@strim_, post #5

Przerobiłem schemat pod XC9536 .. jest on bardzo prosty i nie zawiera jak na razie pamięci... jak uda się go uruchomić spróbuje dodać fast ...

http://www.sendspace.pl/file/7963a8fca3d2a876ef02214

Logika ma dopasować sygnały podkręconego procesora .. Wg. mojej wiedzy trzeba je zsynchronizować z taktem 7MHz. Teoretycznie należy opóźnić sygnał sygnał AS (adress strobe) na tak długo aby płyta przydzieliła DTACK (data transfer acknowledge). Jednak nie do końca wiem czy jest to prawidłowe rozumowanie ... pozostają jeszcze sygnały UDS i LDS na które jak na razie nie mam pomysłu ...

Natomiast jeżeli chodzi o sygnał E, VMA można je wygenerować .. mam gotowy program w CUPL który generuje sygnał E oraz odpowiedź VMA na podstawie VPA z płyty .. trzeba by to tylko przepisać na VHDL..

A jeżeli chodzi o generowanie 28MHz to można je uzyskać z 7MHz puszczając je przez XOR-y opóźniając jedno wejście i powinno to działać ... jednak aby nie komplikować sobie życia można też wykorzystać generator z płyty ...
[#14] Re: Turbo do A500 home made .. Help !!

@lukzer, post #13

A jeżeli chodzi o generowanie 28MHz to można je uzyskać z 7MHz puszczając je przez XOR-y opóźniając jedno wejście i powinno to działać ...


Jeśli dobrze rozumuje, to taki zegar chyba nie będzie miał cyklu pracy 50% low/high?

jednak aby nie komplikować sobie życia można też wykorzystać generator z płyty


A jaka jest relacja między zegarem z tego generatora, a zegarem 7MHz procesora?

Ewentualnie może dałoby się też podciągnąć syngał CDAC, który jest opóźnionym o 90 stopni sygnałem zegarowym 7MHz. Tylko to wymagałoby dodatkowego kabelka do karty. Choć nie wiem czy to pomoże w uzykaniu 28MHz. 14MHz byłoby w ten sposób łatwo zrobić.

Logika ma dopasować sygnały podkręconego procesora .. Wg. mojej wiedzy trzeba je zsynchronizować z taktem 7MHz. Teoretycznie należy opóźnić sygnał sygnał AS (adress strobe) na tak długo aby płyta przydzieliła DTACK (data transfer acknowledge).


Hmm. Opóźnić AS czy raczej AS pozostawić jak jest, a manipulować DTACKiem? Może lepiej zrobić logikę, która wystawia zmodyfikowany DTACK na podstawie oryginalnego sygnału DTACK, zegara 7MHz z płyty i AS z CPU?

Jednak nie do końca wiem czy jest to prawidłowe rozumowanie ... pozostają jeszcze sygnały UDS i LDS na które jak na razie nie mam pomysłu ...


Wg. mnie UDS i LDS nie wymagają zmian. Dlaczego uważasz, że coś z nimi trzeba robić?

Natomiast jeżeli chodzi o sygnał E, VMA można je wygenerować .. mam gotowy program w CUPL który generuje sygnał E oraz odpowiedź VMA na podstawie VPA z płyty .. trzeba by to tylko przepisać na VHDL..


Dawaj ten kod, zobaczę o co tam chodzi ;).
[#15] Re: Turbo do A500 home made .. Help !!

@abcdef, post #12

Nie mam tutaj wątpliwości odnośnie wysokości stanów (bo większość TTL jako bezwzględnie wysoki traktuje już 1.8V) ale mogę mieć delikatne obawy co do stromości zboczy, parametru który czasem ma znaczenie.


Może układ na tranzystorze miałby wątpliwą stromość zbocza, w mojej karcie do A600 został użyty układ XC95144XL z wyjściami skonfigurowanymi jako SLOW SLEW RATE i działa przy 28MHz na pamięciach i procesorze 5V. Narastanie zbocza zależy od pojemności linii i wydajności prądowej wyjścia, jak ktoś nie będzie ciągnął ścieżek po 30cm, to CPLD xilinxa powinno wystarczyć. Układy CPLD Xilinxa są wykorzystane również w Furii020 od Boboo, występują także na kartach ACA dla A1200 i A600. Tu nie ma co dyskutować, bo temat jest dawno przetestowany w praktyce.
[#16] Re: Turbo do A500 home made .. Help !!

@lukzer, post #1

Żadnych CUPLów, albo VHDL albo Verilog, języki uniwersalne dla wszystkich CPLD i FPGA.

Na początek proponuję zakup CPLD z 144 makrocelami Xylinxa, albo 128 makrocelami od altery, w produkcie finalnym będziesz mógł dać mniejszy.

Zastanów się czy nie porywasz się z motyką na słońce, będziesz musiał symulować oryginalny cykl 68000, tak jakby pracował przy 7MHz, dodatkowo, będziesz musiał także odwzorować w ten sam sposób cykl do peryferii Commodore z użyciem sygnałów E,VPA,VMA.

Może Ci się przydać analizator logiczny.
[#17] Re: Turbo do A500 home made .. Help !!

@strim_, post #14

Kod który generuje E oraz VMA z odpowiedzi na VPA,

!E = (!ED )& (!EC )#
(!ED )& (!EB );

!EA.D = EA ;

!EB.D = (!EB ) & (!EA )#
( EB ) & ( EA )#
( ED );

!EC.D = (!EC ) & (!EA )#
(!EC ) & (!EB )#
( EC ) & ( EB ) & (EA );

!ED.D = (!EC ) & (!ED )#
(!EB ) & ( EA )#
(!ED ) & (!EA );

!VMA = (!ED ) & (!EC ) & (EB ) & (EA ) & (!VPA )#
(!VMA ) & ( ED )#
(!VMA ) & ( EC );

Jak łatwo zauważyć EA do ED to nic innego jak LS90 czyli licznik BCD z którego wyciągamy 6 sygnałów LOW i 4 HIGH .. Natomiast VMA jest wygenerowane na podstawie tych sygnałów oraz VPA tak jak to wygląda w dokumentacji 68000 (przynajmniej tak to wygląda dla mnie) ..

Jeżeli chodzi o sygnał AS jestem jednak zdania ze trzeba go opóźnić bądź przynajmniej wygenerować sygnał niski na odpowiednio długo aby płyta go zrozumiała .. Oryginalnie procesor wystawia AS i czeka na DTACK jednak przy wyższej częstotliwości trwa to zbyt krótko i procesor łapie BUS ERROR ...tak wynika z moich obserwacji... Jeżeli stan niski utrzyma sie odpowiednio długo płyta powinna wystawić DTACK który oczywiście należało by zmodyfikować.

UDS i LDS są elementem magistrali asynchronicznej i razem z R/W kontrolują przepływ danych przez szynę. Problem może polegać na tym ze przy 28MHz układy na płycie nie rozpoznają tych sygnałów ..

Posiadam 16-sto kanałowy analizator logiczny wiec może da radę. Jeżeli natomiast chodzi o motykę i słońce :) to wiem że to nie jest to proste ale jak to napisałem na samym początku jest to projekt hobbystyczny...
[#18] Re: Turbo do A500 home made .. Help !!

@lukzer, post #17

W A600 sygnały VMA, VPA, E nie są wykorzystane, zajmuje się tym Gayle, który wystawia DTACK w odpowiednim momencie.

Jeżeli chodzi o sygnał AS jestem jednak zdania ze trzeba go opóźnić bądź przynajmniej wygenerować sygnał niski na odpowiednio długo aby płyta go zrozumiała .. Oryginalnie procesor wystawia AS i czeka na DTACK jednak przy wyższej częstotliwości trwa to zbyt krótko i procesor łapie BUS ERROR ...tak wynika z moich obserwacji... Jeżeli stan niski utrzyma sie odpowiednio długo płyta powinna wystawić DTACK który oczywiście należało by zmodyfikować.


Proponuję poszukać informacji na temat cyklów szyny 68000 w dokumentacji procesora, lub innych źródłach zewnętrznych i przeanalizować, co w jakim stanie jest wystawiane. Widać, że zbyt głęboko nie wnikałeś, bo po wystawieniu AS procesor będzie czekać, tak długo, aż nie dostanie DTACK. Błąd występuje nie dlatego, że Amiga nie rozpoznaje tych sygnałów, tylko dlatego, że procesor czyta dane z szyny zanim te się tam pojawią, co jest naturalne jeśli Amigi wystawia DTACK od razy gdy pojawi się AS przy dostępie do ROMu i innych obszarów, przy 7MHz nie ma to znaczenia, ale przy 14 lub 28 już tak. Dlatego sam musisz generować ten sygnał w odpowiednim momencie, wiec przede wszystkim musisz zrozumieć cykl 68000 i odwzorować, go tak jakby to był procesor 7MHz. AS, UDS i LDS mają swoje ustalone miejsce w cyklu, dodatkowo przy odczycie UDS i LDS są wystawiane razem z AS, a przy zapisie jeden okres dalej.
[#19] Re: Turbo do A500 home made .. Help !!

@sanjyuubi, post #18

i tu konkrety gość z konkretom odpowiedzią ... jako jedyny napisałeś konkretnie i podzieliłeś sie wiedzą ... wiem ze stworzyłeś tego dziewięcio-ogoniastego turbiszcza do A600 ... nie wiem tylko dlaczego tu wspominasz o A600 wiem ze tam VPA MA i E nie maja znaczenia ... ja chcę zrobić małą dopałkę do A500 która jak na to wygląda jest nieco trudniejsza .. dzięki wielkie za info i dokumentację którą podałeś .. teraz nie będę błądził w domysłach ..
[#20] Re: Turbo do A500 home made .. Help !!

@lukzer, post #19

Wspomniałem o A600 w związku z sposobem rozwiązania zewnętrznej obsługi Peryferii, ponieważ i tak musisz zrobić to zewnętrznie, to powinieneś pomyśleć o terminowaniu cyklu poprzez DTACK, właściwie, to nie jestem pewien, czy tak nie będziesz musiał zrobić. Cykl peryferii zależy od taktowania procesora, już dwukrotne przyśpieszenie może powodować problemy ze stacją dysków, poszukaj sobie różnych hacków 14MHz do A500 (na aminecie jest jeden), to proste układy (widocznie przy 14MHz w A500 jeszcze się jakoś szyna wyrabia), w którymś nawet zegar był przełączany na 7MHz, gdy włączała się stacja dysków. Proponuję jednak nie chodzić na skróty jak w przypadku tych hacków, tylko zrobić to dobrze, bo się może zemścić.

Możesz też pomyśleć o procesorze 68SEC000, nie ma w nim VPA, VMA i E, ale to nie ma znaczenia skoro i tak musisz to zrobić zewnętrznie, za to jest dość dostępny i mozna go kręcić nawet do 50MHz w niektórych przypadkach.

Ostatnia aktualizacja: 26.08.2014 23:01:22 przez sanjyuubi
[#21] Re: Turbo do A500 home made .. Help !!

@sanjyuubi, post #20

Po dwóch długich latach i dziesiątkach spędzonych przy tym godzin (w wolnym czasie) udało się osiągnąć cel .. a nawet trochę więcej ! Odtwarzam cykl procesora 7MHz przy użyciu maszyny stanów.
Całość działa dzięki wykrywaniu zbocza sygnału CLK z Amigi. Teraz wydaje się to takie proste ..
Obecnie procesor działa z częstotliwością 32MHz na generatorze 64MHz. Zajmuje 21 mikroceli .. za logikę odpowiada XC9536XL.. Płytka jest prymitywna ale została zaprojektowana dwa lata temu jak nie miałem pojęcia w czym rzecz ... Mimo to działa :)
Krótki filmik prezentujący działanie projektu który powstał od zera filmik

Teraz zostaje dołożyć trochę pamięci aby w pełni wykorzystać te 32MHz .. mam nadzieje że uda mi się to zrobić szybciej i nie zajmie mi to kolejnych dwóch lat.
[#22] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

Konkurencja dla Vampira? Po dopracowaniu oczywiście. Podziwiam. Szczerze.
[#23] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

Szakunec i prospekt! pokłony
[#24] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

Zrobił nam się wysyp turbinek do 500 zrobił szeroki uśmiech
[#25] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

gratulacje
[#26] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

BrawoOK Naprawdę podziwiam
[#27] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

brawo! pokłony pokłony
[#28] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

Gratulacje! Świetna wiadomość, takie turbo bardzo się przyda w A500.
[#29] Re: Turbo do A500 home made .. Help !!

@lukzer, post #21

To znaczy, że masz 68000 w układzie FPGA? SysInfo się chyba gubi w zeznaniach, bo formalnie masz 32 MHz, program pokazuje 20 MHz, a speed test daje 1,08 szybkości gołej sześćsetki.
[#30] Re: Turbo do A500 home made .. Help !!

@sanjyuubi, post #18

W A600 sygnały VMA, VPA, E nie są wykorzystane, zajmuje się tym Gayle, który wystawia DTACK w odpowiednim momencie.

Czyli teoretycznie odpowiedni procesor powinien działać np. na 14MHz tak po prostu jeśli dobrze rozumiem, gdzieś nawet o tym pisałeś, a i w internetach nie brakuje opini, że i owszem jednak problem polega na tym, że nikt tego nie sprawdził.
Wlutowałem sobie 010FN12 do A600, podałem 14MHz z Agnusa i nic z tego, na wszelki wypadek spróbowałem też z 010FN25 i dalej kupa, oczywiście przy 7MHz nie ma problemu.
Może jednak potrzebne są jakieś dodatkowe zabiegi?
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem