Forum: Mikrocontroller und Digitale Elektronik SmartEEPROM Limitierung < 1024Bytes bei ATSAMD51J20A?


von Flyget (Gast)


Lesenswert?

Hallo zusammen,

ich nutze das SmartEEPROM eines ATSAMD51J20A µC und müsste nun die 
aktuelle funktionierende Konfiguration mit 1024 Bytes (Fuses: SEEBLK = 
0x08 sowie SEEPSZ = 0x01) auf eine Konfiguration mit 2048 Bytes erhöhen. 
Leider klappt dies nicht...

Wenn ich im MicrochipStudio die Fuses auf SEEBLK = 0x10 sowie SEEPSZ = 
0x01 ändern möchte, schreibt er bei SEEBLK den Wert 0x00 hinein?!
Nach einigem rumprobieren scheint es mir so, dass er die obersten 4 Bit 
von SEEBLK einfach ignoriert. Wenn ich beispielsweise 0x16 setzen 
will(ungültige Konfiguration) steht nach dem schreiben ein 0x06 drinnen. 
Will ich 0x12 setzen, steht danach 0x02 drin...
Im DB hab ich keine Limitierung gefunden, die entsprechenden Tabellen 
ermöglichen ja theoretisch noch deutlich mehr Eeprom-Größe und der µC 
hat 1MB Flash zur verfügung.

Hat jemand hierzu Erfahrung und das SmartEEPROM schonmal bei dem 
genannten µC mit einer Größe von mehr als 1024 Bytes genutzt?

Viele Grüße,
Flyget

von Jim M. (turboj)


Lesenswert?

Lies Dir mal das (Referenz) Manual nochmal genauer durch.

Bei Flash/EEProm sind Schreiben von "1->0" und von "0->1" jeweils 
unterschiedliche Operationen. Oftmals kann man Bits nur in gröberen 
Blöcken (Pages) löschen.

von Flyget (Gast)


Lesenswert?

Hallo Jim,

Danke für deine Antwort! Das was du meinst übernimmt der "smarte" Teil 
des Peripherals und funktioniert auch tadellos. Es klappt seit einiger 
Zeit ohne Probleme. Jetzt brauchts einfach mehr Speicher, und damit muss 
ich eigentlich nur die Fuses ändern.
Die Fuses werden ja auch nich von meinem Code geschrieben sonder über 
die gui im Microchipstudio.

Viele Grüße,
Flyget

von Flyget (Gast)


Lesenswert?

Hm, keiner hier im Forum der des Smarteeprom nutzt? Oder fehlen weitere 
Infos/Angaben?

Viele Grüße,
Flyget

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flyget schrieb:
> Hm, keiner hier im Forum der des Smarteeprom nutzt?
Ich benutze es nicht und kenne auch den Controller nicht, aber die 
Funktion des smartEEPROMs ist im DB echt gut beschrieben...

Im Datenblatt unter "25.7 Register Summary" und bei "25.8.14 SmartEEPROM 
Status" findest du an der Adresse 0x2C das Register SEESTAT und dort in 
den 4 Bits 11..8 die Register für SBLK.
Die Bits 15..12 sind ausgegraut, nicht implementiert und bringen beim 
Lesen eine 0.

Mein Tipp: such im ganzen Datenblatt mal nach SBLK und du siehst, welche 
Werte da und bei PSZ sinnigerweise eingetragen werden müssen.

Flyget schrieb:
> die aktuelle funktionierende Konfiguration mit 1024 Bytes (Fuses: SEEBLK
> = 0x08 sowie SEEPSZ = 0x01)
Wenn ich mir die "Table 25-10. SmartEEPROM Allocated Space" und "Table 
25-6. SmartEEPROM Virtual Size in Bytes" so ansehe, dann wäre SBLK=1 und 
PSZ=1 die bevorzugten Werte.
Und für 2048 Bytes dann eben SBLK=1 und PSZ=2...

: Bearbeitet durch Moderator
von Flyget (Gast)


Lesenswert?

Hallo Lothar,
Danke für deine Antwort! Ich habe in Tabelle 25-6 "SmartEEPROM Virtual 
Size in Bytes" die Spalten mit den Reihen vertauscht und dann den Wald 
vor lauter Bäumen nimmer gesehen, peinlich...

Das Eeprom lief also die ganze Zeit schon auf einer Konfiguration die 
zwar funktioniert, aber unnötige Blöcke benötigt.

Ich werde deinen Vorschlag nachher gleich mal testen und dann berichten, 
bin aber sehr optimistisch, dass das die Lösung ist.

Vielen Dank schonmal!
Gruß Flyget

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite



Lesenswert?

Flyget schrieb:
> Ich habe in Tabelle 25-6 "SmartEEPROM Virtual Size in Bytes" die Spalten
> mit den Reihen vertauscht
Ich anfänglich auch. Das ist nämlich echt schlecht dargestellt. In der 
Tabelle 25-8 wirds dann klarer.

Vor Allem verwirrt sehr, dass dort beim PSZ die Tabelle immer 
Zweierpotenzen von 4 bis 512 eingetragen sind, aber letztlich nur die 
"Basis der Zweierreihe minus 2" von 0..7 eingetragen werden muss. Das 
wird einem erst klar, wenn man die Tabelle 25-11 gefunden hat.

Und dass in der Tabelle 25-10 noch was mit SBLK[4:0] steht, obwohl das 
Register nur 4 Bits hat und dann auch als SBLK[3:0] auftaucht, macht die 
Sache nicht intuitiver.

> Vielen Dank schonmal!
De nada.

: Bearbeitet durch Moderator
von Flyget (Gast)


Lesenswert?

Ja einige Ungereimtheiten sind mir da auch noch aufgefallen. Aber 
Schlussendlich funktioniert es nun so, wie von dir beschrieben.
Falls jemand ein ähnliches Problem hat, kommt er nun evtl. zügiger zum 
Ergebnis

Besten Dank,
Flyget

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.