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
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.
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
Hm, keiner hier im Forum der des Smarteeprom nutzt? Oder fehlen weitere Infos/Angaben? Viele Grüße, Flyget
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.