Variable im Flashspeicher speichern (Robo TX)

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
max.nuglisch@gmx.de
Beiträge: 6
Registriert: 16 Sep 2011, 13:54

Variable im Flashspeicher speichern (Robo TX)

Beitrag von max.nuglisch@gmx.de » 18 Okt 2012, 12:17

Hallo,
Ich habe eine Alarmanlage mit Codeschloss gebaut. Jede Person hat ein eigenes Passwort.
Wenn man sich einlogt, wird in einer Liste gespeichert das man sich eingelogt hat.
Wie kann ich diese Liste in dem Flash-speicher speichern.

Max :?:
Zuletzt geändert von sven am 18 Okt 2012, 17:17, insgesamt 1-mal geändert.
Grund: Rechtschreibfehler korrigiert.

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

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von thkais » 19 Okt 2012, 21:51

Hallo,

hierfür wäre doch ein I2C-EEProm perfekt geeignet.
Man könnte mit einfachsten Mitteln einen "Datenstick" realisieren. Daten schreiben im Download wäre problemlos möglich und für das Auslesen schließt man den TX-Controller an den PC an und lässt online ein Programm laufen, das den Inhalt des "Datenstick" in eine CSV-Datei überträgt...
Wenn ich etwas mehr Zeit hätte ;-)
Gruß
Thomas

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1835
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von Dirk Fox » 19 Okt 2012, 23:06

Hallo zusammen,

ja, ein I2C-EEProm wäre fein - programmiert ist das im Handumdrehen (siehe ft:pedia 3/2012).

Hier zwei Tipps (nicht getestet, nur "gegoogled"):
- für Lötprofis: http://www.horter.de/i2c/i2c-eeprom/eeprom_1.html
- und ein Breadboard für Nichtlöter (wie mich): http://www.howtronics.com/I2C-EEPROM-Br ... _p_73.html

Feine Idee, thkais!

Beste Grüße,
Dirk

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

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von thkais » 20 Okt 2012, 08:55

Hi Reivilo,

das ist in der Tat ungünstig - war mir bislang nicht bekannt, dass wirklich der komplette Adressraum für EEProms gesperrt ist. Dann wird wohl ein Atmel herhalten müssen, um den Adressraum zu verschieben ;-)
Gruß
Thomas

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von hamlet » 20 Okt 2012, 10:27

Hello,
but you can use parts of the TX internal EEPROM.
ReleaseNotes.txt:
ROBOPro Änderungshinweise

Änderungen in Version 3.1.3 gegenüber 3.1.2.9
===============================================

- Added file ApplicationNotes.txt, with some more technical information (currently I2C).
- Moved I2C Elements from level 5 to level 4
- Updated to MSC Library Version 67 / FW Version 1.30
- I2C: Disabled access to adresses 0x50, 0x54 (used internally by TX controller)
- I2C: Added driver for TX-internal EEPROM (768 bytes are free and usable)
- I2C: Keep Open mode did not work for writes with subadress (did a restart)
- Language can now be switched via menu entry (only main menu before programs are loaded)
- Text Message Element: Text was not translated during program compilation
- TX-Display: Text element now supports up to 8 lines
...
ApplicationNotes.txt:
...
The TX Controller has an integrated Microchip 24AA08 I2C EEPROM. This device
occupies I2C addresses 0x50 to 0x57 (7-bit = 0xA0 to 0xAF 8-bit). The TX
Controller firmware uses the first sector at device address 0x50 and 0x54. These
addresses are not accessible via ROBOPro. The other sectors are free and can be
used by ROBOPro programs. A ROBOPro driver for the EEPROM is available in the
library folder. A total of 768 bytes is accessible by this driver.
...
The EEPROM has 1 million erase/write cycles, so data should not be written on a regular basis.
...
a small list should fit into these 768 bytes. But it shouldn't be written that often.
The name of the driver is "I2C/EEPROM-TXintern".
cheers,
Helmut

vleeuwen
Beiträge: 1585
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von vleeuwen » 20 Okt 2012, 15:19

Sugestion:
Add a second EEPROM (your private one) to the I2C bus.

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

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von thkais » 20 Okt 2012, 18:25

Hi,

@hamlet: Uh - I should read the app-notes ;-)

@Reivilo: If the use is allowed, why not...the important sections are protected.

@vleeuwen: As Reivilo wrote above, own eeproms won't work because they all are using address 0x50...0x57 which is occupied by the internal eeprom.

I never would have the idea sharing an internal and external (user-available) I2C bus...
Gruß
Thomas

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von hamlet » 23 Okt 2012, 22:29

Holla,
ich hab mal mein China-DSO während des TX boot-Vorgangs an den I2C-Bus gehängt, die Wave als CVS exportiert und einen selbstgeschriebenen quickNdirty i2c Filter drüberlaufen lassen. War halt neugierig und nu kann ich I2C. Der Dump ist vielleicht mal hilfreich wenn man seinen TX mit irgendwelchen i2c-Spielereien in eine 180€ Bauplatte verwandelt hat. Ich bin z.B. nicht sicher ob die erste Seite des internen EEPROM in der C-Umgebung ebenso geschützt ist wie in RoboPro.
Beste Grüße,
Helmut

Code: Alles auswählen

WRITE on device 50
Byte written 0
START in SCAN_BYTE
READ on device 50
Byte read (NoACK) ff
WRITE on device 50
Byte written 1
START in SCAN_BYTE
READ on device 50
Byte read (NoACK) c1
WRITE on device 50
Byte written 2
... usw ...
256 bytes read:
0 | ff  c1  d3  ce  31  82  0   d0  df  d6  c5  52  3   31  2e  30  ....1......R.1.0
10 |ff  c8  57  82  0   97  df  cd  c1  ce  d5  46  c   4d  53  43  ..W........F.MSC
20 |20  46  52  45  49  42  55  52  47  df  ce  c1  cd  45  12  52   FREIBURG....E.R
30 |4f  42  4f  20  54  58  20  43  4f  4e  54  52  4f  4c  4c  45  OBO TX CONTROLLE
40 |52  df  d2  c5  4c  1   43  df  d3  4e  a   30  30  30  31  39  R...L.C..N.00019
50 |38  33  35  35  39  df  d2  cf  ce  cd  d5  58  3   30  34  30  83559......X.040
60 |ff  c2  cf  c1  d2  44  46  df  c3  cc  4b  9   31  38  2e  34  .....DF...K.18.4
70 |33  32  4d  48  7a  df  d3  c4  d2  c1  4d  3   38  4d  42  df  32MHz.....M.8MB.
80 |c6  cc  c1  d3  48  3   32  4d  42  df  c2  cc  d5  c5  d4  cf  ....H.2MB.......
90 |cf  d4  48  3   59  45  53  df  c5  d8  d4  31  5   52  53  34  ..H.YES....1.RS4
a0 |38  35  df  c5  d8  d4  32  5   52  53  34  38  35  ff  d4  c5  85....2.RS485...
b0 |d3  54  25  df  d4  c5  d3  d4  c5  44  1   31  df  c4  c1  d4  .T%......D.1....
c0 |45  a   58  58  58  58  2d  58  58  2d  58  58  df  c2  59  8   E.XXXX-XX-XX..Y.
d0 |58  58  58  58  58  58  58  58  0   58  58  58  58  58  58  58  XXXXXXXX.XXXXXXX
e0 |58  58  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  XX..............
f0 |ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ff  ................
[/size]

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

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von thkais » 28 Okt 2012, 10:41

or
  • Use a MCU with included EEProm as I2C-memory device
or
  • Use a MCU with a Flash-EEProm emulation as I2C-memory device
or
  • Develop a TTL logic which detects the I2C Start-condition and changes (flips) one of the address bits (no MCU needed)
Gruß
Thomas

Ad2
Beiträge: 306
Registriert: 31 Okt 2010, 22:20

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von Ad2 » 28 Okt 2012, 11:29

Addresses 50-57 are reserved, depending on the wiring an EEPROM uses only one address. It appears that only address 50 is actually in use. Has anyone tried to use one of the other 'reserved' addresses (51-57)?

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

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von thkais » 28 Okt 2012, 13:58

@ad2:
As hamlet quoted from the app-note, in the TX a 24AA08 is used. And this chip occupies the whole address-range (0x50-0x57). Sectors 0x51..0x53 (0x55..0x57) are approved for own use. So every attempt to use 0x50..0x57 will end in accessing the internal eeprom.... That's what we are discussing for ;-)
Gruß
Thomas

vleeuwen
Beiträge: 1585
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: Variable im Flashspeicher speichern (Robo TX)

Beitrag von vleeuwen » 28 Okt 2012, 14:30

Is it not possible to program a small uC as I2C address filter and transformer (address shifter)?

Antworten