Hallo zusammen, für zukünftige Entwicklungen möchte ich gerne weiterhin auf STM32 Prozessoren setzen. Je nach Ausbaustufe mit Cortex M0, M3, M4. Um individuelle Passwörter für das jeweilige Gerät zu generieren würde ich gerne so etwas wie eine einmalige, individuelle Prozessorkennung auslesen. Ich habe so etwas schonmal auf PC Seite gemacht, in dem ich die MAC Adresse der Netzwerkkarte ausgelesen habe, diese war dann Grundlage für mein individuelles, nur für dieses Gerät gültige Passwort. Gibt es so etwas in der Art auch beim STM32? Also eine Art Prozessorseriennummer o.ä. die wirklich einmalig und individuell ist? Wofür brauche ich das? Kunde X Kauft das Standardpacket, möchte aber nun nach 1 Jahr doch noch diverse Premiumsoftwarefunktionen freigeschaltet haben. Er liest am Display seine induviduelle Kennung, gibt mir diese und bekommt ein individuelles Passwort zur Freischaltung generiert Falls ja, wie liest man diese aus? Benutze momentan STM Cube mit STM-IDE als Entwicklungsumgebung. Wäre toll wenn jemand ne Idee hat...
Ich kann nicht sagen, ob ALLE STM32 eine eineindeutige ID haben. Die größeren haben eine ID, aber ob die wirklich eineindeutig ist, weiß ich nicht. Ich meine nicht - da haben immer 1000 oder so Chips die gleiche ID. Ob die kleineren eine ID haben, wäre in jedem Einzelfall zu prüfen. Ich baue auf meine Boards immer soetwas drauf: http://ww1.microchip.com/downloads/en/devicedoc/Atmel-8807-SEEPROM-AT24MAC402-602-Datasheet.pdf Da ist eine eineindeutige ID im ROM-Teil drin (also nicht lösch- oder änderbar), und der 256 Byte EEPROM-Teil ist frei benutzbar. Es gibt auch OneWire-Seriennummernchips, z.B.: https://datasheets.maximintegrated.com/en/ds/DS2401.pdf fchk
Hanna schrieb: > Also eine Art Prozessorseriennummer o.ä. die wirklich einmalig und > individuell ist? Ja. Manche haben eine einzigartige ID; viele haben eine OTP-Memory-Area.
Faul wie ich bin, mache ich das so:
1 | // memory location with the processors UID, here should be 3 dwords/12 bytes
|
2 | #ifdef STM32F4
|
3 | #define CONFIG_UID ((volatile uint8_t*)(0x1FFF7A10))
|
4 | #endif
|
5 | #ifdef STM32F7
|
6 | #define CONFIG_UID ((volatile uint8_t*)(0x1FF0F420))
|
7 | #endif
|
Verwendung dann als CONFIG_UID[0] bis CONFIG_UID[11]. Das gilt für den STM32F407 oder STM32F767, die Seriennummer gibt es auch bei anderen Modellen, aber dann an anderer Adresse, wo steht im Datenblatt.
Hanna schrieb: > Also eine Art Prozessorseriennummer o.ä. die wirklich einmalig und > individuell ist? Ein klares jein: Manche Typen haben ein "Unique device ID register (96 bits)" mit einer solchen. (Die "abgespeckten" Typen (etwa G030 statt G031) bisweilen nicht, oder sie ist zwar da, aber eben nicht garantiert und in abweichendem Format.) Soll das typübergreifend sein, müsste man die noch um die Typkennung erweitern. Also: RM konsultieren.
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.