Flash Programmierzeiten vergleichen

OP #2758906
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
OP #2759804
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
#2765888
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
OP #2766035
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
Angehängte Dateien:
OP #2766214
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 :-)
Gast #2766244
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.”

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