Programowanie FPGA przez JTAG-a

Hej,

Zanim zapytam - ma ktoś może "LG jig" do programowania control board w plazmach LG i mógłby mi za jakąś rozsądną cenę wrzucić soft, jakbym wysłał mu płytkę i soft? Jeśli tak, to zignorujcie drugie pytanie.

Drugie pytanie - wybaczcie, jeśli jest naiwne, ale nigdy nie miałem do czynienia ani z JTAG-iem ani z FPGA, wiem tylko teoretycznie, jak oba działają.

Siedzi na tej płytce FPGA Altery (EP1C3T100C8). Czy ta bestia w ogóle ma jakiegoś flasha? Ma sticker z czymś, co wygląda jak nazwa softu, więc pewnie ma (chociaż do tej pory czytałem, że FPGA wymaga załadowania zawartości pamięci przy każdym starcie, ale może jednak nie każde). Jeśli ma flasha, to może można zaprogramować go JTAG-iem?

I tu dochodzimy do kolejnej kwestii. Jaki programator? Mam trzy typy:

- jakiś najprostszy level shifter na LPT (np. lart)

- jakiś bazujący na FT2232 (np. Bus Blaster)

- klon USB Blastera altery

Ten trzeci jest tu:

formatting link
... i na Allegro za 3x tyle.

Najważniejsza kwestia - który z tych programatorów najlepiej sprawdzi się pod Linuksem? Czy usb blastera można używać tylko z tym Alterowym softem (Quartus)? Ogólnie jaki soft do programowania polecacie? LPT mam tylko pod Linuksem, USB mogę mieć i pod Linuksem i pod Windowsem (XP, Win7), Linux jest preferowany, ale jeśli nie ma pod Linuksa żadnego sensownego softu, to po prostu wezmę z pracy laptopa z Windowsem...

Pozdr.

Reply to
Gof
Loading thread data ...

W znacznej większości, a na pewno EP1C3T100C8, nie mają wewnętrznego flasha i są ładowane obrazem przy każdym uruchomieniu. Zwykle obok powinien gdzieś być szeregowy flash z napisem EPCSXX zawierający taki obraz . XX pewnie gdzieś w okolicach 1 lub 4. Jeżeli nie ma takiego czy innego flasha w okolicy to może też być ładowany z procesora lub podobnego.

Jeżeli obraz znajduje się w EPCS to jest on ładowany do flasha JTAG-iem a z fasha do fpga przy każdym restarcie zasilania.

Klon altery widziany jako USB-Blaster poprawnie działa z Windows i Linuks. Altera daje daje darmowe środowisko pod windows i linux.

Adam

Reply to
Adam Górski

też mnie to interesuje, możesz podać namiar na jakiś pdf dla jakiegoś przykładowego scalaka FPGA?

Reply to
platformowe głupki

Nie.

Adam

Reply to
Adam Górski

ok rozumie, dopisuję cie do mojej lisy chamów obok zemły mandziejewicza i donka69bronka...

Reply to
platformowe głupki

Można użyć dowolnego programatora działającego z OpenOCD. Po stworzeniu programem promgen pliku .mcs trzeba z niego uzyskać plik svf (impactem z odpowiednimi parametrami) i ładować do PROM plik SVF komendami OpenOCD. Trwa to ze trzy razy wolniej niż przy pomocy nowoczesnego interfejsu współpracującego a Impactem, ale działa. Jakby ktoś chciał popróbować to mogę dać przykład gotowych skryptów bashowych czy batowych.

Reply to
Mario

Bingo. EPCS1. Pewnie naklejka jest na FPGA, bo większe fizycznie :)

Ok, jak to teraz wygląda... podpinam się pod EPCS1 (DATA, ASDI, nCS, DCLK), czy JTAG-iem pod FPGA i to FPGA wrzuca to, co podsunę przez JTAG-a, do swojego EPCS1?

Jeżeli ta pierwsza opcja, to jak unieszkodliwić FPGA, żeby zrobił sobie tri-state na tych pinach i nie przeszkadzał programatorowi?

Przeczytam datasheeta wieczorem.

Dzięki, pozdr.

Reply to
Gof

Jednak nigdzie się nie podpinam, bo okazuje się, że to nie tego FPGA będę musiał przeprogramować... więc temat zmienia się z "potrzebuję" na "ciekawi mnie" :)

W sumie jest nawet gorzej, bo będę musiał zaprogramować równoległego flasha (M29W320DT, na szczęście TSOP48 a nie TFBGA63), podpiętego pod jakiś dedykowany procesor (LGPCMv12H23). Zastanawiam się, jak to zrobić bez wylutowywania flasha z płytki i robienia programatora specjalnie pod to... wpadło mi do głowy przelutowanie tego flasha do jakiegoś pendrive'a, który ma kompatybilnego flasha.

Jak to jest z tym JTAG-iem - jeżeli jest procesor, który ma zewnętrzną pamięć, to da się tą pamięć zaprogramować podpinając się pod JTAG-owe piny procesora? Tak ogólnie, w ogólnym przypadku (boję się, że jest tam jakiś closed-source bootloader do tego).

Szkoda, że równoległych flashy nie da się programować też szeregowo...

Reply to
Gof

Fri, 1 May 2015 12:07:05 +0000 (UTC) snipped-for-privacy@somewhere.invalid (Gof) napisał:

Chyba żartujesz. Myślisz że jak tak przelutujesz to pendrive:

- w ogóle zadziała

- że jak coś na niego zapiszesz np. za pomocą dd, to w niezmienionej postaci wyląduje to we flashu?

Przecież kontroler flasha organizuje dane w tejże pamięci po swojemu. Rozmieszcza dane w różny sposób (niekoniecznie w takiej kolejności jak otrzymał). Robi różne kopie zapasowe bloków, sumy kontrolne itp. Rzeczywista zawartość pamięci flash nie jest identyczna z tym co pokazuje on komputerowi jako obraz nośnika.

Jeżeli wstawisz mu czystą kostkę to w najlepszym przypadku ją sformatuje po swojemu, jeżeli wstawisz taką która ma jakąś inną zawartość (binarkę do czegoś), to najpewniej zgłupieje i w ogóle odmówi współpracy.

No chyba że masz dokumentację do tego kontrolera i zmusisz go żeby zrobił dokładnie to co chcesz - w przeciwnym przypadku szanse na powodzenie operacji są bliskie zeru.

Reply to
__Maciek

Fri, 1 May 2015 12:07:05 +0000 (UTC) snipped-for-privacy@somewhere.invalid (Gof) napisał:

Zależy od procesora ,ale pewnie producent urządzenia jakoś sobie tam ułatwił programowanie i nie programuje flasha równolegle.

Podobno takie istnieją, typów niestety nie znam, trzaby pogrzebać na stronach producentów pamięci.

Reply to
__Maciek

Masz rację, to było nieprzemyślane.

Generalnie zrobić programator nie byłoby trudno. Kwestia tego, że chcę poświęcić temu jak najmniej energii, bo w ogóle nie wiadomo, czy to soft jest problemem, czy coś innego...

To nadal ten sam problem z plazmą:

formatting link

Reply to
Gof

Jest tam 12-pinowy port, opisany jako FPGA_Download. Podejrzewam (ale nie wiem na 100%), że to tam się podłącza programator - także dla pamięci flash, a nie tylko konfiguratora FPGA.

Pomyślałem, że spróbuję znaleźć tam TDI, TDO, TCK, TMS, TRST FPGA oraz Vpp pamięci flash, mierząc po prostu przejście między konkretnymi pinami scalaków i pinami na tym gnieździe.

Zastanawiam się tylko, czy na takich płytkach wszystkie JTAG-enabled układy są połączone razem (w łańcuch JTAG), czy nie... bo jeśli są, to można znaleźć sygnały na FPGA i założyć, że w łańcuchu jest też ten zamknięty procesor, i że przez niego możnaby zaprogramować flasha... jeżeli to w ogóle możliwe (nie mam na razie pojęcia, jak działa JTAG, poza warstwą fizyczną).

Reply to
Gof

Aby zaprogramować flash od fpga EPCS1 podłączasz JTAG do ukladu fpga i programujesz w trybie "pośrednim", czyli poprzez fpga. Programator ładuje sobie wtedy specjalny obraz fpga poprzez który ma dostęp do flasha.

Jeżeli masz gotowy plik do zaprogramowania flasha to programator sam będzie wiedział co z nim zrobić.

Adam

Reply to
Adam Górski

A kto tak powiedział ? Flash M29W320DT to normalny NOR flash. Z szyną adresową i danych. Żeby zaprogramować go szeregowo można wykorzystać np jtag od procesora o ile jest on dostępny. Dawno temu programowałem tak boot loader w podobnym flashu poprzez interface debuggera od Motorola Coldfire ( MCF5407 ).

Zasadniczo trzeba uzyskać dostęp do szyny systemowej. Czy poprzez jtag czy inny interface do programowania. Schemat tez potrzebny bo trzeba wiedzieć jak flash jest podłączony.

Nie jest to proste ale da się na pewno.

Najprostsze jest wylutowanie i zaprogramowanie.

Adam

Reply to
Adam Górski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.