logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[CPLD Xilinx] Błąd iMPACT 585 przy programowaniu CPLD Xilinx XC9572XL, ZL11PRG UnISProg

marcinburz 21 Mar 2007 09:29 8010 20
REKLAMA
  • #1 3701806
    marcinburz
    Poziom 11  
    Posty: 11
    Dzien dobry,

    Mam problem z zaprogramowaniem lub tez odczytem ID Device ukladu CPLD firmy Xilinx.

    Programator ZL11PRG UnISProg, po podlaczeniu do komputera i zasileniu napieciem 3.3v, program IMPACT w wersji 6.1i wykrywa programator i podaje komunikat Cable Connection Established. Programator pobiera jednak od 70-200 mA w zaleznosci o ustawienia przelacznika wyboru trybu pracy, wg. instrukcji uklad powinien pobierac 20 mA. Przy programowaniu ukladu CPLD Xillinx XC9572XL pojawia sie komunikat bledu iMPACT 585. A dokladniej:

    "ERROR:iMPACT:585 - A problem may exist in the hardware configuration.
    Check to see that the cable, scan chain, and power connections are
    intact, that the specified scan chain configuration matches the actual
    hardware, and that the power supply is adequate and delivering the
    correct voltage."

    Podlaczenie do programatora ZL11PRG (wg. instrukcji producenta), tryb programatora Xilinx. Napiecie ukladu oraz programatora 3,3v z zasilacza
    laboratoryjnego. Podlaczenie pinow układu XC9572 wg. dokumentacji Xilinxa.

    Programator wlozony bezposrednio do portu komputera, probowalem na roznych ustawieniach portu (EPP ECP) bez zmian.

    Programator wyslalem do producenta, dostalem odpowiedz, ze jest sprawny, nie dostalem odpowiedzi dlaczego pobiera duzo za duzy prad. Przeslalem zdjecia plytki testowej, dostalem odpowiedz, ze przyczyna bledu moze byc brak kondensatorow blokujacych na plytce testowej, co moze prowadzic do wzbudzania zasilacza lub przetwornicy programatora? Zasilacz jest laboratoryjny wiec sie raczej nie wzbudza, zas w instrukcji do
    programatora nie ma informacji, ze trzeba urzywac jakis kondesatorow blokujacych.

    Byc moze uklad jest uszkodzony, czy mozna to jakos zweryfikowac?

    Polaczenia na plytce testowej zweryfikowane pare razy przez dwie rozne osoby.

    Przesylam linki do plytki:

    http://img264.imageshack.us/my.php?image=cpld1wn1.jpg
    http://img86.imageshack.us/my.php?image=cpld2rs2.jpg


    ps. do tej pory budowalem proste uklady na ATtiny i Atmega i wszystko ruszalo zawsze bez problemow.

    pozdrawiam
    Marcin Burzynski
  • REKLAMA
  • #2 3705703
    tony_tg
    Poziom 16  
    Posty: 140
    Pomógł: 13
    Ocena: 3
    Czesc,

    Na zalaczonym obrazku podpinasz sie do pinow JTAG czyli TCK, TMS, TDI, TDO. Pytanie czy w trybie Xilinx tego "programatora" koncowka mowi przez "jtag" czy przez ISP czyli inaczej mowiac, czy to cudo programuje CPLD czy FPGA i kto podaje zegar? Mowiac, ze pobiera duzo wiecej pradu swiadczy, ze masz problem z polaczeniem kabelkow. Powiedziales tez, ze IMPACT zwraca, ze connection with cable established ale oni to zwracaja nawet jak arbuza podlaczysz do nich. A mozesz przeczytac IDCODE z tego Twojego ukladu? Gdzies w opcjach IMPACT powinno byc scan hardchain albo cos takiego i powinno Ci zwrocic jaki jest IDCODE ukladu ktory jest podlaczony. Jak zwraca prawidlowy IDCODE to problem jest gdzies indziej ale jak nic nie zwraca to problem jest albo w samym "programatorze" albo tym jak go konfigurujesz. Zobacz czy nie ma tam jakiegos "generic" mode ktory by uzywal normalnego interfejsu JTAG a nie bawil sie w programowanie przez ISP ktore jest inne dla Altery i inne dla Xilinx'a. Jak sie podlaczysz poprawnie to upewnij sie, ze bit file ktory generujesz nie zawiera cclk i programujesz przez JTAG bez zewnetrznego zegara. (bo tak masz kabelki podlaczone )

    Pozdrawiam,
    tony_tg

    PS. Zapomnialem zapytac, co to sa kondensatory blokujace?
    No i co to jest przetwornica programatora?
  • #3 3705790
    griva
    Poziom 17  
    Posty: 203
    Pomógł: 12
    Ocena: 1
    tony_tg napisał:

    PS. Zapomnialem zapytac, co to sa kondensatory blokujace?


    chodzi chyba o kond. odsprzegajace ;-)

    dokladnie na prawie takiej samej plytce odpalilem 9572xl-tq100 wiec da sie bez kondensatorow, u mnie problem byl z tym ze mialem zwarcia miedzy pinami bo sie tam cos zablakalo podczas lutowania...

    sprawdz jeszcze raz kazdy jeden pin i jego polaczenie, pin-pad, i kazdy pin zasilania i masy musi byc podlaczony tam gdzie powinien, ma dzialac - jak nie tzn. ze uklad stracil zycie ;-)
  • REKLAMA
  • #4 3705872
    marcinburz
    Poziom 11  
    Posty: 11
    Dziekuje za sugestie, pady i piny juz sprawdzalem, ale zrobie to jeszcze raz i sprobuje programowac na innym komputerze.

    Jezeli chodzi o programator to w instrukcji jest napisane tak:

    Programator ZL11PRG emuluje 4 popularne programatory ISP:
    ...
    DLC5 Programmer (Paraller Cable III) firym Xilinx (przelacznik w pozycji Xilinx) W tym trybie mozna programowac i konfigurowac uklady CLPD (xc9500, xc9500xl, xc9500xv, ColdRunner XPLA3) oraz FPGA (Spartan XL, Spartan II, Virtex II)
    ...

    Na nastepnej stronie jest iinformacja, ze niezaleznie od wybranego trybu pracy, w przypdaku programatora jako interfejsu JTAG, sygnaly na zlacze wyjsciowe sa wyprowadzone ja na rysunku 2.
    ...

    Mysle, ze programator jest sprawny, przynajmniej tak twierdzi producent.


    Mam jeszcze jeden nie wyjasniony problem, ktory byc moze wynik z zupelnego braku mojej wiedzy na temat CPLD. Sprawdzajac piny GND zauwazylem, ze nie wszystkie sa ze soba wewnetrznie polaczone, czy tak powinno byc?

    Proba odczytu IDCODE zwraca ten sam blad iMPACT 585, sprawdze jeszcze z bitem cclk.

    dziekuje za odzew
    pozdrawiam
    Marcin Burzynski
  • #5 3706329
    zorg666
    Poziom 22  
    Posty: 556
    Pomógł: 30
    Ocena: 28
    Stosuje programator typu DLC-5 od zestawu unlooper.
    Cena to chyba 25 zł za wszystko.
    W ten sposób szybko sprawdzisz czy twój układ jest sprawny.
    Wg. informacji podanej przez ciebie to chyba uszkodzony jest twój programator.
  • #6 3720688
    marcinburz
    Poziom 11  
    Posty: 11
    Witam ponownie, programator wrocil juz od producenta, podlaczam do mojej plytki testowej, ten sam zasilacz, ten sam program, ten sam komputer i wszystko dziala, zadnych bledow. Jak pisalem na poczatku, programator pobieral 70-200 mA, po rozmowie telefonicznej dowiedzialem sie, ze na 99 procent jest uszkodzona przetwornica w programatorze. Nastepnie wysylam do producenta programator, ten twierdzi ze wszysko jest z nim OK, programator do mnie wraca i pobiera prad 20-40 mA, i dziala prawidlowo. Czary jakies?

    Dziekuje wszystkim za zainteresowanie i sugestie.

    pozdrawiam

    Marcin Burzynski
  • #7 3832391
    zienek
    Poziom 11  
    Posty: 38
    Ocena: 6
    Witam.

    Dołączę swoje żale do tego tematu, bo mam bardzo podobny problem. iMPACT ponoć powinien sam wykryć urządzenie, które jest podłączone do programatora. Mój programator to PLDCable II (analogiczny do Parallel Cable III )
    http://www.propox.com/products/t_121.html?lang=pl

    iMPACT ma puste okienko

    Klikam na Cable Auto Connect

    // *** BATCH CMD : setCable -port lpt1
    Connecting to cable (Parallel Port - LPT1).
    Checking cable driver.
    Driver windrvr6.sys version = 8.1.0.0. WinDriver v8.10 Jungo (c) 1997 - 2006 Build Date: Aug 15 2006 X86 32bit SYS 14:21:34, version = 810.
    LPT base address = 03BCh.
    ECP base address = FFFFFFFFh.
    Cable connection established.
    GUI --- Auto connect to cable...
    // *** BATCH CMD : setCable -port auto
    AutoDetecting cable. Please wait.
    PROGRESS_START - Starting Operation.
    Connecting to cable (Parallel Port - LPT1).
    Checking cable driver.
    Driver windrvr6.sys version = 8.1.0.0. WinDriver v8.10 Jungo (c) 1997 - 2006 Build Date: Aug 15 2006 X86 32bit SYS 14:21:34, version = 810.
    LPT base address = 03BCh.
    ECP base address = FFFFFFFFh.
    Cable connection established.
    PROGRESS_END - End Operation.
    Elapsed time = 0 sec.

    Stąd wynika, że z kablem raczej wszystko OK, chociaż nie wiem na bank.

    Następnie klikam na Initialize Chain.

    Attempting to identify devices in the boundary-scan chain configuration...// *** BATCH CMD : Identify
    PROGRESS_START - Starting Operation.
    Identifying chain contents ....done.
    ERROR:iMPACT:585 - A problem may exist in the hardware configuration.
    Check that the cable, scan chain, and power connections are intact,
    that the specified scan chain configuration matches the actual hardware, and
    that the power supply is adequate and delivering the correct voltage.
    Maximum TCK operating frequency for this device chain: 0.
    Validating chain...
    Boundary-scan chain validated successfully.
    PROGRESS_END - End Operation.
    Elapsed time = 0 sec.
    // *** BATCH CMD : identifyMPM

    tu już widać, że coś nie gra. Próbowałem dalej dodać Spartana z palca.
    Klikam Add Xilinx Device. Spartan, którego mam do dyspozycji to spartan3 xc3s200 serii vqg100egq0629
    Dlatego wybieram plik xc3s200_vq100.bsd

    INFO:iMPACT:1777 -
    Reading E:/Programy/Xilinx91i/spartan3/data/xc3s200_vq100.bsd...
    INFO:iMPACT:1777 -
    Reading E:/Programy/Xilinx91i/spartan3/data/xc3s200_vq100.bsd...
    INFO:iMPACT:501 - '1': Added Device XC3S200_VQ100 successfully.

    pojawia mi się symbol fpga. Klikam prawym przyciskiem i chcę zidentyfikować układ. Klikam prawym przyciskiem -> Get Device ID

    ----------------------------------------------------------------------
    // *** BATCH CMD : ReadIdcode -p 1
    ERROR:iMPACT:583 - '1': The idcode read from the device does not match the idcode in the bsdl File.
    INFO:iMPACT:1578 - '1': Device IDCODE : 00001111111111111111111111111111
    INFO:iMPACT:1579 - '1': Expected IDCODE: 00000001010000010100000010010011

    W tym miejscu zaczynam leżeć i kwiczeć z niemocy. Będę wdzięczny za wszelkie rady, jak przetestować programator i układ korzystając z ISE webpack lub innych programów.

    Dodam, że mam ISE Project Navigator 9.1i (application version J.30).
    Ściągam service pack 3. (Może to coś zmieni)
  • #8 3832927
    Batmanmen
    Poziom 15  
    Posty: 205
    Pomógł: 9
    Ocena: 4
    możliwe, że plik który stworzyłeś jest na inną kość. Musisz ustawić podczas tworzenia projektu tą samą kość jaką w praktyce używasz.
  • #9 3833163
    zienek
    Poziom 11  
    Posty: 38
    Ocena: 6
    Mam dokładnie taki układzik jak ten sprzedawany przez kamami http://kamami.pl/?id_prod=10512

    Przy tworzeniu projektu wybieram po kolei:
    spartana3
    xc3s200
    -5 (próbowałem -4 i teraz -5 ale efekt jest taki sam)
    vq100

    Program który próbuję wgrać jest tak prosty, że nie może zawierać błędu, pozatym nie w programie leży szkopuł, a w programowaniu.

    entity diodki2 is
    Port ( leds : out STD_LOGIC_VECTOR (7 downto 0));
    end diodki2;

    architecture Behavioral of diodki2 is

    begin

    leds <= "01010101";
    end Behavioral;

    Kość jest raczej na 100% właściwa. Będę wdzięczny za dalsze dywagacje i pomysły.
  • #10 3834211
    zienek
    Poziom 11  
    Posty: 38
    Ocena: 6
    Dodam, że ściągnięcie najnowszej łaty - update do wersji 9.1.03i nic nie pomogło.
  • REKLAMA
  • #11 3965878
    ronaldo_poznan
    Poziom 11  
    Posty: 36
    Ocena: 11
    Dołączam się do tematu...
    Kupiłem właśnie programator PLD Cable 2, płytkę MMFPGA12,
    Opisy tutaj:
    http://www.propox.com/products/t_121.html?lang=pl
    http://www.propox.com/products/t_154.html

    Niestety mam ten sam problem, co wyżej...
    Impact nie wykrywa mi wogóle elementów łańcucha JTag, a po dodaniu ręcznie kości Spartan 3 200 zwraca błąd w IDCode...
    Czy ktoś już rozwiązał ten problem?
  • #12 3967312
    Batmanmen
    Poziom 15  
    Posty: 205
    Pomógł: 9
    Ocena: 4
    a może źle zasiliłeś układ (1.2, 2.4, 3.2 V)? Wiemy wszyscy, że przekroczenie tych wartości pali układ. Może masz źle ustawione stany na pinach M0-2?

    No i też faktem jest, że stany logiczne na wejsciach Jtag w FPGA przystosowane są na 0-2.5 V a nie jak stany w LPT 0-5V. Prawdopodobnie twórca programatora przewidział to, ale ja bym dla pewności dał rezystory w szereg. O ile nie za późno...
  • REKLAMA
  • #13 3967387
    zienek
    Poziom 11  
    Posty: 38
    Ocena: 6
    Układ jest zasilany poprzez złącze USB - (standardowe zasilanie)

    Programator jest z Propox'a - jest ideowo bardzo podobnieskonstruowany do programatora ze stajni Xilinx'a z tą różnicą, że fizycznie ma nieco inne bufory i inaczej rozwiązaną linię TDO.

    Niby wszystko powinno działać.

    Próbowałem to programować za pomocą playxsvf501.exe według metody zamieszczonej na stronie http://darkfader.net/ds/games/ ale też nie działa.
    Player niby odpala i śle sygnały przez LPT, ale tylko wtedy kiedy programator jest odłączony. Podpięcie programatora skutkuje błędem TDO.
  • #14 3968835
    ronaldo_poznan
    Poziom 11  
    Posty: 36
    Ocena: 11
    Czesc!
    Wiec, zasilanie mam ok, bo podlaczylem uklad pod zasilacz komputerowy pod 3,3 V.
    Co do linii M0-M2... to też się nad nimi zastanawiam, bo... one wdg. schematu płytki są podpięte do masy, przez rezystory - czyli maja stan niski... ?
    Wdg dokumentacji spartanów wynika, że aby programować spartana JTAG'iem należy ustawić 101 na wejściach M2,M1,M0 a to co jest teraz odpowiada 000 - Master Serial Mode... No i faktycznie po podłączeniu zasilania układ programuje się samoczynnie z flasza (jakiś program testowy z Propoxa - migające diody)
    Zastanawiam, się czy nie podpiąć wejść M- odpowiednio do 3,3? Co by wymusić mu JTAG'a?
  • #15 3969423
    Batmanmen
    Poziom 15  
    Posty: 205
    Pomógł: 9
    Ocena: 4
    co do wartości napieć na wejściach M0-2 to są one pomiędzy 0-2.5V. Proponuje nie podłączać bezpośrednio z 3.3V. Aby programować z Jtag to stany na M0-2 muszą być odpowiednio 101.
  • #16 3973054
    ronaldo_poznan
    Poziom 11  
    Posty: 36
    Ocena: 11
    No hej!
    Więc... probowalem podpiac linie M0 i M2 do 2,5 V. Efekt: Spartan nie programuje sie z flasha... Czyli tak jak byc powinno, czeka na JTAG'a,
    niestety IMPACT zachowuje się w dalszym ciągu tak samo... 0 efektów.
    Generalnie, wydaje mi się, że stany na liniach M0-M2, nie robią różnicy w przypadku programowania układu z komputera.
    Sprawdzałem to na innej płycie (Digilent'a - Spartan 3e). Linie M0-M2 wymuszają tylko programowanie z kości flash, natomiast impactem mogę układ programować w każdej konfiguracji.
  • #17 4186888
    ronaldo_poznan
    Poziom 11  
    Posty: 36
    Ocena: 11
    Witam!
    Nie wiem, czy to komuś pomoże, ale udało mi się rozwiązać problem. Po kontakcie z firmą Propox, okazało się że winne „nie działania” programatora są diody zenera. Załączam, treść maila:
    „Proszę otworzyć programator i sprawdzić czy wlutowane są diody Zenera przy złączu JTAG. Kiedyś mieliśmy taki problem, że te diody w jakiś sposób przeszkadzały we współpracy z układami Spartan3 (ale tylko w obudowach TQFP144), jednak od dłuższego czasu sprzedajemy programatory bez tych diod.”
    Ponieważ koszt programatora to około 30 zł, nie opłacało mi się go wysyłać do serwisu, więc diody wylutowałem i działa bez zarzutu.
    Przy okazji, nie polecam używania przewodów-programatorów firmy Xilinx i Digilent ze złączem JTAG, do programowania układów firmy Propox, ponieważ pobierają one zasilanie ze złącza JTAG, i można przegrzać/uszkodzić stabilizator 2,5V na płytce z FPGA-Propox.
  • #18 6629708
    Konto nie istnieje
    Konto nie istnieje  
  • #19 6631697
    Konto nie istnieje
    Konto nie istnieje  
  • #20 6638562
    mj_2000
    Poziom 15  
    Posty: 155
    Pomógł: 17
    Ocena: 7
    Jak się kupuje w Propoxie to sie można otrzeć o magię... Polecam inne źródła.
  • #21 6638920
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

✨ Problem dotyczy błędu iMPACT 585 podczas programowania CPLD Xilinx XC9572XL za pomocą programatora ZL11PRG UnISProg w trybie Xilinx ISP/JTAG. Programator wykrywa połączenie, ale pobiera nadmierny prąd (70-200 mA zamiast 20 mA), a iMPACT zgłasza problem z konfiguracją sprzętową, sugerując sprawdzenie połączeń, łańcucha skanowania i zasilania. Użytkownik sprawdził piny i pady, podejrzewa uszkodzenie programatora lub błędną konfigurację. Po odesłaniu programatora do producenta i powrocie z naprawy problem ustąpił, prąd spadł do prawidłowego poziomu i programowanie działało poprawnie. W dyskusji poruszono kwestie poprawnego ustawienia linii M0-M2 dla trybu programowania JTAG (stan 101), napięć zasilania (3,3 V, 2,5 V), oraz wpływu diod Zenera w programatorze, które w niektórych modelach Propox powodowały problemy z komunikacją z układami Spartan3. Zalecano sprawdzenie połączeń, eliminację zwarć, oraz ewentualne usunięcie diod Zenera z linii JTAG. Wskazano także różnice konstrukcyjne między oryginalnymi programatorami Xilinx DLC5 a tańszymi zamiennikami Propox, które mogą wpływać na stabilność i wykrywalność łańcucha JTAG. Użytkownicy zgłaszali podobne problemy z programatorami PLDCable II i DLC5 Propox, często związane z brakiem wykrywania łańcucha JTAG lub błędami IDCode, co może wynikać z nieprawidłowego zasilania, ustawień pinów lub konstrukcji programatora. Aktualizacje oprogramowania iMPACT nie rozwiązywały problemu. Podsumowując, kluczowe jest prawidłowe zasilanie, poprawne połączenia JTAG, odpowiednia konfiguracja trybu programowania, oraz sprawny, dobrze skonstruowany programator bez zakłócających elementów (np. diod Zenera).
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA