Ich bin etwas "verwirrt": Ich habe hier insgesamt 12 Stck. STM32F030F4P6
und allesamt aus chinesischer Quelle.
Lt. Datenblatt sollen diese (F4P6) eine Flashspeichergröße von 16 kByte
besitzen.
Erst ist es mir nicht aufgefallen (weil man ja, wenn alles so
funktioniert wie es soll, die Bildschirmmeldungen nicht mehr wirklich
liest):
1
root@porteus:/home/mcu/stm32f030/ili9163_bmp# make flash
Bei jedem der 12 Controller wird dieses gemeldet: 32 kByte. Hm, dann
kommen natürlich die üblichen Verdachtsmomente (was mir im privaten
Hobbybereich eher egal ist):
- nicht neu
- nicht original
- Ausschuß aus FAB und umgelabelt
"Lustig" ist, dass ich auch die angegebenen 32 kByte beschreiben kann
(ich habe ein Bitmap Grafik im Flash gespeichert und das Programm dazu
das es anzeigt, insgesamt eine Größe von 30993 Bytes) ... und das
funktioniert.
Ist darüber etwas bekannt ?
Ist das bei anderen die diese Bausteine verwenden ebenso?
ST produziert den STM32F030xx4/6 von gleichen Chip. Was als xx4
gestempelt wird, hat den entweder ungetesteten Flash, oder Flash der
kaputt getestet wurde, oder vielleicht auch gut getesten Flash
Da bist du nicht der erste dem das auffaellt.
Also: keine Neuigkeit.
Das kann bei der naechsten Charge die ueber Fernost vertickt wird,
schon wieder anders aussehn...
... na ja, ich hab mich halt ans Datenblatt gehalten ... und bisher
Programme eben auf 16 kB getrimt.
Zweifler schrieb:> Du bist zu spät:> Beitrag "Re: Basteltip: STM32F103 DIP40 Board"
Das war mir bekannt, und ich hab einige, die sich als 64k und andere die
sich als 128k melden.
Uwe B. schrieb:> ST produziert den STM32F030xx4/6 von gleichen Chip. Was als xx4> gestempelt wird, hat den entweder ungetesteten Flash, oder Flash der> kaputt getestet wurde, oder vielleicht auch gut getesten Flash
Hmmmm... eine Fa. wie ST lässt Flash ungetestet ??? Als defekt
getesteter Flash würde doch normalerweise nicht verkauft werden !
Ich "kenne" das so, das getestet wird, was auf dem Die funktioniert und
als solche wird es verkauft. Wenn auch die "kleinste" Spezifikation
eines Chips nicht eingehalten werden kann, ist es Ausschuß (wurde das
nicht auch mal mit i80486 so gemacht, als DX und SX Variante ... die SX
Variante ohne Koprozessor, weil der auf einigen Die's nicht funktioniert
hat?)
Wie gesagt, dass eine unterschiedliche Speichergröße bei einem F030P4
auftaucht wußte ich noch nicht !
BTW: wo wird denn dem Chip die Speichergröße hinterlegt, die dann
ausgelesen werden kann, ist das nicht auch im Flash und ist diese Stelle
"beschreibbar" ?
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag
#5029016:
> Da bist du nicht der erste dem das auffaellt.>> Also: keine Neuigkeit.>> Das kann bei der naechsten Charge die ueber Fernost vertickt wird,> schon wieder anders aussehn...
Die Wahrscheinlichkeit, daß die Maske ausgetauscht wird, ist wohl nicht
so groß. Und selbst wenn: Die haben ja einen Grund, warum sie die Chips
so fertigen, wie sie es tun. Das wurde ja nun schon x-mal diskutiert.
Ralph S. schrieb:> Hmmmm... eine Fa. wie ST lässt Flash ungetestet ??? Als defekt> getesteter Flash würde doch normalerweise nicht verkauft werden !
Wo ist das Problem? Wenn die oberen 16 KB nicht funktionieren, und der
µC mit nur 16 KB Flash verkauft wird, ist doch noch alles innerhalb der
Specs. Nur weil der µC 32 KB hat, heißt das nicht, dass diese auch
funktionieren müssen.
Hi,
Zeigt das FLASH_SIZE Register die richtige Größe an, also die auch von
ST OK- getestet wurde?
Es dürfte nämlich mit normalen Mitteln unmöglich zu testen sein, ob der
evt. zusätzlich vorhandene Flash die Daten auch langfristig hält.
@Ralph:
Man müsste mit dem Teil im Backofen ein paar Rampen fahren und dann
schauen, ob die Daten noch ok sind ;)
BG, Tom
Edit: Gerade gesehen im andern Thread
(Beitrag "Re: Basteltip: STM32F103 DIP40 Board"): Das
FLASH_SIZE zeigt die garantierte Größe.
Ralph S. schrieb:> Zweifler schrieb:>> Du bist zu spät:>> Beitrag "Re: Basteltip: STM32F103 DIP40 Board">> Das war mir bekannt, und ich hab einige, die sich als 64k und andere die> sich als 128k melden.
Du hast nicht den von mir extra verlinkten Beitrag gelesen.
Deswegen Vollzitat:
Gerd E. schrieb:> Gerd E. schrieb:>>>> Ich hab gestern mal probiert, der>>>> STM32F030F4P6 lacht einen auch mit 32kB Flash an.> [...]>> Vielleicht kann man beim 030 ja jetzt nicht nur 32 kb Flash, sondern>> auch den Timer 2 benutzen?>> Ich habs grad mal ausprobiert:>> Der STM32F030F4P6 hat nicht nur 32kB Flash wie Ollus oben herausgefunden> hat, sondern es funktioniert auch der Timer 2 (32 Bit). Damit hat man> auch auf dem STM32F030F4P6 einen 32 Bit Timer zur verfügung, was ich> gerade für den Timerinterrupt sehr hilfreich finde. Ich sehe keinen> Unterschied zwischen dem STM32F030F4P6 und STM32F031F6P6.>> Also ich finde das wertet den sowieso schon sehr günstigen STM32F030F4P6> nochmal deutlich auf. Für 39 Cent pro Stück kann man da echt nicht viel> falsch machen:> http://www.aliexpress.com/item//32479516689.html
avr schrieb:> Wo ist das Problem? Wenn die oberen 16 KB nicht funktionieren, und der> µC mit nur 16 KB Flash verkauft wird, ist doch noch alles innerhalb der> Specs. Nur weil der µC 32 KB hat, heißt das nicht, dass diese auch> funktionieren müssen.
Da sind einige eigentlich "unveränderiche" Daten falsch programmiert.
Für ein Serienprodukt ist das völlig inakzeptabel, denn wer weiß schon,
was noch alles falsch ist. Kalibrierdaten vom ADC zum Beispiel?
Na bravo :-(
Sicher fertigt ST nicht jede Chipgröße extra, das ist mir auch klar.
Aber die werden ihre Chips richtig programmieren (aka der Chip liefert
die korrekte Flashgröße, wenn man ihn liest).
ST ist keine kleine Bastelbude, daraus folgt, das ist entweder Aussschuß
oder Fälschungen oder ein Fehler. Da es Fälschungen von STM32 wirklich
gibt, ist das nicht aus der Luft gegriffen.
Ralph S. schrieb:> Lt. Datenblatt sollen diese (F4P6) eine Flashspeichergröße von 16 kByte> besitzen.
Und er ist der einzige der Serie mit TSSOP20 Gehäuse.
Wenn da ein Kunde mal >10k Stück mit 32KB Flash haben wollte, wird STM
auch die in ein TSSOP gehäuse verpacken - ist derselbe Die. Eventuell
sind die µC des OP aus so einer Serie übrig geblieben.
Andererseits könnte das auch ein Fuckup der Fabrik sein die die Chips
"verpackt". Es ist durchaus möglich das die für 16KB vorprogrammierten
Dice einfach alle waren - aber 32KB noch übrig.
Hmmhmm schrieb:> Da sind einige eigentlich "unveränderiche" Daten falsch programmiert.> Für ein Serienprodukt ist das völlig inakzeptabel, denn wer weiß schon,> was noch alles falsch ist. Kalibrierdaten vom ADC zum Beispiel?
Nö. Da ist einfach ein Chip in ein anderes Gehäuse verpackt worden.
Vermutlich kann man hinterher die Flash Size nicht mehr ändern - weil
sie beispielsweise eingelasert sein könnte. Das hat aber keine
Auswirkungen auf sowas wie ADC Kalibrierdaten.
Und die Daten sind auch nicht falsch: Offensichtlich funktionieren die
32KB Flash ohne Probleme.
Hmmhmm schrieb:> Da sind einige eigentlich "unveränderiche" Daten falsch programmiert.
Was ist denn "falsch"?
Jim M. schrieb:> Und er ist der einzige der Serie mit TSSOP20 Gehäuse.Hmmhmm schrieb:> Sicher fertigt ST nicht jede Chipgröße extra, das ist mir auch klar.> Aber die werden ihre Chips richtig programmieren (aka der Chip liefert> die korrekte Flashgröße, wenn man ihn liest).
Der F031F6P6 hat 32kB Flash und mit an Sicherheit grenzender
Wahrscheinlichkeit den gleichen Die wie der F030F4P6. Darüber hinaus
besteht auch die Möglichkeit den gleichen Die in unterschiedliche
Gehäuse zu stecken.
Was ist denn mit der Möglichkeit, dass STM32FLASH die größe gar nicht
aus dem FLASH_SIZE Register bekommt, sondern aus einem anderen
Parameter, den der UART-BL überträgt? Gleicher Die, d.h. gleicher BL,
d.h. gleicher Parameter. Macht doch Sinn oder nicht?
So, um mal ein bisschen Klarheit zu schaffen habe ich es kurzerhand
selber ausprobiert:
Das FLASH_SIZE Register sagt 16kB:
1
(gdb) tar rem localhost:3333
2
Remote debugging using localhost:3333
3
0x00000000 in ?? ()
4
(gdb) x/h 0x1FFFF7CC
5
0x1ffff7cc: 16
stm32flash sagt ("up to") 32kB:
1
stm32flash 0.5
2
3
http://stm32flash.sourceforge.net/
4
5
Interface serial_posix: 57600 8E1
6
Version : 0x31
7
Option 1 : 0x00
8
Option 2 : 0x00
9
Device ID : 0x0444 (STM32F03xx4/6)
10
- RAM : Up to 4KiB (2048b reserved by bootloader)
11
- Flash : Up to 32KiB (size first sector: 4x1024)
12
- Option RAM : 16b
13
- System RAM : 3KiB
Version von stm32flash ist bei mir 0.5 aus "stm32flash-git" aus dem AUR.
Scheinbar wurde da innerhalb gewisser Versionen mal das "up to"
weggelassen bzw. hinzugefügt.
Jedenfalls braucht sich keiner Sorgen zu machen, dass irgendwelche
"read-only" Daten den "falschen" Wert hätten, weil irgendwelche findigen
Chinesen da irgendetwas gefälscht hätten.
> Device ID : 0x0444 (STM32F03xx4/6)
Das sollte eigentlich Erklärung genug sein.
Christopher J. schrieb:> Das FLASH_SIZE Register sagt 16kB:>> stm32flash sagt> ...> Device ID : 0x0444 (STM32F03xx4/6)> - RAM : Up to 4KiB (2048b reserved by bootloader)> - Flash : Up to 32KiB (size first sector: 4x1024)> - Option RAM : 16b> - System RAM : 3KiB>> Device ID : 0x0444 (STM32F03xx4/6)> Das sollte eigentlich Erklärung genug sein.
Es ist sogar die genaue Erklärung. AFAIK liefert der Bootloader nur die
Device ID zurück. Und die kann für verschiedene Mitglieder der gleichen
Familie auch identisch sein. Im hiesigen Fall haben die STM32F03xx4/6
eben alle die Device ID 0x0444. Das Aufdröseln der Device-ID zu
Flash/RAM Größe macht stm32flash per eingebauter Tabelle. Siehe
dev_table.c