Werte im Robo TX EEPROM speichern und lesen

Hier habt Ihr die Möglichkeit direkt mit dem fischertechnik Team in Kontakt zu treten
Here you have the Possibility to get in direct contact with the fischertechnik-Team

Moderator: fischertechnik Mitarbeiter

Forumsregeln
Bitte beachte die Forumsregeln!

In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Gesperrt
Stefan
Beiträge: 27
Registriert: 07 Nov 2011, 11:52

Werte im Robo TX EEPROM speichern und lesen

Beitrag von Stefan » 28 Feb 2013, 13:20

Hallo,

Laut diesem Thread:
Variable im Flashspeicher speichern (Robo TX)
http://forum.ftcommunity.de/viewtopic.p ... lit=EEProm

scheint es mit dem in der I2C Bibliothek enthaltenen Treiber "EEPROM-TXintern" möglich zu sein, in dem im Robo TX enthaltenen I2C EEprom Werte zu speichern und wieder zu lesen.

Ist dies gefahrlos möglich?

Ist der interne Bereich geschützt, oder kann man da den Robo TX kaputt machen?

Welchen Adressbreich kann und darf man benutzen?

Grüße,
Stefan

Benutzeravatar
Dirk Haizmann ft
fischertechnik Mitarbeiter
Beiträge: 1126
Registriert: 09 Nov 2010, 08:48

Re: Werte im Robo TX EEPROM speichern und lesen

Beitrag von Dirk Haizmann ft » 18 Mär 2013, 08:36

Hallo,

es empfiehlt sich in diesem Fall das Studium der bereitgestellten Dokumentation, etwa:

C_Compiler_RoboTXC_V1.2.pdf, Seite 31, Kasten „Wichtige Hinweise“
oder
Windows_Library_ftMscLib_V1.5.11.pdf, Seite 47, ebenfalls Kasten „Wichtige Hinweise“

Wichtige Hinweise:
Die I2C-Geräteadresse (Device Address) ist laut I2C-Spezifikation mit nur 7 Bit anzugeben (Wertebereich: 0 – 127).
Weiterhin sind die I2C-Geräteadressen 80 und 84 (0x50 und 0x54) reserviert für ein internes EEPROM des ROBO TX-Controllers. Der Zugriff auf diese Adressen wird von der API nicht erlaubt. Die I2C-Geräteadressen 81-83 und 85-87 (0x51-0x53 und 0x55-0x57) sind ebenfalls von Speicherbereichen desselben EEPROMs belegt, werden aber von der Firmware nicht verwendet. Hier kann es (muss aber nicht) bei externen I2C-Geräten, die eine dieser Adressen verwenden, zu Buszugriffskonflikten kommen.

Um nun die Frage konkret zu beantworten:

Der Teil des EEPROMs (Adressen 0x50 und 0x54), der von uns verwendet wird, und damit nicht zur Verfügung steht, weder lesend noch schreibend, ist geschützt. Jeder Zugriffsversuch über die I2C-API darauf wird in der Firmware blockiert bzw. gar nicht ausgeführt. Auf die Address-Paare 0x51 und 0x55, 0x52 und 0x56 sowie 0x53 und 0x57 können die anderen 3 „Pages“ des EEPROM beliebig für Schreib- und Lesezugriffe verwendet werden. Das kann auch die Firmware nicht stören, selbst wenn da irgendein Unsinn drinstünde. Paarweise treten die I2C-Adressen für das EEPROM übrigens immer deswegen auf, weil der EEPROM-Speicher nicht alle Adress-Bits ausdekodiert. Zum Beispiel der Zugriff auf Adresse 0x51 landet physisch auf derselben Page im EEPROM wie 0x55. Man kann sich also einfach eine von beiden aussuchen. Jede Page im EEPROM umfasst 256 Bytes. Es gibt 4 Pages, 1 davon ist reserviert und damit 3 zur Ablage von User-Daten nutzbar.

Soviel von mir...

ft

FischerPapa
Beiträge: 116
Registriert: 01 Nov 2010, 22:39
Wohnort: Wabern CH-BE

Re: Werte im Robo TX EEPROM speichern und lesen

Beitrag von FischerPapa » 29 Mär 2013, 22:19

Hallo,
aber ist es denn dadurch auch nicht möglich ein oder mehrere Programm(e), die sich eventuell in einer dieser Pages befindet zu überschreiben?
Mit vielen Grüssen
FischerPapa
https://www.youtube.com/user/PascalHans81

thkais
Beiträge: 381
Registriert: 31 Okt 2010, 21:45

Re: Werte im Robo TX EEPROM speichern und lesen

Beitrag von thkais » 30 Mär 2013, 08:06

Hallo FischerPapa,

keine Sorge - Programme werden im EEPROM nicht gespeichert, dazu wäre es viel zu klein. Programme werden entweder im RAM oder im Flash gespeichert.
Der wichtige Systembereich des EEPROM ist - wie oben bereits erwähnt - gegen Überschreiben geschützt. Man kann also nichts falsch machen.
Gruß
Thomas

FischerPapa
Beiträge: 116
Registriert: 01 Nov 2010, 22:39
Wohnort: Wabern CH-BE

Re: Werte im Robo TX EEPROM speichern und lesen

Beitrag von FischerPapa » 30 Mär 2013, 16:55

Achso ok. Aber auf den Flash kann man keine Daten hinterlegen oder?
Also kann man dann auf den EEPROM in RoboPro mit den I2C-Elementen zugreifen?
Mit vielen Grüssen
FischerPapa
https://www.youtube.com/user/PascalHans81

Benutzeravatar
Dirk Haizmann ft
fischertechnik Mitarbeiter
Beiträge: 1126
Registriert: 09 Nov 2010, 08:48

Re: Werte im Robo TX EEPROM speichern und lesen

Beitrag von Dirk Haizmann ft » 08 Apr 2013, 12:07

.. im Rahmen der oben beschriebenen Rahmenbedingungen kann man auf das EEPROM zugreifen.

ft

Gesperrt