Ich versuche herauszufinden, wie ich den Konfigurationsfile vom
Lattice-Programmer in den SPI-Flash bekomme.
In der Application Note TN1248 von Lattice ist zwar ausführlich
beschrieben, wie der Flash mit dem iCE 40 zusammenarbeitet, aber leider
nicht, wie ich die Daten vom Programmer in den Flash bekomme.
Schlicht gesagt - ich vermisse ein Schaltbildchen mit den Anschlüssen
für den Programmer.
Der Stromlauf vom Board "Blinky 40" hilft mir auch nicht weiter, da dort
vom USB-Prozessor programmiert wird.
Weiß jemand näheres? Hat das schon jemand gemacht?
@Bernd G. schrieb
> Ich versuche herauszufinden, wie ich den Konfigurationsfile vom> Lattice-Programmer in den SPI-Flash bekomme.
Hier ist das genau beschrieben mit dem Download
und den Lattice iCE40 Features.
SPI-FlashROM ATMEL Typ: M25P10 ..
Link:
http://www.latticesemi.com/documents/iCEcube2_userguide.pdf
Gruss Holger.
Viel Erfolg mit der neuen SiliconBlue IDE.
PS.
Ich sende noch die Schaltbilder dazu.
Hint_1:
Das Lattice iCE blinky Board wird mit dem neuen AT90USB2 u.
via SPI-FlashROM ATMEL Typ: M25P10 geladen.
AT90USB2--> USB-SSB PIN 14 --> Pin 49 _SSB (iCE40-SSB)
AT90USB2--> USB-SSB PIN 15 --> Pin 48 _S'CLK(iCE40-SSB)
#############################################################
Hint_2:
Title: MachXO2 Speed Seminar - Module 4: Wishbone Bus and Other Demos
https://www.youtube.com/watch?v=2KXQTb1-Rec&list=UUQGp6u4dMHW5iLchBWuOqTQ&index=2
##############################################################
Hallo Holger,
vielen Dank für deine Bemühungen. Den ersten Link hatte ich mir bis dato
noch nicht einerverleibt.
Wie der Programmer zu bedienen ist, konnte ich klären.
Ich habe mich missverständlich ausgedrückt - es geht mir um die von dir
angekündigten Schaltbilder.
Meine Aufgabe ist folgende: ich will den Schaltkreis in-circuit mit dem
Programmierkabel HW-USBN-2A von Lattice preogrammieren.
Die ersten Baugruppen sollen noch mit dem M25Pxx laufen, bis diese dann
beim Anwender stabil fu8nktionieren. Danach soll der NVCM des iCE 40
direkt programmiert werden.
Um das Ganze idiotensicher zu erledigen, habe ich nach der für beide
Anwendungsfälle geeigneten Konfigurationsschaltung gesucht. Ich bin
lediglich auf die Blinky 40-Schaltung gestoßen. Wenn ich bisher alles
richtig interpretiere, müsste ich bei Blinky die vier Widerstände zum
USB-Prozessor auslöten, die Stiftleiste einlöten und hätte dann den
Zugriff für die Programmierung über das Lattice-Kabel.
Eine Programmierung des NVCM ist hierbei offenbar nicht möglich, was bei
dem Board auch einleuchtend wäre, weil man ja hier nichts unbeabsichtigt
unbrauchbar machen möchte.
Was bei Xilinx in epischer Breite dargestellt wurde, ist bei Lattice
leider nur sehr kurz gefasst.
Vielen Dank - Bernd
Anhang:
HW_USB_2A_iCE.PNG
@Bernd G. schrieb
> Wenn ich bisher alles> richtig interpretiere, müsste ich bei Blinky die vier Widerstände zum> USB-Prozessor auslöten, die Stiftleiste einlöten und hätte dann den> Zugriff für die Programmierung über das HW-USBN-2A JTAG Lattice-Kabel.
Die Schaltung kann man sich aus dem Bild ableiten.
Nee ... so einfach ist das bei diesem Blinky Board nicht.
Du must zuerst mal Zugriff auf das JTAG PORT mit allen notwendigen
speziellen Pinnen für den iCE 40 Chip haben.
Siehe Bild
und vergleiche das mal mit dem MachXO2 JTAG Pinning.
z.B ispEN/PROG fällt das aus der Reihe.
TMS wird nicht verwendet, aber dafuer TRST/DONE ..exotisch..
#######################################################################
Verg.
iCEman65 Evaluation Kits
http://www.latticesemi.com/products/developmenthardware/developmentkits/iceman65evaluationkits.cfm
Tip:
Versuch mal auf deinem Board die Test-Pads zu finden, für das JTAG.
Die müssen in der Produktion das Board via JTAG Boundary scan testen.
IDDQ testing etc.
##################################################################
So hast du eine einmalige modifikation für ein OTP Device via
JTAG-->'Prog-Mode ->(NVCM).
Zitat:
www.siliconbluetech.com
However, iCE devices also have a
Non-Volatile Configuration Memory (NVCM) component.
When this (NVCM) memory is programmed, via eg. JTAG
the iCE devices will automatically load the
configuration from its own internal memory during power-up,
allowing the device to operate as a true
Application Specific Integrated Circuit (ASIC).
bingo> You made a OTP Device.
Viel Erfolg mit dem Project.
Gruss Holger.
> Du must zuerst mal Zugriff auf das JTAG PORT mit allen notwendigen> speziellen Pinnen für den iCE 40 Chip haben.
Das ist kein Problem: R6, R7, R8 und R10 auslöten, Stecker J11 auflöten
und Drähte anschließen (nach Tabelle 2 der UG48 - "Flywire Conversion
Reference").
Ein Vergleich mit dem MachXO2-Pinning greift hier nicht, da der iCe40
keinen JTAG-Port, sondern nur den SPI-Port hat.
Das mit dem NVCM ist mir auch klar - einmal programmiert und das war es
dann.
Das soll mich gegen den Chinesen und andere Neugierige absichern.
Was unklar ist: die Verschaltung SPI-Port des iCE40 mit dem Flash und
dem Programmieranschluss dergestalt, dass ich wahlweise den Flash oder
den NVCM programmieren kann. Ich habe das jetzt aus dem Blinky
herausgezeichnet und versuche es zu verstehen.
Deshalb meine Frage, ob das schon jemand gemacht hat, was leider
offenbar nicht der Fall ist.
> Sag mal Bernd, verstehst du das wirre Zeug von Holger? Ich bin damit als> geistig gesunder Mensch leider überfordert... :-/
Wieso wirr? Ist doch alles komplett klaro. In meinem richtigen Leben
mache ich viel schlimmere Sachen.
Anhang Bilder:
iCE_cfg_Prog_Ports_1.PNG
iCEProg_1.PNG
Nee .. Da sind zwei Ports (SPI) und hidden ("JTAG").
(In der Doku Rev.History steht JTAG Port Doku. removed).
bingo>
Für dein JTAG OTP Vorhaben ist dieser Link:
http://www.latticesemi.com/products/developmenthardware/desktopprogrammer.cfm
Zitat:
The iCEprog Desktop Programmer
##############################...
supports programming of the "OTP fuses" of
Lattice iCE products (NVCM programming).
bingo>
@Holger
Vielen Dank für deine Bemühungen, aber mir geht es wie gesagt darum:
> Was unklar ist: die Verschaltung SPI-Port des iCE40 mit dem Flash und> dem Programmieranschluss dergestalt, dass ich wahlweise den Flash oder> den NVCM programmieren kann.
Ein Stromlaufplan also, bestehend aus Stecker für Programmieranschluss,
iCE40 und Flash. Dazu sagt Lattice leider genau gar nichts.
Der Anschluss des modifizierten Blinky an den Programmer hat bisher
nichts gebracht, zumindest der Versuch den Flash zu lesen war erfolglos.
Die Geschichte mit dem iCE40 scheint noch sehr frisch zu sein.
Siliconblue hatte mit dem iCE 65 wohl auch einen Haufen
Anlaufschwierigkeiten.
Der Blinky40 lässt sich über die Lattice-PGM-Software ebenfalls nicht
ansprechen, nur über die Digilent-Adept-Version.
Fazit: ich lasse das mit dem iCE40 erst einmal sein und realisiere die
Geräte wie geplant mit dem MachXO2, was leider eine Kleinigkeit teuerer
ist.
Ich schätze, dass es noch ein Jahr braucht, ehe der iCE40 unfallfrei in
die Diamond-Entwicklungsumgebung implementiert ist und dann geht es
weiter.