Bo drogi laptop i telefon potrafią się z ładowarką dogadać, a Atari mimo że USB ma swoje korzenie w SIO, nie potrafi ;)
Istotą tego projekciku jest właśnie to, że teraz Atari potrafi się dogadać z ładowarką PD.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Zmarł twórca języka BASIC Zmarł Thomas E. Kurtz twórca języka BASIC
Zmiana serwera atari.area Serwis przeszedł właśnie ważną aktualizację infrastruktury
4th Atari ASCII Compo - wyniki Dostępne są już wyniki tegorocznego ATASCII Compo.
thing neo 1.60 Olivier Landemarre wydał nową wersję desktopu Thing.
VIII. Basque Tournament of Atari 2600 Kolejna relacja, wśród otrzymywanych od naszego przyjaciela Egoitza z Kraju Basków.
atari.area forum » Posty przez heby
Bo drogi laptop i telefon potrafią się z ładowarką dogadać, a Atari mimo że USB ma swoje korzenie w SIO, nie potrafi ;)
Istotą tego projekciku jest właśnie to, że teraz Atari potrafi się dogadać z ładowarką PD.
Z tą krytyką to jest niestety trochę przykre
Krytyka jest jak najbardziej spoko i liczyłem na nią, jak już wyjątkowo będę się nudził, to dodam tego mosfeta, aby było jeszcze bardziej bajeranckie. Ale dostałem coś ekstra poza krytyką i ponieważ mam w planie jeszcze kilka drobnych usprawnień do mojej maszynki, chciałbym ustalić, czy ukonstytuowała się jakaś komisja, zatwierdzająca takie projekty i gdzie wpłaca się składki i uzyskuje zezwolenia.
Co do pozostałych wypowiedzi w wątku: dowolna markowa ładowarka wyjęta z pudełka z telefonem będzie 100x bardziej bezpieczna niż dowolna samoróbka czy oryginalny zasilacz kupiony na allegro. Zarówno pod względem przepięć jak i przede wszystkim izolacji. Miałem okazję rozbierać zasilacze robione współcześnie (do Atari i C64) i było to najzwyczajniej niebezpieczne (albo brak PE na obudowie i wystające metalowe śrubki z połową fazy, albo brak bezpieczników na trafo itp ciekawostki). Więc kabel DIN<>USB jest jak najbardziej sensowny, sam używam takich dwóch. W moim wypadku dla którego ten projekt powstał nie ma nic, goła płyta, wiec nie widzę sensu wstawiania DINa, skoro to będzie płyta do eksperymentów elektronicznych, a nie wzdychania z sentymentem.
Jeśli ktoś widzi tutaj jakieś rozwiązanie dla suwerena, to nie. To jest rozwiązanie dla nerda. Nerd jak sobie coś spali, to przynajmniej się czegoś nauczy.
Na wypadek, gdyby ktokolwiek bez minimum potrzebnej wiedzy użył
Nie użyje. Wymagane jest wyprodukowanie stosownego PCB, posiadanie drukarki, w naszym wieku też mikroskopu, i samodzielne złożenie, co wymaga niezłych umiejętności i warsztatu. To powoduje, że przeciętny suweren sceny retro tego nie zrobi. Ba, sam fakt, że wylutowanie oryginału jest nietrywialnym zagadnieniem, jest dostatecznie blokujący.
"strzeż się, nie ponoszę odpowiedzialności ze względu na to i tamto, bo... i ponieważ...". To zwykła uprzejmość do świrów o podobnych zainteresowaniach ;)
Świry o podobnych zainteresowaniach będą doskonale wiedzieli jaką krzywdę mogą sobie zrobić. Jaszcze raz, bo w ostatnich 10 latach sceny retro może to nie być jasne: ani tego nie sprzedaje, ani tego nie produkuje ani nie mam zamiaru tego robić w przyszłości. Masz pliki, zrób se sam. To dostatecznie redukuje niebezpieczeństwo zrobienia sobie krzywdy. Ponadto liczę na to, że każdy sobie wyforkuje i pozmienia co chce i jak chce. Po to jest OH. Spora część pracy jest wykonana, np. prawidłowe wymiary czy wydruk 3D są gotowe. Potrzebujesz wsadzić inny zestaw elementów? Ależ proszę!
Ja tam nie wiem kto będzie aprobował. Pewnie kto chce to zaaprobuje :D
Właśnie jestem ciekaw kto. Widocznie dużo się pozmieniało od mojej ostatnie wizyty.
Skoro podzieliłeś się swoim rozwiązaniem z innymi to pewnie w jakimś stopniu jest to dla Ciebie istotne.
Nie, podzieliłem się z zupełnie innej przyczyny. Ja najzwyczajniej lubię się dzielić.
Charakterny kot, stawia się staremu wojsku ;)
Zastanawia mnie co się dzieje w scenie retro, gdzie każdy kto przychodzi z byle czym od razu trafia do pomieszczenia ze stołem i zielonym suknem, dostając od razu w łeb jakimś "aprobowaniem", cokolwiek miał by to znaczyć. I dlaczego kot? Co o mnie wiadomo, poza tym, że napiszę jakiegoś posta raz na kilka lat?
Uzyles ukladu niedostepnego na europejskim rynku.
Dostępny w cenie 1zł na aliexpress od bardzo wielu dostawców. Nie uważam tego za jakikolwiek argument tym bardziej, że IC jest opcjonalny.
Twoja implementacja jest niestety niepelna. Brakuje MOSFET'a zalaczajcego zasilanie.
Wymagane tylko w sytuacji, gdy chcemy mieć napięcie > niż 5V aby urządzenie dostało od razu to właściwe. W przypadku 5V to zbędne. MOSFET był w planie, ale gotowe decoy z tym scalakiem, dostepne na ali, zazwyczaj go w ogóle nie dają.
Identyczny efekt da sie uzyskac za pomoca 2 rezystorow. (proponuje przeczytac specyfikacje USBPD)
Jak zapewne doczytałeś, wersja biedna ma taką opcję. IC jest opcjonalny. W zasadzie jest tam tylko po to, że mam ładowarkę, która odmawia zasilania bez niego (wyłaczy się po kilku sek). Jeśli go wylutujesz, 90% ładowarek nie będzie widziało różnicy.
Zdjecia na GH pokazuja egzemplarz z okrojona funkcjonalnoscia. (patrz plusy ponizej)
Wersja z GH pokazuje "wersję", w której zamiast bezpiecznika jest 0R, ponieważ nie podpinam tam ładowarki do akumulatorów od dziadka, a poprawną i markową ładowarkę. Nie muszę się przejmować nadmiarem prądu, tym przejmuje się ładowarka.
C1 o takiej wartosci moze przyniesc wiecej szkody niz pozytku
Kondensator jest w specyfikacji IC. Działa bez niego równie dobrze.
Sam nie ufasz swojej implementacji ... Jaka jest rola D1?
Ochrony przed uszkodzoną lub błędnie wykonaną ładowarką. Mam jedną ładowarkę USB-C która daje od razu 12V (pochodzi od elektronarzędzia, jakiś kretyn wykorzystał ten sam port do ładowania wkrętarki).
Niewatpliwie na duzy PLUS zasluguje to ze umiesciles bezpiecznik.
Nie ma on znaczenia, dostatecznie dobrym bezpiecznikiem jest użycie *słabej* ładowarki, 5-10W. Bezpiecznik jest opcjonalny, sam go nie używam. Jest tam tylko dlatego, że było miejsce.
Idea swietna ale wymaga poprawek. W wersji 2, napewno dostanie "Seal of approval"
Dzięki, ale nie przewiduję wersji 2, szczególnie, że nikt poza mną tego raczej nie użyje. Natomiast można forkować.
Na marginesie: a kto będzie aprobował i dlaczego to dla mnie niby ważne?
Cześć.
Z racji, że powoli składam sobie płytę 800XL, trzeba było zastanowić się czy warto wsadzać tam zwykły DIN do zasilania, czy może uderzyć w coś nowocześniejszego.
Wydłubałem coś takiego:
https://github.com/sebobialy/atari_usbc_power_din
Koszt jednej sztuki za same części wyszedł około 5zł, czyli taniej niż DIN ;)
Co prawda wątpię, aby komuś się to jakoś specjalnie przydało, ale skoro już wydłubałem, to postanowiłem się podzielić.
PS. Tak, wiem o przelotce USB-C do DIN, kablach USB<>DIN i o podobnym projekcie z AtariAge. Mój ma jednak poprawny Power Delivery:P
W pierwszych modelach Atari 400 montowano zwykły MOS 6502
No i własnie dlatego interesuje mnie schemat do A400 ponieważ logika HALT jest na zewnątrz i zakładam że działa tak samo jak w SALLY skoro ANTIC jest ten sam.
CPU nie odpina się od magistral w tym cyklu, kiedy HALT przychodzi, tylko w następnym.
Obejrzałem teraz dokładniej schemat do A400 i tam faktycznie sygnał HALT z Antica synchronizowany jest z dodatnim zboczem O1 przez przerzutnik i dopiero steruje buforami na A0-15. Dodatkowo widać też że HALT przestawia R/W zawsze w stan R. Dzięki za sugestię, muszę to dokładniej obejrzeć.
Zastanawia mnie jednak: dlaczego D0-D7 nie są odpinane od magistrali w A400? Jeśli cpu coś tam wymusza to zakłócało by to czytanie pamięci przez DMA. Czy 6502 ma jakąś dodatkową cechę związaną z D0-D7 typu pół cyklu są trójstanowe (wtedy zatrzymanie zegara powodowało by odpięcie od magistrali)?
Ktoś chętny na zrzut z 16MHz analizatora dla przyszłych pokoleń?
A co mi tam, tutaj zrzut zrobiony na 16MHz (poprzedni był na 8):
https://drive.google.com/open?id=0B_tde … XFrbnJvNWs
Może się komuś przyda.
Tak mi się wydaje że R/~W musi być chyba trójstanowe bo ANTIC musi na nim wymuszać R. Natomiast to co obserwuje to może jest tylko pojemność linii z powodu że ANTIC nie wysterował na R bo nie musiał (MMU wycięło zapis). Taka robocza hipoteza o lenistwie ANTICa.
A gdzie masz stan zrzucony stan linii CI (CAS Inhibit) z MMU? Może tu jest odpowiedź i na CI nie jest wystawiany stan niski?
P.S. Podepnij jeszcze /REF z MMU
Jak bym miał brakującą linię analizatora :D Czas kupić taki 16 lini minimum.
Podejrzewam właśnie taką machloję, czyli że CPU mówi "zapisuje" ale MMU zabrania (widzi sygnał ~REF).
Mi to wygląda na to że kiedy linia ~W jest aktywna i pojawi się ~HALT to CPU odpina się od magistrali ale lini ~W nie rusza, "zostaje w ostatnim stanie". Jest to dla mnie bardzo istotne poniewaz nie wiem czy sygnal ~HALT ma również powodować trzeci stan na R/W. Na razie wychodzi na to że może być i wysoka impedancja i jakoś tak przez te kilka cykli jest utrzymywana poprzednia wartość samą pojemnością lini.
A może ktoś może potwierdzić że R/~W w procesorze nie jest trójstanowe? Rozwiązało by mi to pewne problemy :D
Ogólnie jak zrobiłem zrzut na 16MHz taktowaniu analizatora to na lini ~HALT na wstępnych cyklach poczatku lini strasznie dużo wąskich szpilek. Hmm... kiepsko, wygląda na to że ANTIC generuje sieczkę.
Ponadto sam CPU zanim ruszy to upływa ogromna ilość czasu, ANTIC już robi cykle refresh a CPU w ogóle nie pracuje (brak zapisów w pamięć). To też zastanawia.
Ktoś chętny na zrzut z 16MHz analizatora dla przyszłych pokoleń?
Cześć.
A800XL z Freddie. Wsadziłem 6502 w podstawkę i podpiąłem kilka drutów z magistrali sterującej do analizatora. Puściłem całość do momentu właczenia do pojawienia się napisu READY. Chciałem zobaczyć kiedy pojawia się sygnał ~HALT względem Fi2 i czy sa jakies problemy zaraz po resecie. Są ale ...
... kiedy aktywowany jest ~HALT *czasami* pojawia się stan niski na R/~W. Nie wiem kto go tam wystawia. Wydawało mi się że zapis do pamięci jest możliwy tylko przez CPU. Tymczasem obserwuje że niekoniecznie. Czy ANTIC zapisuje pamięć? Do tej pory byłem pewny że on tylko czyta.
Nie pomyliłem drutów. Na ~HALT znakomicie widać sekwencja odświeżania RAM przez ANTICa. Widać również jak po NMI procesor czyta pamięć i robi push na stos. Zakładam więc że grubej pomyłki nie mam. Ponadto raczej wszystko się zgadza poza tym ~W podczas ~HALT.
Zapewne przeoczyłem coś oczywistego. Czy ktoś mógłby mnie oświecić?
Dorzucam jeśli kogoś to interesuje, plik vcd z analizatora (130MB):
https://drive.google.com/open?id=0B_tde … FlKaEs1NGM
Da się obejrzeć np. GtkWave.
Dorzuciłem zrzut z analizatora z taką sytuacją kiedy jest jednocześnie HALT i W oraz Fi2 robi oba zbocza.
Za pomocą Z301 (74LS74) i Z302 (74LS02) oraz buforów adresowych Z303 i Z304 (74LS244).
Wiem za pomocą czego. Nie jest dla mnie jasne czy O0 byl zatrzymywany (co narusza 50/50%, ale nie wiem jak to zrobić inaczej).
A tak to wygląda w realu, zrzuciłem przed chwilą z działającego Atari 65XE na płycie 130XE:
Od góry:
FO0
O0
O2
Jak widać O2 opóźnia się o 50ns względem O0 natomiast O0 o mniej więcej tyle samo względem FO0/2.
Nie udało mi się zaobserwować nieciągłości w zegarze O0, jednak to powoduje że dalej nie wiem jak robiono halt w A400.
Dodatkowo udalo mi się zaobserwować glitcha na CS pokey o którym była mowa w innym watku. Ma 20ns szerokości.
1 przykazanie starodawnej sztuki Atari brzmi:
Dokumentacja GTIA i ANTIC'a przyjacielem twy być powinna.
Szczególnie że nie tlumaczy "po co". Tlumaczy tylko "że".
GTIA taktuje ANTIC'a poprzez sygnał FØ0 w rytm ktorego taktu antic dane obrazu śle do GTIA po liniach AN0-AN2. Jest on przesunięty nieco w fazie względem OSC !! na którego narstającym zboczu sygnały z ANTICA są zatrzaskiwane. (w dokumentacji ANTICA jest napisane na którym zboczu ANTIC te dane wystawia)
O ile przesuniety? Nie potrafie znaleźć tej informacji. Brzmi podejrzanie. O czas propagacji, czy arbitralny?
ANTIC, jako procesor o większym priorytecie (hehe albo dla zasady albo poprostu tak jest bezpieczniej i zgodnie z zasadami) dzieli sygnał na 2
Potrafi to zwykly przerzutnik. Dlaczego robi to więc antic?
i synchronizuje go fazowo z Ø0
Co robi? Przecież nie ma tu co synchronizować. O0 jest *generowany* przez antic.
sally natomiast odwraca fazę, i już jako sygnał Ø2 idzie w świat.
O0 i O2 mają tą samą fazę. Pomyliło Ci się z O1 albo moja literatura kłamie. Jedyna różnica O0 i O2 to lekkie przesunięcie fazy. Do tego stopnia nieznaczące że w A400 jest w ogóle pominięte O2 a jego rolę pełni O0.
Synchronizuje on wszelkie zapisu Z i DO rejestrów. Wszystkich. Dlatego wraca on właśnie do ANTIC'a i GTIA, żeby wiedziały kiedy dane zatrzasnąć/wystawić.
Oba to wiedzą bo przed chwilą go wygenerowały, antic w szczególności to wie, bo generuje wprost O0 który jest prawie tym samym co O2. Dalej nie rozumiem dlaczego to antic dzieli przez 2.
heby napisał/a:Skąd GTIA będzie miec dane do ich wyświetlenia?
No na pewno nie z Antica - duszki i kolory nic z nim wspólnego nie mają. Dane ma z pamięci.
Ciekawe wobec tego jak wyjaśnisz obecność rejestru $D400 oraz:
"ANTIC's Player/Missile DMA feature reads bytes from memory and delivering data to update CTIA/GTIA's GRAFP0, GRAFP1, [...]"
Niestety nie ma to żadnego związku z tematem moich pytań.
Hmm, a co jeśli:
1. Puścisz sygnał z boku
2. Wyłączysz Antic
3. Na ekranie wyświetlisz tryb GTIA i/lub duszki?
Skąd GTIA będzie miec dane do ich wyświetlenia?
Jak zsynchronizujesz?
Skoro antic nie robi żadnych manipulacji na O0 przed wpuszczeniem w CPU to teoretycznie możliwe było by puszczenie O0 wprost przez dzielnik SCK. Powinno działać dokładnie tak samo. Jestem ciekaw czy te różnice w budowie zegara O0 nie sa przypadkiem odpowiedzialne za inny artefakting GTIA w A400 i xl/xe.
Szyje sobie z boku mały system bazujący na 6502 jako wprawę przed WilekąRzeczą. Po przeglądnięciu jak działa zegar w Atari XE/XL szczęka mi wypadła. To jest przeraźliwie zawiłe i zupełnie nie rozumiem dlaczego. Dla A400 jestem w stanie to chyba pojąć, dla xe/xl nie, dalej zagadką jest szeregowe gtia i antic przed cpu.
Inna sprawa (nie jestem programistą) - czy sygnał dla proca nie jest modyfikowany przez Antic dla przerwań DL?
Tu cała zabawa: 6502 nie może mieć inaczej niż 50/50% na O0. Każda zmiana zegara O0 oznacza zakłucenie tej proporcji i wyjście w obszar o którym dokumentacja cpu nic nie mówi (podpieram się dwoma źródłami) poza tym ze nie wolno.
Nie ma zatrzymywania O0. Wstrzymywanie procesora jest realizowane na dwa sposoby - przez sygnały HALT i RDY.
Dlaczego wiec źródłem O0 nie jest OSC tylko aż dwa scalaki? Ma to związek:
a) bo tak było w A400 i zostało
b) bo są tam magiczne opóźnienia
c) nie ma sensownej odpowiedzi
?
Jest też drugie pytanie: skoro O0 to praktycznie to samo co O2 to po co sa oba dostepne z ANTICA? Antic generuje O0 tylko po to by chwilę później reagować na O2 z CPU ktore de facto sam generuje. Dziwne. W A400 nie ma w ogóle O2 z CPU.
Fo0 to 3.5mhz
o2 to 1.7mhz, jak sa identyczne?
Ponieważ O0 można dostać poprzez podzielenie przez 2 i nie jest w tym potrzebny ANTIC.
W ogóle *NIE* trzeba go w tym celu przepychać aż przez dwa układy od innych zadań. Widocznie jest inny powód. Chcę wiedzieć jaki. Ze schematu A400 wynika że proces haltowania 6502 prawdopodobnie polega m.in. na zatrzymaniu zegara O0. Sprawdze to dzisiaj dokładnie. Być może w XL/XE O0 tez jest zatrzymywany (tylko po co skoro jest HALT).
Najwiekszą dla mnie niejasnością jest dlaczego ANTIC posiada dwa cieżkie sposoby na zatrzymywanie SALLY. Jeden przez HALT a drugi przez posiadanie źródła O0. I chce wiedziec czy faktycznie O0 po wyjściu z antica jest zatrzymywany.
Ogólnie propagacja zegarów w Atari jest przeraxliwie zamotana, bierze w tym udziala za dużo scalaków. Niestety nie trafiłem na żadną literature która to wyjaśnia kompleksowo.
a) Sygnał OSC z kwarcu 3,54MHz (PAL) wchodzi do GTIA i stanowi cykl koloru. Jednocześnie synchronizuje on sygnał 4.43MHz wychodzący jako PAL.
Tu wszystko jasne.
GTIA podaje FO0 do Antica
Wiem, ale po co tylko do antica a nie od razu do CPU?
Więcej, FO0 to prawie to samo co O2 z SALLY. Zapewne różnią się tylko lekkim przesunięciem związanym z propagacją. Dlaczego sa rozdzielone skoro sa praktycznie takie same?
aby zsynchronizować treść obrazu z kolorem, a z Antica wychodzi zegar 1.79MHz dla procka, żeby też synchronicznie działał z tym całym majdanem.
To dalej nie wyjaśnia dlaczego antic steruje cpu. Równie dobrze zarowno ANTIC jak i SALLY mogły by byc podpięte pod tą samą linie O0/O2. Innymi słowy szukam powodu dla którego sygnał z ANTICA steruje CPU wlasnie w ten sposób. Podejrzewam że ANTIC wycina z niego cykle powodując że 6502 zatrzymuje się. Jest to niezgodne ze specyfikacją 6502 i wydaje mi się podejrzane.
Ja wiem że oba mają pracować synchronicznie. To nie tłumaczy jednak dlaczego istnieją dwie linie FO0 i O0 które teoretycznie są identyczne. Więc podstawowe pytanie dalej brzmi: dlaczego ANTIC nie jest wpięty równolegle do O2 tylko steruje CPU.
Gorzej, dlaczego GTIA dzieli sygnał przez 2 i wystawia dalej (przeciez to mozna zrobć jednym przerzutnikiem).
b, c) Procesor działa z zegarem 1.79, system się wywali przy innej częstotliwości, (POKEY, PIA) obsługują SIO i inne rzeczy. Dodatkowo proc jest HALTowany przez Antica na czas jego potrzeb.
Jesli ANTIC ma do dyspozycji HALT to dlaczego ma jeszcze mozliwośc manipulowania O2 SALLY? Może to pozostałośc po 400/800 gdzie realizowano haltowanie inaczej.
Albo jeszcze inaczej: ANTIC ma aż 3 drogi do mieszania z CPU:
a) może go zatrzymać RDY (to chyba jest wykorzystywane tylko przez WSYNC)
b) może zrobić asercję na HALT
c) może "przeoczyć" cykle na O0 pozostawiając CPU bez sygnału co jest niezgodne ze specyfikacją (O0 musi być równo 1/2)
Punkt c) mnie niepokoi sugestią że to mozliwe jest wlaśnie fakt że sygnał O0 CPU ma pod pełną kontrolą ANTIC.
d) a "końpatybilność"?
To rozwiązanie sprzętowe i w niewielkim stopniu jest widoczny w software.
Mam drugie pytanie dotyczące połaczenia 6502 z resztą świata.
6502 nie jest taktowany wprost z generatora. Z jakiejś przyczyny sygnał zegarowy 3.5MHz jest wkładany:
a) najpierw w GTIA do OSC.
b) wychodzi z GTIA jako FO0 i wchodzi na ANTIC FO0
c) Wychodzi z ANTIC jako O0 i podawane jest na SALLY.
Dodatkowo ANTIC i GTIA dostają zwrotnie O2 (sa oczywiscie róznice w A400 i xl/xe, ale z grubsza).
Za dużo tych zegarów i to we wszystkie strony. Pytania:
a) dlaczego sygnał zegarowy przechodzi przez GTIA, ANTICA ?
b) co by się stało gdybym sygnał O0/OSC wygenerwał obok i podal na 6502 i GTIA, a wyjście O0 z antica olał? Czy sa tam jakieś zalezności czasowe pomiedzy O0 a OSC typu parzyste OSC itp?
c) Czy przypadkiem nie jest tak że ANTIC zatrzymuje O0 na czas dostepu dma lub refresh (było by to nielegalne z punktu widzenia 6502, ale moze nic złego nie czyni)?
d) punkt c) ma może i jakiś sens w A400, ale w XE/XL chyba nie bo tam procesor wytwarza O1 i O2.
SALLY ma dwa zagadkowe piny: SYNC i SO.
Wiem do czego są (SYNC oznacza cykl pobierania rozkazu, SO wymusza flagę przepełnienia).
Na schematach 130xe i 800xl oba sygnały są nieuzywane (SYNC w kosmos, SO do masy).
Jednak ... na schemacie 400 mamy SYNC wyprowadzony poza płytkę CPU. Co prawda chyba nigdzie jesli dobrze widzę nie jest dalej podpięty, ale mnie to zmartwiło.
Czy SYNC w jakikolwiek wersji atari był do czegoś potrzebny?
Stawiam ostrożną hipotezę że oba są niewykorzystane w każdej maszynie Atari 8bit.
Mam tez pytanie poboczne:
Czy ja dobrze widzę, że generację Fi2 dla komputera 400 zajmuje się nie CPU tylko kilka układów 74LS? To wynika z tego "słynnego" haltowanie bez lini halt? Próbuje rozkminić schemat 400 gdzie nie jest dla mnie jasne w jaki sposob zmuszano 6502 do odpięcia się od magistrali adresowej i mam wrażenie że nie zmuszano, tylko odpiano buforami 244 :) A jeśli tak, to czy do zatrzymywania CPU wykorzystywano RDY?. Uzycie RDY i jednocześnie odpięcie cpu od magistrali adresowej w zasadzie załatwia sprawę zrobienia HALT w 6502. Nie potrafie jednak znaleźć informacji czy kiedy jest asercja na RDY to linie danych są odpinane przez CPU. Zakładam że są.
No i teraz niestety nie wyglada to różowo, bo 6502 daje się zatrzymywać tylko w cyklach odczytu pamięci. 65C02 chyba w dowolnym. A SALLY *chyba* pochodzi z 6502 a nie 65c02. Efektem czego moja hipoteza pada na pysk ... RDY nie potrafi zatrzymać CPU w cylu zapisu. Jak więc działa zatrzymywanie CPU w dowolnym momencie przez ANTICa w Atari 400?
lepiej ustawic irq na rosnace zbocze iloczynu sygnalu not pokey_cs i phi2, bedziesz mial pare cykli na wczytanie adresu i danej z io
przy 16/32 bitowym mcu to bedzie jedna instrukcja
Problem że te pare cykli to ciasno. Odczyt 6502 wymaga u mnie kilku instrukcji (wyłaczenie przerwań, odlożenie rejestru na stos, pobranie A, adresacja w pamięci wewnatrznej, pobranie z pamięci, zmiana kierunku portu itd, samo przyjęcie przerwania to będzie z 4 cykle). Ponadto procesory 16/32 zazwyczaj są niewiele szybsze. Na ten przykład SAM7S ma znacznie wolniejsze GPIO niz avr co jest o tyle zabawne że pochodzą od tego samego producenta a zegar SAM7 jest 5x większy niż AVR ale dla małych dupereli na drutach jest jakby mniej wydajny (rownież z powodu organizacji flash). Innymi słowy nie ma prostej zależności 16/32 bity -> szybciej. Się zobaczy, się pomyśli.
to juz plyty glownej nie robisz?
A niby dlaczego tak sądzisz? Obecnie składam system uC na 6510 wyszarpanym z C64 dla rozgrzewki lutownicy, a obecny temat ma trochę z tym (pcb) wspólnego. W gąbce obok siedzi AY z Z80 i też czeka na swoja kolej :)
Co to znaczy "absurdalnie duży"?
Zapewne coś zupełnie innego niz "absurdalnie różny".
Jeśli na podstawie jednego komputera
No ale ja nie mam więcej :) Przecież właśnie dlatego tu jestem i pytam. Jak bym miał kilka to bym sobie pomierzył i miał statystykę.
Najlepiej sam, używając najszyszych serii CMOS, zdekoduj adres
To kłopotliwe bo im mniejszy zakres adresów tym lini do dekodera wchodzi więcej, wiec zaczyna się jazda ze znalezieniem więszości z Ax na płycie... Innymi słowy gdybym miał już dekodować to wsadziłbym CPLD zamiast bramek co załatwiło by wiele innych rzeczy. Wlasnie to jest jedno z rozwiązań hybrydowych.
Jeśli wystarczy ci 80-90% prawdopodobieństwa działania z różnymi komputerami
Naprawdę jest aż tak ogromny rozrzut CS względem Fi2? ja rozumiem że różne technologie, mmu, freddie, bramki, ale naprawdę są to absurdalne różnice że CS lata po całym półcyklu Fi2? Jesli jest aż tak źle to marnie widzę szanse.
marudzisz, nosty zrobil na dspic'u (projekt tomek)
Masz na myśli TOMEK-8 ? Jesli tak, to zacytuję autora:
"Zrezygnowalem z dekodowania adresow. Bo wymyslilem jak zrobic to wszystko co pokazalem w demie i co opisal XXL, bez podlaczania do koprocesora szyny adresowej".
Ja nie mam takiego komfortu, musze dekodować adresy i wybierac prawidłowe adresy w RAMie CPU. Mam wątpliwośc że cokolwiek poza propellerem się wyrobi. Za kilka dni oscyloskop wróci do życia to się zapewne dowiem ...
Chcesz to oszacowac na podstawie jednego komputera i zrobic coś, co bedzie pracować tylko w tym jednym?
Szacowanie jest niezbedne aby móc przejśc do etapu projektowania. Szacowanie jest mi potrzebne aby w worst-case mieć pojęcie ile mam czasu na reakcję. Wątpie żeby te 50ns było spotykane na busie, ale nie wykluczam.
PS. Nie dam wiary że pomiedzy różnymi modelami czas ten jest jakoś absurdalnie różny. I *nikt* kto projektuje hardware nie może dać gwarancji że zadziala na wszystkim. I nie o to chodzi. Chcę na pierwszy ogień mieć szacunek czy układ sekwencyjny taki jak CPU jest w stanie się wyrobić i w jakim czasie. IMHO nie da rady niczym popularnym, a propeller jest dośc drogi choć pewnie nadawał by się znakomicie. Więc zadaniem moim na początek jest wyeliminować na czym się nie da. Zapewne skończy się na cpld + cpu lub jakiejś innej hybrydzie bo małe fpga ciągle drogie...
atari.area forum » Posty przez heby
Wygenerowano w 0.015 sekund, wykonano 64 zapytań