RTV forum PL | NewsGroups PL

Jak za pomocą JTAG-a programować FPGA Altery EP1C3T100C8 na Linuksie?

Programowanie FPGA przez JTAG-a

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak za pomocą JTAG-a programować FPGA Altery EP1C3T100C8 na Linuksie?

Gof
Guest

Wed Apr 29, 2015 12:25 pm   



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:

http://www.ebay.com/itm/altera-Mini-Usb-Blaster-Cable-For-CPLD-FPGA-NIOS-JTAG-Altera-Programmer-/251902484150?pt=LH_DefaultDomain_0&hash=item3aa68edeb6

.... 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.

--
"qui hic minxerit aut cacaverit, habeat deos superos et inferos iratos"
http://www.chmurka.net/

Adam Górski
Guest

Wed Apr 29, 2015 2:13 pm   



On 2015-04-29 12:25, Gof wrote:
Quote:
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?

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.

Quote:

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

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


Adam

platformowe głupki
Guest

Wed Apr 29, 2015 2:38 pm   



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

Adam Górski
Guest

Wed Apr 29, 2015 2:44 pm   



On 2015-04-29 16:38, platformowe głupki wrote:
Quote:
też mnie to interesuje, możesz podać namiar na jakiś pdf dla jakiegoś
przykładowego scalaka FPGA?

Nie.

Adam

platformowe głupki
Guest

Wed Apr 29, 2015 2:50 pm   



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

Mario
Guest

Wed Apr 29, 2015 3:23 pm   



W dniu 2015-04-29 o 16:13, Adam Górski pisze:
Quote:
On 2015-04-29 12:25, Gof wrote:
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?

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.


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

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

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.


--
pozdrawiam
MD

Gof
Guest

Thu Apr 30, 2015 4:38 pm   



Adam Górski <gorskia@wp.pl> wrote:

Quote:
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.

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.

--
"qui hic minxerit aut cacaverit, habeat deos superos et inferos iratos"
http://www.chmurka.net/

Gof
Guest

Fri May 01, 2015 2:07 pm   



Gof <gof@somewhere.invalid> wrote:

Quote:
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?

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...

--
"qui hic minxerit aut cacaverit, habeat deos superos et inferos iratos"
http://www.chmurka.net/

__Maciek
Guest

Fri May 01, 2015 7:54 pm   



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

Quote:
to... wpadło mi do głowy przelutowanie tego flasha do jakiegoś pendrive'a,
który ma kompatybilnego flasha.

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.

__Maciek
Guest

Fri May 01, 2015 7:59 pm   



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

Quote:
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?

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


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

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

Gof
Guest

Sat May 02, 2015 4:05 pm   



__Maciek <i80c586@cyberspace.org> wrote:

Quote:
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?

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ą:

http://www.badcaps.net/forum/showthread.php?p=549588

--
"qui hic minxerit aut cacaverit, habeat deos superos et inferos iratos"
http://www.chmurka.net/

Gof
Guest

Sat May 02, 2015 4:16 pm   



__Maciek <i80c586@cyberspace.org> wrote:

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

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ą).

--
"qui hic minxerit aut cacaverit, habeat deos superos et inferos iratos"
http://www.chmurka.net/

Adam Górski
Guest

Mon May 04, 2015 9:27 am   



Quote:
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.

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.


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

Adam Górski
Guest

Mon May 04, 2015 9:40 am   



Quote:
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?

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...


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

elektroda NewsGroups Forum Index - Elektronika Polska - Jak za pomocą JTAG-a programować FPGA Altery EP1C3T100C8 na Linuksie?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map