Forum: Mikrocontroller und Digitale Elektronik AVR Tiny26 - internes EEPROM per I2C?


von Manfred C. (whoopsie)


Lesenswert?

Hi liebe Experten,

kurz vorweg... möglicherweise ist diese Frage aufgrund mangelnden 
Verständnisses absurd, aber ich versuchs trotzdem. ;-)

Ich habe eine Schaltung mit einem I2C-EEPROM und dem besagten myC. Beide 
sind parallel mit einer Schnittstelle verbunden, welche an einen 
Lancos-ähnlichen bzw. Si Prog-kompatiblen Adapter für serielle 
Schnittstelle geht. Ich habe eine Bibiliothek zum Umgang mit EEPROMs 
über I2C geschrieben, welche ich erfolgreich mit dem EEPROM nutzen kann. 
Die Speicher des myC sind natürlich mit PonyProg oder avrdude ausles- 
und beschreibbbar. Soweit, so gut...

Die Daten für das I2C-Protokoll des EEPROM konnte ich dem Datenblatt 
entnehmen, d. h. Zugriffsadresse, Adresslänge etc... gleiches kann ich 
in dem Datenblatt für das Tiny26 nicht finden.

Ist das interne 128 Byte EEPROM des Tiny26 also nicht per I2C auslesbar? 
Wenn doch, wie gehts? ;-) Wenn nicht, welche Alternativen gibt es, die 
sich "relativ" einfach implementieren lassen bzw. wie machen es avrdude, 
PonyProg und Konsorten?

von Peter R. (gelb)


Lesenswert?

Der Tiny26 kann nur Software-I2C (Bei Atmel TWI genannt). Es wäre also 
ein Programm für den Tiny26 zu schreiben, welches das interne EEPROM 
über TWI zur Verfügung stellt. Machbar ist das.

Die 'Konsorten' sprechen den Tiny26 über die Programmierschnittstelle 
an, also nicht I2C.

Grüße, Peter

von Nico E. (masta79)


Lesenswert?

Datenblatt Seite 19, da findest du eigentlich alles was du zum Thema 
EEPROM brauchst. Ansonsten, gibt es AVR-Tutorial: Speicher: EEPROM 2 
und AVR-GCC-Tutorial: EEPROM im wiki.

von Manfred C. (whoopsie)


Lesenswert?

Hi,
danke für die schnellen Antworten...
Grundsätzlich geht also der I2C-/TWI-Zugriff auf das EEPROM des Tiny...
Seite 19 habe ich gar nicht im Datenblatt, das hört bei Seite 18 auf... 
;-)
Ich guck mal, ob ich noch ein ausführlicheres Datenblatt finde.

Nachtrag: Habe gerade den 185-seitigen Schinken gefunden... ;-)=

von Kachel - Heinz (Gast)


Lesenswert?

Das AVR-interne EEPROM wird direkt, also über AVR-interne I/O-Register 
(eearl, eearh, eedr, eecr) angesprochen. Es ist also kein Umweg über 
eine bitserielle Kommunikation (I²C, SPI, 1wire) erforderlich.

KH

von Manfred C. (whoopsie)


Lesenswert?

Hi,

soweit verstanden... ich lese das EEPROM vom myC im myC auch ohne Umwege 
aus, um z. B. Kalibrierungsparameter dem Programm im myC bekannt zu 
machen.

Ich möchte aber diese Kalibrierungsparameter in dem internen EEPROM am 
liebsten unter Verwendung meiner I2C-/TWI-Bibliothek, welche ich u. a. 
zum Auslesen der Daten aus dem externen EEPROM auf der Platine benutze, 
aus einem externen Programm, welches also nicht das im myC ist, 
verändern können. Dies soll zu Folge haben, dass die 
Kalibirierungsparameter für den myC "einfach" über z. B. ein grafisches 
Frontend auf einem PC geändert werden können. Ich als 
Nicht-Elektronikingenieur habe halt problemorientierte Sichtweisen und 
möchte am liebsten alles mit dem kleinsten gemeinsamen Nenner "I2C/TWI" 
machen, um mich nicht in etwas anderes einarbeiten zu müssen und dieses 
dann auch noch testen zu müssen... :-)

von Andreas K. (a-k)


Lesenswert?

Das ist durchaus machbar und klingt sinnvoll. In der Codesammlung lassen 
sich ein paar Implementierungen für einen I2C-Slave finden, siehe 
beispielsweise Beitrag "attiny USI Slave Implementierung".

von Manfred C. (whoopsie)


Lesenswert?

Ahhhh... super, danke!
Auf die Idee die Suchfunktion mit "attiny USI slave" zu füttern wäre ich 
nie gekommen... ;-)=
Ich werd das mal versuchen zu adaptieren, vielen Dank nochmal.

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.