SPI Flash Programmer

Gast #5481197
Lesenswert?

Hallo,

ich habe jetzt den Fall, dass in einer Schaltung die ich ca. 100x bauen 
werde (Soundmodule für die Modellbahn für die Vereinsanlage) ein SPI 
Flash enthalten ist (AT45DB321). Der Prozessor ist ein ATtiny1614. Ich 
habe keine Möglichkeit, den SPI Flash über den ATtiny1614 mit den 2MB 
Soundfile zu beschreiben. Würde mir auch zum lange dauern bei der Menge.

Daher meine Frage: Gibt es einen Programmer für sowas, ähnlich wie die 
ISP Programmer für die Atmels, wo man den SPI Chip einfach In-System 
beschreiben kann? Ich habe die ISP-Schnittstelle über ein Tag-COnnect 
Cabel rausgeführt.

Ich habe sowas gefunden:
https://de.aliexpress.com/item/CH341A-Series-24-EEPROM-Writer-25-SPI-routing-BIOS-LCD-Flash-USB-Programmer/32666369868.html?spm=a2g0x.search0104.3.9.281acb35SQZrCR&ws_ab_test=searchweb0_0,searchweb201602_2_10320_10152_10321_10151_10065_10344_10068_10342_10547_10343_10322_10340_10548_10341_10696_10084_10083_10618_10304_10307_10820_10821_10302_10846_10843_10059_100031_10319_445_10103_524_10624_10623_10622_10621_10620,searchweb201603_30,ppcSwitch_5&algo_expid=2eb30265-a8d0-404f-9e61-93efe4c8a8c2-1&algo_pvid=2eb30265-a8d0-404f-9e61-93efe4c8a8c2&priceBeautifyAB=0


Es ist weiter nichts beschrieben. Ein Kabel vom Tag könnte man ja an 
sowas dran basteln. Hat jmd. sowas schon mal genutzt?
Gast #5481213
Lesenswert?

Mr. AVR schrieb im Beitrag #5481197:

> ich habe jetzt den Fall, dass in einer Schaltung die ich ca. 100x bauen
> werde (Soundmodule für die Modellbahn für die Vereinsanlage) ein SPI
> Flash enthalten ist (AT45DB321). Der Prozessor ist ein ATtiny1614. Ich
> habe keine Möglichkeit, den SPI Flash über den ATtiny1614 mit den 2MB
> Soundfile zu beschreiben. Würde mir auch zum lange dauern bei der
> Menge.

Das ist doch Schwachsinn. Wenn er es schnell genug lesen kann, um es 
abzuspielen, kann er es auch mindestens genauso schnell beschreiben. 
Da man beim Lesen aber üblicherweise nicht an die Grenzen geht, wird es 
es sogar mindestens etwas schneller beschreiben können, wahrscheinlich 
sogar sehr viel schneller. Theoretisch...

Praktisch wird eher die begrenzte Schreibgeschwindigkeit für das 
Ziel-Flash ganz allgemein die Grenze darstellen und die kannst du auch 
mit irgendeinem anderen Programmer nicht überwinden!

Dein Problem ist wohl nur: das Schreiben war nicht in der Wichsvorlage 
enthalten, die du jetzt "dein" Programm nennst...

> Daher meine Frage: Gibt es einen Programmer für sowas, ähnlich wie die
> ISP Programmer für die Atmels, wo man den SPI Chip einfach In-System
> beschreiben kann?

Wahrscheinlich schon.

> Ich habe die ISP-Schnittstelle über ein Tag-COnnect
> Cabel rausgeführt.

Du meinst: die SPI-Schnittstelle? Wenn ja: das allein reicht nicht. Wenn 
du den SPI-Flash mit irgendwas anderem programmieren willst, mußt du 
natürlich für diese Zeit den ATtiny im Reset-Zustand halten, damit der 
externe Programmer den Bus kontrolliert und nicht dein ATtiny dazwischen 
funkt.
Gast #5481222
Lesenswert?

c-hater schrieb:
> Praktisch wird eher die begrenzte Schreibgeschwindigkeit für das
> Ziel-Flash ganz allgemein die Grenze darstellen und die kannst du auch
> mit irgendeinem anderen Programmer nicht überwinden!
>
> Dein Problem ist wohl nur: das Schreiben war nicht in der Wichsvorlage
> enthalten, die du jetzt "dein" Programm nennst...

Was soll das du Pisskind? Ich habe alles selber geschrieben, in C, du 
Opfer hast nicht mal verstanden was ich will. Es geht darum, eine 
Audiodatei die ich erstellt habe, vom PC auf den Flash zu bekommen. Im 
direkten Weg. Auf dem Tiny ist kein Platz mehr für einen Bootloader und 
der hat keine Verbindung zur Außenwelt, außer DCC Informationen, das 
würde locker 15-20 min dauern das über das Gleis zu senden. Außerdem 
müsste ich mir einen Programmer bauen etc.. Abgesehen davon das der voll 
ist der Tiny.


Ich will den Chip in system flashen mit meiner Audiodatei. Ansonsten 
brauchst du H*Sohn mir nichts erzählen was wie im Reset gehalten werden 
muss, das weiß ich selber.
Gast #5481234
Lesenswert?

pegel schrieb:
> Über die freundlichen Worte sehe ich jetzt einmal hinweg.
>
> Hast du die AT45DB321 schon?
> Wenn nicht, kannst du die auch bereits programmiert ordern.
>
> http://www.segor.de/#Q=AT45DB321E-SHF&M=1

Danke für die vernünftigen Antworten. Was soll sowas Internetrambo mäßig 
immer in Forum. Kopf gegen die Wand schlagen würde solchen Leuten besser 
tuen als die Schnauze auf zu machen @c-hater.


Back to topic: Ich habe diese schon, ja. Außerdem sind es 
unterschiedliche Files für Dampflok, Diesel, E-Lok. Ggf. würde ich mir 
auch noch ein paar Anlagensounds etc.. erstellen, sodass ich gerne 
flexibel wäre und die Datei updaten/ersetzen kann. Mal schauen was 
unsere Bahner für Originalsounds einfangen können, dann könnte ich auch 
spezifische Dateien machen.

Es wäre schon gut, es über Tag-Connect über den PC ähnlich einem 
Mikrocontroller machen zu können.
#5481236
Lesenswert?

Die einfachste Variante wäre, das Flash extern wie den AVR auch per SPI 
zu beschreiben. Ein AVR ISP-Programmer wäre dazu von der Hardware her in 
der Lage (ISP ist auch nichts anderes als SPI), aber seine Software ist 
das Problem. Da musst Du eben ein FTDI MPSSE-Kabel 
(http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_C232HM_MPSSE_CABLE.PDF) 
oder etwas ähnliches nehmen.

Der Prozessor muss am Besten im Reset stehen, damit die IO-Pins 
hochohmig sind und Du sie extern ansteuern kannst.

fchk
Gast #5481242
Lesenswert?

Dann ist der Programmer von oben doch schon geeignet.
Die Software dazu hatte ich schon mal gefunden und den link hier im 
Forum angegeben.
Du musst eben nur wie schon geschrieben den ATTiny im Reset halten beim 
flashen.
Gast #5481243
Lesenswert?

Wie wäre es mit selbst machen, also im wesentlichen wohl einen ATmega 
dafür programmieren? Hinreichende Kenntnisse scheinen ja vorhanden, und 
bevor man längere Zeit sucht, sich mit unsäglichen "Ratgebern" 
herumärgert und dann endlich etwas hoffentlich Funktionierendes 
beschafft?
#5481250
Lesenswert?

@ Mr. AVR (Gast)

>direkten Weg. Auf dem Tiny ist kein Platz mehr für einen Bootloader und
>der hat keine Verbindung zur Außenwelt, außer DCC Informationen, das
>würde locker 15-20 min dauern das über das Gleis zu senden.

Falscher Ansatz. Du brauchst eine separate Firmware + ggf. Soft-UART. 
Dann mußt du nur ein paar Pins kontaktieren und kannst die Daten in den 
Flash brennen.

Danach wird die normale Firmware in den AVR gebrannt.
Gast #5481258
Lesenswert?

S. Landolt schrieb:
> Wie wäre es mit selbst machen, also im wesentlichen wohl einen
> ATmega
> dafür programmieren? Hinreichende Kenntnisse scheinen ja vorhanden, und
> bevor man längere Zeit sucht, sich mit unsäglichen "Ratgebern"
> herumärgert und dann endlich etwas hoffentlich Funktionierendes
> beschafft?

Ja ich glaube bald darauf läuft es wohl hinaus. Ich dachte aber einfach 
ich habe so ein 2€ Gerät und bin fertig. Ich habe zwar bereits einen 
Programmer mit dem meine Vereinskollegen die Software, also Firmware, 
meiner Decoder updaten können, auch PC Terminal dafür. Das ist quasi ein 
ISP-Programmer wenn man so will. Damit könnte ich das erweitern.
Gast #5481262
Lesenswert?

Frank K. schrieb:
> PS: Gerade vergessen: Dein AVR ist ja ein Microchip AVR, der per
> UPDI
> programmiert wird. Daher bitte das "wie den AVR auch" streichen.
>
> Du bräuchstest ein 10-poliges TagConnect Kabel.
>
> GND
> VTarget
> AVR Reset
> SPI CS
> SPI SCK
> SPI MISO
> SPI MOSI
>
> sind schon 7 Signale.
>
> fchk

Ich habe nur das 6 polige. Das sollte reichen. Ich habe:

VCC, GND, MOSI, MISO, SCK, RESET. CS ist immer aktiv bei dem Teil, habe 
nur einen SPI Verbraucher in der Schaltung. Der Tiny erkennt das 
automatisch, wenn man versucht den Chip umzuprogrammieren und schaltet 
SPI dann auf Z.
Gast #5481271
Lesenswert?

pegel schrieb:
> Dann ist der Programmer von oben doch schon geeignet.
> Die Software dazu hatte ich schon mal gefunden und den link hier im
> Forum angegeben.
> Du musst eben nur wie schon geschrieben den ATTiny im Reset halten beim
> flashen.

Ich habe die Software auch gefunden, dort kann man aber nur die Atmel 
25-Flash Serie auswählen, nicht die 45. Ich weiß nicht was das für einen 
Unterschied macht, ich denke aber mal das Protokoll oder die Bänke 
werden anderes sein. Wahrscheinlich bekomme ich dann die größe auch 
nicht entsprechend geladen. Ich kenne die 25-Serie auch nicht.
#5481284
Lesenswert?

Mr. AVR schrieb im Beitrag #5481271:
> pegel schrieb:
> Dann ist der Programmer von oben doch schon geeignet.
> Die Software dazu hatte ich schon mal gefunden und den link hier im
> Forum angegeben.
> Du musst eben nur wie schon geschrieben den ATTiny im Reset halten beim
> flashen.
>
> Ich habe die Software auch gefunden, dort kann man aber nur die Atmel
> 25-Flash Serie auswählen, nicht die 45. Ich weiß nicht was das für einen
> Unterschied macht, ich denke aber mal das Protokoll oder die Bänke
> werden anderes sein. Wahrscheinlich bekomme ich dann die größe auch
> nicht entsprechend geladen. Ich kenne die 25-Serie auch nicht.

Naja der AT45 ist ein Dataflash. Hat ein paar Vorteile bei der 
Programmierung, aber irgendwie überwiegend Nachteile. Das bekloppteste 
finde ich die 264 Byte Page Größe und Adressieren dann in 512 Byte 
Schritten...da kriegt man doch ne Meise. Kann man zwar umstellen, aber 
muss man bei jedem machen und danach Power Cycle.
Gast #5481291
Lesenswert?

> eines der alten, einfachen Protokolle ala X-Modem

Ich würde es ohne Protokoll machen, einfach die 
Übertragungsgeschwindigkeit dem Flashspeicher entsprechend anpassen.

> nicht mal fix in 2h getan

Zwei Stunden wohl nicht, aber ein halber Tag sollte doch reichen, oder?
Gast #5481293
Lesenswert?

Christian R. schrieb:
> Mr. AVR schrieb im Beitrag #5481271:
>> pegel schrieb:
>> Dann ist der Programmer von oben doch schon geeignet.
>> Die Software dazu hatte ich schon mal gefunden und den link hier im
>> Forum angegeben.
>> Du musst eben nur wie schon geschrieben den ATTiny im Reset halten beim
>> flashen.
>>
>> Ich habe die Software auch gefunden, dort kann man aber nur die Atmel
>> 25-Flash Serie auswählen, nicht die 45. Ich weiß nicht was das für einen
>> Unterschied macht, ich denke aber mal das Protokoll oder die Bänke
>> werden anderes sein. Wahrscheinlich bekomme ich dann die größe auch
>> nicht entsprechend geladen. Ich kenne die 25-Serie auch nicht.
>
> Naja der AT45 ist ein Dataflash. Hat ein paar Vorteile bei der
> Programmierung, aber irgendwie überwiegend Nachteile. Das bekloppteste
> finde ich die 264 Byte Page Größe und Adressieren dann in 512 Byte
> Schritten...da kriegt man doch ne Meise. Kann man zwar umstellen, aber
> muss man bei jedem machen und danach Power Cycle.

Jop, ich weiß. Das fand ich auch schwachsinnig. Ich habe die schon mal 
eingesetzt damals in einem Teil mit ESP. Da konnte ich den Inhalt vom PC 
über WLAN updaten. Das hat aber auch ewig gedauert (4MB ca. 20 min). Als 
Prozessor hatte ich damals einen Xmega genommen der den ESP und das 
Flash steuerte. Aber weil ich da noch ordentlich viele von habe, dachte 
ich daran die zu nutzen.

Bei dem AT25DF321A (wäre wohl Speichertechnisch wie AT45DB321) der ist 
aber leider nicht 5V tolerant an den Eingängen.
#5481322
Lesenswert?

Hallo,

ich habe das vor Jahren mal mit einem Mega88 und AT45DB041 per X-Modem 
gemacht, war auch eine Art Soundplayer.

Vorher spezielle Firmware draufschreiben und den Flash mit dem Tiny zu 
programmieren wäre auch für mich durchaus ein Ansatz.

Wenn ich das jetzt und hier machen müßte und etliche/öfter zu 
Programmieren hätte, würde ich vorhandenes nutzen und ein 
"Programmiergerät basteln:
Wemos Di mini mit ESP8266 drauf. Warum? Teile vorhanden, 
Entwicklungsumgebung vorhanden, SPI-Clock je nach geneuem Typ seines 
Flashs bis 40MHz nutzbar, Seriell sollte ohne Probleme mit 1MBaud laufen 
(921kBaud nutze ich hier ständig). CPU und Ram gut ausreichend um die 
Software "einfach so" zusammenzuschreiben.
Problem im Moment: es scheint keine SPI-Flash-Library zu geben, die die 
AT45DBxxx unterstützt, da müßte ich wohl in meinen alten AVR-ASM-Sourcen 
Anleihe tätigen XModem scheint es als Lib zu geben.

Weiter gesponnen: ESP mit SD-Card dran und von dort die Flashs 
beschrieben.
Kleines Display und Tasten dran, um das File auszuwählen und zu flashen.

Im Moment würde ich wohl sogar einen ESP32 nehmen, spiele ich ohnehin 
grade mit rum und es gibt ausreichend I/O.
Könnte ich temporär glatt auf mein "Webradio" flashen, Touch-Display ist 
da, SD-Card ist da, nur die Sachen für den AT45Db321 müßte ich 
zusammmenschreiben.

Für mich wäre der Hauptvorteil: kein externer Rechner zum Flashen nötig, 
nur die Files einmal auf eine SD-Karte. Wäre jetzt einmalig etwas mehr 
Aufwand, dann aber eben wirklich nur Kabel zwischen "Programmer" und dem 
Tiny-Modul anstecken und flashen.

Gruß aus Berlin
Michael
#5481464
Lesenswert?

Hatte vor kurzem ein ähnliches Problem..
Gelöst mit :
Dangerous Prototypes BusPirate und dem Programm flashrom..

Testpunkte mit Pogopins anfahren oder einen Stecker vorsehen..
Den Attiny am besten mit nem Jumper oder auch über den BusPirate im 
Reset halten...
#5481480
Lesenswert?

Wenn du Zugriff auf ein Xilinx USB Programmer Cable hast, kannst du auch 
Impact dafür nehmen: 
https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/pim_p_configuring_spi.htm
Wird aber in den neueren Versionen nicht mehr unterstützt.

Mich wundert es dass es da nix schon mal für die FTDI MPSSE gibt. Ich 
könnt das auch ab und an gut gebrauchen.
Werd ich wohl mal selber schreiben müssen.
Gast #5603295
Lesenswert?

Hallo, wir sind gerade in der Firma dran, so etwas in unseren 
Programmieradaptern einzubauen, da der Bootloader über RS232 für die 
hohen Stückzahlen einfach viel zu langsam ist.

Kommt für dich wahrscheinlich zu spät aber ich bin über ewige googeleien 
auch hier gelandet...

Wir sind am Ende bei diesem schicken Teil hier gelandet:
https://www.embeddedcomputers.net/products/FlashcatUSB/

Vielleicht hilft es jemandem :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren