Forum: FPGA, VHDL & Co. PIF_2 MachXO2-7000HC antwortet nicht


von Hans T. (hans_t)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich hab mir ein Pif_2 FPGA Board für den Raspberry Pi von Bugblat 
zugelegt, auf dem Board ist ein Lattice MachXO2-7000HC FPGA verbaut.
Seit dem letzten Programmieren des FPGA reagiert dieser nicht mehr, man 
kann ihn nicht mehr programmieren, über MOSI kommt nichts mehr zurück.

Auch mit einem zweiten frisch aufgesetzten RPi 2 funktioniert es nicht.
Inzwischen hab ich ein zweites Pif_2 Board erhalten, das funktioniert 
jetzt auch nicht mehr...

Leider meldet sich der Support von Bugblat nicht, deshalb frage ich hier 
ob jemand eine Idee hat was mit dem FPGA los ist und ob man ihn irgend 
wie reseten kann bzw. den internen FLASH löschen/überschreiben kann.

Hilfreich wäre auch ein Tipp wie ich messen kann, ob der FPGA überhaupt 
noch lebt.

LG

RPi output:
pi@raspberrypi:~ $ sudo python pif2/software/pifload.py ~/test_impl1.jed
====================hello==========================
Configuration file is /home/pi/test_impl1.jed
Using pif library version: 'libpif,Sep 15 2016,13:35:35'

XO2 Device ID: 012bd043  - device is an XO2-7000HC
XO2 Trace ID : 00.44.32.98_52.2C.44.0A
XO2 usercode from Flash:  00.00.00.00
XO2 usercode from SRAM :  50.49.46.32
JEDEC file is /home/pi/test_impl1.jed
starting to read JEDEC file
first configuration data line: 31
. . . . . .
last configuration data line: 1593
1563 frames
finished reading JEDEC file
erasing configuration flash ...  erased
programming configuration flash ...  . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . programmed
transferring ...
configuration finished.

==================== bye ==========================

RPi output jetzt:
pi@raspberrypi:~ $ sudo python pif2/software/pifload.py ~/test_impl1.jed
====================hello==========================
Configuration file is /home/pi/test_impl1.jed
Using pif library version: 'libpif,Sep 15 2016,13:35:35'

XO2 Device ID: 00000000  - unrecognised ID!
XO2 Trace ID : 00.00.00.00_00.00.00.00
XO2 usercode from Flash:  00.00.00.00
XO2 usercode from SRAM :  00.00.00.00
JEDEC file is /home/pi/test_impl1.jed
starting to read JEDEC file
JEDEC file does not match FPGA

  FPGA is XO2-256HC

  JEDEC identifies as "NOTE DEVICE NAME:        LCMXO2-7000HC-4TQFP144*"

==================== bye ==========================

von Johann Klammer (Gast)


Lesenswert?

Ist das einer von denen, wo du die jtag lines deaktivieren kannst?

von Pat A. (patamat)


Lesenswert?

Johann Klammer schrieb:
> Ist das einer von denen, wo du die jtag lines deaktivieren kannst?

Ja, beim MachXO2 ist das möglich.

von Lattice User (Gast)


Lesenswert?

Pat A. schrieb:
> Johann Klammer schrieb:
>> Ist das einer von denen, wo du die jtag lines deaktivieren kannst?
>
> Ja, beim MachXO2 ist das möglich.

Jein, wenn man JTAG deaktiviert, wird ein anderes Pin zum dedizierten 
JTAG Enable umfunktioniert. Wenn man das beim Beschalten der JTAG Pins 
berücksichtigt, ist es möglich JTAG trotzdem zu benutzen.

@Hans

Offensichtlich wird der MachXO2 über SPI programmiert. Wenn du die SPI 
Pins in deinem Design anders belegst oder den SPI Block deaktiviert 
hast, hast du dich ausgesperrt.

Gibt jedoch ein paar andere Möglichkeitem, aber um dir beim Reaktivieren 
helfen zu können, braucht es die Pinbelegung und vor allem die 
Configurationseinstellungen  (CONFIG Contstraint in der .lpf)

von Hans T. (hans_t)


Angehängte Dateien:

Lesenswert?

@Lattice User (Gast)
Oh nein die test_impl1.lpf die im Projekt eingebunden ist, ist die 
falsche:

BLOCK RESETPATHS;
BLOCK ASYNCPATHS;

enthält nur diese beiden Zeilen.
pif2.lpf wäre korrekt gewesen.

Der Schaltplan ist in der pif2_sch-1.pdf zu finden.

- Kann ich den Port zum Programmieren von außen irgendwie verändern bzw. 
wieder auf SPI umstellen?

- Welcher Port könnte jetzt aktiv sein, JTAG?

LG

von Lattice User (Gast)


Lesenswert?

Hans T. schrieb:

> - Kann ich den Port zum Programmieren von außen irgendwie verändern bzw.
> wieder auf SPI umstellen?

Nein.

>
> - Welcher Port könnte jetzt aktiv sein, JTAG?
>
> LG

Ein leerer MachXO2 hat alle 3 Ports aktiv, JTAG,I2C und SPI.

Die Defaulteinstellungen für SYSCONFIG deaktiviert den Slave SPI Port.
Du hast also noch JTAG und I2C.

Soweit ich weiss ist der Raspi I2C nicht kompatibel(*), bleibt dir also 
nur ein externer Adapter JTAG oder I2C Adapter. (Bitbang I2C vom Raspi 
ginge auch)
1
SYSCONFIG JTAG_PORT=DISABLE  SDM_PORT=PROGRAMN  I2C_PORT=DISABLE  SLAVE_SPI_PORT=ENABLE  MCCLK_FREQ=10.23 ;

Bugblat hat wohl den PROGRAMN Pin zum Recovery vorgesehen, aber der SDM 
Port wird bei der default SYSCONFIG auch abgeschaltet.

PROGRAMN (falls enabled) auf Masse unterbindet das Laden des XO2 für den 
Fall dass man im eigenem Design SPI verhunzt.

(*) Bug im Raspi bei CLK-Handshake

von Hans T. (hans_t)


Lesenswert?

@Lattice User (Gast)

PROGRAMn auf Low halten hat geholfen, konnte jetzt den FPGA neu 
Programmieren, danke!

LG

von Marius (Gast)


Lesenswert?

Hallo zusammen,

ich habe das gleiche Problem wie Hans T. bekomme auch die gleiche 
Fehlermeldung und habe wohl auch das SPI verhunzt. Leider bin ich recht 
neu in der Materie und mich würde gerne interessieren wie genau der 
PROGRAMN auf Low gehalten wurde. War das im Code oder via Kabel am Pi?

von Hans. T (Gast)


Lesenswert?

Hallo Marius,

im Prinzip musst du nur PROGRAMN mit irgendeinem GND auf dem Board 
verbinden.

MfG Hans T.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.