Falls "das Bauteil welches davon booten soll" ein Microcontroller ist:
Flash-Routine per JTAG ins RAM des Controllers laden, und das Flash mit Hilfe des Controllers beschreiben. Das sollte die per JTAG zu übertragende Datenmenge auf wenig mehr als die Nutzdaten reduzieren.
Kannst Du per JTAG code ins RAM laden und starten, um das zu beschleunigen?
Ich schaffe hier 15KB/s mit openocd - IXP420, JTAG per bitbang am PC-Parallelport, und Blockmodus - d.h. der Flash-Code läuft im RAM des Targets.
Mir ist bisher noch kein Flash mit JTAG untergekommen.
- SPI auf Testpunkte legen und in der Produktion kontaktieren - Minimalst-Bootloader auf die bisherige Art flashen, den starten und den Rest per JTAG, seriell o.ä. an den Flashcode auf dem Target übergeben
cu Michael
--
Some people have no respect of age unless it is bottled.
Wieso programmierst du dann nicht das Bauteil, was JTAG hat, zuerst, um dann damit schnell den Speicher zu programmieren? Ich habe erst letzte Woche ein paar Scripts geschrieben, mit denen das für ein FPGA automatisiert wird: Zunächst wird in einem FPGA direkt ins SRAM ein Programm per JTAG geladen (was von Altera zur Verfügung gestellt wird), was ein serielles Flash anspricht. Anschließend wird über den JTAG-Anschluss das Flash über den FPGA schnell beschrieben. Die Scripte musste ich schreiben, weil das zwar alles irgendwie mit den GUIs von Altera geht, aber nicht geeignet für die Produktion ist (gab noch interessante Probleme im Zusammenhang mit Nios). Zum Glück sind alle Programme auch per Kommandozeile aufrufbar.
Da kannst du dann preiswerte Flash Speicher nehmen. Digikey ist für Bauteilerecherche meist recht gut geeignet:
formatting link
Kommt z.B. für ein paar Euro sowas raus:
formatting link
17 Sekunden für komplettes Löschen ist bei der Größe nicht schlecht. Habe jetzt nicht nachgesehen, wie schnell das Schreiben ist, aber schneller als
15 Minuten denke ich wird es schon sein.
--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
ich suche einen schnellen SPI-Flash der sich zusätzlich per JTAG (IEEE 1149.1) programmieren lässt. Das Bauteil welches davon booten soll hat zwar selber JTAG und kann Boundary-Scan aber sowas hab ich in einem anderen Projekt mit einem
16Bit-Parallel-Flash machen müssen und dort benötigen wir für 170kByte Boot-Loader knapp 15 Minuten. Das ist zwar bestimmt noch verbesserungsfähig aber wenn man sich überlegt das für jeden Einzelschritt (neue Adresse setzen, Busy-Bit auslesen u.ä.) auf dem Speicherbus etwa 800Bit (Boundary-Scan-Zellen plus Kommando-Overhead) seriell über den JTAG-Pfad müssen ist das für ein SPI-Flash mit 16MBit (also etwa 50 millionen Boundary-Scan-Zyklen a 800Bit) sicher der falsche Weg.
Der SPI-Part sollte einigermaßen zügig (min. 25MHz, besser 50MHz) und JEDEC kompatibel sein.
Google bring mir nur unmengen Programmieradapter aber nicht das was ich suche.
Gibt es das was ich suche überhaupt? Andere Ideen zum In-System-Programmieren eines so großen SPI-Flash?
Wir laden auch unsere DSPs per JTAG, starten in deren RAM das Programm, und flashen dann binnen weniger Sekunden die firmware hinein. Trotz des zusätzlichen Sicherheits-Aufwands, den wir veranstalten, geht das alles recht fix.
Außer die Boot-Flashs für SRAM-basierte FPGAs, welche aber kein SPI haben, kenne ich leider auch keine. Hab gehofft es gibt da eine Kombination aus beidem.
Klar doch, darüber kann man bequem einige MHz schieben, da wird ja nichts geschaltet in der Zeit, lediglich über die Drain-Source Strecken geleitet. Die Dinger gibt es auch entsprechend niederohmig... Oft sind die höherohmigen aber besser, weil die eine kleinere Gatekapazität einbringen.
Die 15 Minuten klingen nicht nach optimaler Konfiguration.
Vielleicht kannst Du die bestehende Hardware ja wie folgt beschleunigen:
Programmiere einen Flash-Loader, der eine Datei vom PC empfaengt und in das Flash reinschreibt. Optimiere den Loader so, dass er moeglichst klein ist. Jetzt kannst Du mit deinem JTAG Prommer den Loader in das Flash schreiben, was wesentlich weniger als 15 Minuten dauern sollte (je kleiner der Loader, desto schneller). Danach bootest Du den Prozessor und schickst ihm den eigentlich gewuenschten Inhalt des Flash Chips, der dann prompt programmiert wird.
Konkrete Zahlen sind natuerlich reine Spekulation, Du solltest aber deutlich unter eine Minute kommen.
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.