Forum: Mikrocontroller und Digitale Elektronik Flash Programmierzeiten vergleichen


von Manuel R. (manu123)


Lesenswert?

Hallo Microcontroller community,

Ich versuche gerade die Programmierzeiten unserer µC zu omptimieren.
Speziell geht es dabei um die Programmierung des Flash Speichers.
Ich möchte die Programmierung über serielle Schnittstelle (UART) und die 
Programmierung über ein JTAG / Boundary scan interface miteinander 
vergleichen.
Der momenten in unseren Produkten eingesetzte Prozessor ist der 
M30626FJPGP. Bei diesem Prozessor möchte ich nun die Dauer berechnen die 
es benötigt, 2MB Daten in den Flash Speicher zu schreiben. Ich bin mit 
jetzt jedoch unsicher, ob ich die typische Geschwindigkeit pro 
geschriebenes Wort aus dem Datasheet 
http://documentation.renesas.com/doc/products/mpumcu/rej03b0001_16c62pds.pdf
oder die Baudrate der UART nehme, über welche die Programmierung erfolgt 
(9600 Baud schätz ich mal, steht nichts genaueres drin..).
Weiterhin stellt sich mir die Frage, ob ich den Flash eines 
Microcontrollers auch unabhängig von dessen maximaler Frequenz 
programmieren kann wenn ich den Flash über die Leitungen mit einem 
Boundary Scan fähigem Device verbinde welches eine höhere Taktfrequenz 
zulässt.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt, bin noch 
ein relativer Neuling auf dem Gebiet :-)

Beste Grüße Manuel

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Manuel Reisser schrieb:
> jetzt jedoch unsicher, ob ich die typische Geschwindigkeit pro
> geschriebenes Wort aus dem Datasheet
> http://documentation.renesas.com/doc/products/mpum...
> oder die Baudrate der UART nehme,

Beides, plus Firmwarelaufzeit, um eine Flashpage über einen RAM-Puffer 
zu aktualisieren.

von Manuel R. (manu123)


Lesenswert?

Hallo Herr Ballhause,

Vielen Dank für die Information.
Wie man einen Flash über BS programmiert weiß ich mitlerweile,
außerdem wie man die ungefähr benötigte Zeit berechnet..

Bei der normalen Programmierung über UART tu ich mich da noch etwas 
schwer..

Hätten sie vielleicht ein Beispiel wie man solch eine Programmierzeit 
berechnet?

Vielen Dank & Beste Grüße
Manuel

von Manuel R. (manu123)


Lesenswert?

Guten Morgen,

kann mir vielleicht Jemand weiterhelfen?

Optimal wäre es wenn Jemand ein Beispiel posten könnte wie man die 
Programmierzeit berechnet (irgendeinen Flash Speicher, vielleicht den 
aus dem Datenblatt oder schon berechnete Flash Speicher)

Danke!
Gruß Manuel

von Achim M. (minifloat)


Lesenswert?

1. Die Zeit, 2MB über den UART zum Prozessor-RAM zu schaufeln

t_1 = Datenmenge/Bitrate

2. Die Zeit, die benötigten Flashpages zu beschreiben

Datenblattangaben:
a) Schreibzeit einer Flashpage nachsehen
b) Größe einer Flashpage nachsehen

n = Datenmenge/Flashpage-Größe

t_2 = n * Schreibzeit

(2A. Die Zeit, 2MB über den UART zum PC zu schaufeln für einen Verify)

t_2a = ... wie 1 ...

t_ges_min = t_1 + t_2 (+ t_2a)

3. ca. +10% Protokoll-Overhead, ca. +10% Wartezeiten durch 
Synchronisationsmechanismen PC<->Prozesssor

t_ges = ca. 1,21 * t_ges_min

mfg mf

von Manuel R. (manu123)


Angehängte Dateien:

Lesenswert?

Hallo MF,

Danke, das hilft mir schon einmal weiter.
Ich hab hier mal den Ausschnitt aus dem Datenblatt.
Hier steht nichts für die Zeit die benötigt wird um einen Block zu 
beschreiben.

Die Zeit t1 aus deinem Beispiel ist ja die Zeit die ich benötige um in 
den Puffer des Flash Speichers zu schreiben.
Ist die pro Wort Zeit nun die die der Baustein benötigt um die Daten vom 
Puffer aus in die Blöcke zu schreiben?

Wenn mein Baustein zunächst unbeschrieben ist brauch ich die 
Löschvorgänge für die Blöcke nicht zu berücksichtigen, oder?

Danke

Gruß Manuel

von Willi (Gast)


Lesenswert?

Manuel Reisser schrieb:
> Hier steht nichts für die Zeit die benötigt wird um einen Block zu
> beschreiben.

block_size / word_size * Word Programm Time.

Bei 9600 Baud, brauchst Du Dir über die Programmierdauer keine Gdanken 
zu machen. Ein Prozessor/Stunde ist machbar.

von Manuel R. (manu123)


Lesenswert?

Hi Willi,

Danke für deine Hilfe.
Ja, das ist ja das Gute, bei uns wird über RS232 programmiert, deshalb 
ist hier ein Optimierungspotential definitiv gegeben.
Ich würde nur gerne anhand von Berechnungsbeispielen zeigen, wie groß 
diese Optimierungen ausfällen können, bei Verwendung von JTAG, 
Programmierung über BS und andere Techniken die mir vielleicht 
kurzfristig noch einfallen :-)

von pic (Gast)


Lesenswert?

Du könntest nachsehen, ob das Flash fertig programmiert ist.

Check the FMR00 bit in the FMR0 register to see if auto programming has 
finished. The FMR00 bit is
“0” during auto programming and set to “1” when auto programming is 
completed.
Check the FMR06 bit in the FMR0 register after auto programming has 
finished, and the result of auto
programming can be known. (Refer to “Full Status Check.”

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.