forum speccy.pl
ZX Spectrum => RÓŻNOŚCI => Wątek zaczęty przez: xangel w 2024.06.20, 11:13:45
-
To jak mam tu już na linii zacnych fachowców, to może i ja się podłączę i podpytam:
Zamawiałem układy ATF1508AS z Ali do projektu:
https://github.com/OlegMishin/A500_8MB_ide
Poradziłem sobie z ich zaprogramowaniem za pomocą BusPirate v. 3.6 i BPXSVFplayer (wczesniej musiałem przekonwertować plik svf na xsvf).
Ale postanowiłem zakupić tańsze układy EPM7128S i mam z nimi problem.
Z tego co wiem, te układy są zamienne. Ale czy tak zupełnie 1:1? Mogę tym BusPirate i tym samym plikiem puścić do niego wsad? Czemu pytam? Bo oczywiście nie działa :)
Próbowałem podłączyć nogę 84 przez rezystor 1k do +12V i też nie działa.
Jeśli nie tym BusPirate, to czym?
Posiadam Xilinx Cable na LPT i komp z XP, posiadam tani USB Blaster z Ali, taki z biało-niebieską naklejką oraz posiadam klon Xilinx Platform Cable USB taki za około 200zł z również Ali :)
-
Pierwsze co bym sprawdził, to własnie programowanie go Blaterem.
Jeśli to nie jest 'specjalny przypadek', to zaprogramujesz go bez problemu.
Natomiast jeśli to się nie uda, to następną kwestią, która pojawia się w kontekście opornych układów jest kwestia zablokowania układu tylko do odczytu (przez zablokowanie jtag).
Wcześniej w tym wątku KWF podał jak sobie z tym radzić:
https://www.speccy.pl/forum/index.php?topic=7522.msg107347#msg107347
Jeśli natomiast to okaże się 'specjalny przypadek', to pewnie jest w jakiś sposób uszkodzony i trzeba by mieć "profesjonalny" programator, który powie więcej o tym układzie.
-
No właśnie nie wiem, czy to jakiś przypadek zablokowania, czy układ jest uszkodzony.
Najpierw chciałbym uzyskać info, czy da się go zaprogramować analogicznie jak ATF1508 programatorem BusPirate i tym samym wsadem xsvf.
Jeśli powinno się dać, to próbowałem już wgrywać ten wsad zarówno normalnie, jak i z podłączonym 12V przez rezystor 1k do nogi 84. Nie idzie.
Próbowałem też wgrywać wsad ATF1508AS-erase też z podłączonym +12V i bez.
Skłaniam się ku temu, że ten układ jest uszkodzony, ale może ktoś mi podpowie, którym z posiadanych przeze mnie programatorów (i z jakim odpowiadającym softem) mogę jeszcze spróbować. Mam tylko pliki SVF
i XSVF.
Z prób, które jeszcze przeprowadziłem na szybko, to chyba ATMISP 7.3 odpada, bo wymaga oryginalnego kabelka ATDH1150USB.
Zainstalowałem jeszcze Quartusa II 13.1 ale on wymaga plików sof, pof, jam, jbc, ekp, jic (nie mam) i nie wiem jakiego programatora.
-
wczesniej musiałem przekonwertować plik svf na xsvf
Hej,
Podrzuć ten plik xsvf, zobaczę, czy da się go wepchnąć do EPM7128 bezpośrednio.
-
Wrzucam oba - z układem ATF1508AS działa poprawnie - sprawdzone na kilku sztukach.
-
SVF jest plikiem wyjściowym z softu Atmela/Microchipa do układów ATF15xx, wiec raczej marne szanse, że Altera/Intel je przełknie. To że EPM7xxx i ATF1500 są funkcjonalnie zamienne, nie oznacza, że programuje je się tak samo.
I tak swoją drogą, jest już niezły OFFTOP, bo Twoje problemy z CPLD dotyczą sprzętu do Amigi, a nie ZX Maxa, więc wydzieliłem osobny wątek.
-
Ok, rozumiem, dzięki za wydzielenie.
Pytanie mam przy okazji w takim razie - czy posty są moderowane? Próbowałem dziś dwukrotnie wrzucić post o Leningradzie 3 i po wciśnięciu "Wyślij" post znikł i nigdzie go nie ma :)
Z SVF pewnie jest tak jak piszesz, ale jak jest z XSVF? Ominęła mnie ta cała era CPLD/FPGA niestety :(
A podpytuję, bo widzę, że są tu fachowcy, którzy mieli dużą styczność z układami obu producentów.
-
Próbowałem dziś dwukrotnie wrzucić post o Leningradzie 3 i po wciśnięciu "Wyślij" post znikł i nigdzie go nie ma :)
W niektórych działach są moderowane.
Czy posty miały zdjęcia?
-
Miały
-
Jeśli chodzi o programowanie CPLD to wsad z EPM daje się konwertować pod ATF, jest nawet gdzieś do tego oficjalny konwerter plików na stronie ATMEL'a, jednak w drugą stronę chyba będzie problem, przynajmniej ja nigdy się z czymś podobnym nie spotkałem.
A wynikało to z faktu że ATMEL chciał aby jego układy były zamienne programowo (na poziomie zsyntezowanego wsadu) ze starszymi odpowiednikami Altera, natomiast w drugą stronę nie było politycznego uzasadnienia do napisania takiego programu, no chyba że jest coś nieoficjalnego.
Posty czasem znikają jeśli zdjęcia są zbyt duże lub jest ich zbyt wiele - taka uroda serwera chyba że już się coś zmieniło w tej kwestii. ;)
Czasem pojawiają się po dłuższej chwili z obrazkami lub bez, ale jeśli tak się nie dzieje i utknie lub się przywiesi to już admin musi taki post wykastrować z obrazków.
Generalnie trzeba optymalizować zamieszczane fotki i nie wkładać wszystkich na raz tylko najlepiej stopniowo po jednej w każdej sesji edycji posta.
Przynajmniej ja miałem kiedyś takie doświadczenia, ale może lepiej wypowie się ktoś bardziej kompetentny w temacie forum.
-
Jeśli chodzi o programowanie CPLD to wsad z EPM daje się konwertować pod ATF, są nawet gdzieś do tego konwertery plików na stronie ATMEL'a jednak w drugą stronę chyba będzie problem, przynajmniej ja nigdy się z czymś podobnym nie spotkałem.
Jest dokładnie tak, jak piszesz.
Jest jednak inne rozwiązanie - wepchnięcie wsadu oprogramowaniem generycznym, w przypadku błędu blokującego - nawet z wyłączeniem ID check.
Tyle, że im bardziej skomplikowana struktura układu, tym mniejsze prawdopodobieństwo sukcesu.
Postaram się przetestować ten wariant, jak znajdę chwilę wieczorem.
Posty czasem znikają jeśli zdjęcia są zbyt duże lub jest ich zbyt wiele - tak uroda serwera chyba że już się coś zmieniło w tej kwestii. ;)
Czasem pojawiają się po dłuższej chwili z obrazkami lub bez, ale jeśli tak się nie dzieje i utknie lub się przywiesi to już admin musi taki post wykastrować z obrazków.
Stąd moje pytanie o zdjęcia. Ale to chyba nie ten przypadek, chyba, że w międzyczasie admin/mod wyciął wadliwe posty, bo zaburzają one wyświetlanie list postów. Jest to jakiś błąd w którymś skrypcie forum, najwyraźniej zbyt mało istotny, więc nigdy nie skorygowany.
Generalnie trzeba optymalizować zamieszczane fotki i nie wkładać wszystkich na raz tylko najlepiej stopniowo po jednej w każdej sesji edycji posta.
Przynajmniej ja miałem kiedyś takie doświadczenia, ale może lepiej wypowie się ktoś bardziej kompetentny w temacie forum.
Jak widać, size matters ;)
Niby rozmiar do 2 MB, ale lepiej się przyciąć/skompresować nieco niżej.
-
Ok, udało mi się zamieścić post - zmniejszyłem fotkę i dodawałem po jednym pliku.
W temacie tych układów EPM - myślałem, że da się je zaprogramować identycznie jak ATF.
Spojrzałem teraz w to, co jest dostępne w pliku z githuba - oprócz plików wynikowych SVF i JED, dostępne są jeszcze pliki QPF, czyli wygląda na to, że może uda się to samodzielnie skompilować pod Quartusem?
To jeszcze pytanie: którym programatorem? :P
-
Skoro są pliki do Quartusa, to wystarczy skompilować (do POF) i wrzucić od razu szeregowym programatorem do Alter (USB Blaster).
O ile EPM nie ma zablokowanych pinów JTAG.
-
Blasterem nigdy mi się nie udało zaprogramować
EPM'a ATF'a, zwykle robię to na Labtool-48 tylko że nie mam akurat adaptera do EPM7128 i bawiłem się tylko mniejszymi Altera'mi 32 i 64 makrocele.
Ups, pomyliłem programatory...
Pewien kolega z forum akurat taki adapter PLCC posiada i deklarował już wcześniej testy wieczorem. ;D
Generalnie jeśli EPM nie są poblokowane (te z Ali zwykle są na 60%) to ogarniesz to Blasterem.
-
ATF-y ogarniam, teraz chodzi mi właśnie o zaprogramowanie EPM :)
Wywalam Quartusa 13.1, bo nie obsługuje MAX7000 i pobieram 13.0
-
Linki do Quartusa i biblioteki do MAX7000 znajdziesz na samym dole tu: https://www.speccy.pl/wiki/index.php?title=ZX_Max_48
-
Podrzuć ten plik xsvf, zobaczę, czy da się go wepchnąć do EPM7128 bezpośrednio.
Eh, to jest TQFP100. Nie pokrosowałem jeszcze adaptera pod tę obudowę, bo nie miałem zapotrzebowania na te układy. Tak więc nie mam jak sprawdzić "na skróty".
-
No to tak:
Zainstalowałem Quartusa II 13.0 SP1 , zrobiłem "Otwórz projekt" i tam otworzyłem plik A500_8mb_ide.qpf
W menu Assignments -> Device wybrałem Family: MAX7000S i Specific device: EPM7128STC100-15 bo taki mam scalak.
Potem Processing -> Start compilation. Mam sukces with 20 warnings:
Warning (20028): Parallel compilation is not licensed and has been disabled
Warning (10036): Verilog HDL or VHDL warning at A500_ide.v(52): object "ASDLY2" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at A500_ide.v(53): object "DTACK_INT" assigned a value but never read
Warning (13024): Output pins are stuck at VCC or GND
Warning (13410): Pin "test[0]" is stuck at GND
Warning (13410): Pin "test[1]" is stuck at VCC
Warning (13410): Pin "test[2]" is stuck at GND
Warning (13410): Pin "test[3]" is stuck at VCC
Warning (13410): Pin "test[4]" is stuck at GND
Warning (13410): Pin "test[5]" is stuck at VCC
Warning (21074): Design contains 4 input pin(s) that do not drive logic
Warning (15610): No output dependent on input pin "IORDY"
Warning (15610): No output dependent on input pin "IPLn[0]"
Warning (15610): No output dependent on input pin "IPLn[1]"
Warning (15610): No output dependent on input pin "IPLn[2]"
Warning (20028): Parallel compilation is not licensed and has been disabled
Warning (20028): Parallel compilation is not licensed and has been disabled
Warning (335095): TimeQuest Timing Analyzer does not support the analysis of latches as synchronous elements for the currently selected device family.
Potem odpalam Tools -> Programmer
Używam tego taniego małego USB Blastera, sterowniki zainstalowałem z katalogu C:\altera\13.0sp1\quartus\drivers
Programator jest wykrywany, układ EPM7128 jest wykrywany w łańcuchu. Scalak się poprawnie programuje i weryfikuje natomiast urządzenie nie działa. W ogóle jego zachowanie jest inne, bo diody LED świecą zaraz po włączeniu zasilania, a powinno być tak, że zapalają się dopiero, jak Amiga zainicjalizuje procesor.
Podejrzewam, że te warningi są istotne ale ze mnie żaden programista :)
Czy powinienem tam ustawić jeszcze jakieś parametry przed kompilacją?
-
Warning typu 15610 wygląda na poważny problem z projektem. Jakieś piny dyndają w nicości zamiast wchodzić w skład równań. Przeanalizuj źródło pod tym kątem albo pisz do autora.
-
W definicjach jest:
// unused spare pins
input [2:0] IPLn
Więc one mają być nieużywane.
Poszukałem też pod kątem IORDY i rzeczywiście jest zadeklarowane, ale nigdzie nie jest używane.
To chyba nie to, stawiam na jakąś optymalizację.
-
Nie widzę opcji edycji, więc post pod postem.
Problem jest prawdopodobnie w tym, że nigdzie w tym projekcie nie są zadeklarowane połączenia pin-sygnał i Fitter robi to "po swojemu".
Zrobiłem połączenia w Pin Planner zgodnie ze schematem, skompilowałem i wgrałem. Teraz diody LED nie świecą, czyli tak jak w oryginale, zanim zainicjalizuje się procek. Niestety interfejs nie działa - diody nie zapalają się, Amiga nie śmiga.
Załączam plik do Fittera, może ktoś bardziej oblatany w Quartusie wie o co kaman.
-
Na githubie jest przypisanie pinów oraz innych parametrów dla kompilatora w pliku: A500_8mb_ide.qsf
-
Jak zrobiłem "Otwórz projekt" to Quartus nie "wciągnął" tego pliku automatycznie.
W takim razie zaraz jeszcze powalczę z tym plikiem jak go podłączyć/zaimportować.