Forum: Mikrocontroller und Digitale Elektronik Großer EEPROM / Flash mit I2C IIC


von Christoph Söllner (Gast)


Lesenswert?

Hi Liste,

vielleicht kann mir ja wer helfen. Ich benötige
zum ATMega (darum am besten IIC) einen Speicher-
Chip, idealerweise einen EEPROM.
Leider brauche ich 256*64*32=524288 Bytes an
Speicherplatz. So einen großen EEPROM hab ich
nicht gefunden. Auch würde ich gerne byteweise
dadrauf zugreifen können und nicht blockweise.

Hat da jemand eine Lösung?
Danke,
Christoph

von Hauke Sattler (Gast)


Lesenswert?

Nimm nen ATMEL Dataflash. (AT45DB041D)


Ok es ist kein EEPROM sondern ein Flash Speicher, und er ist auch nicht
über IIC sondern über SPI anzusteuern. aber dafür sind die schön klein,
billig, schnell und bis 8MB groß (ja 8 megaBYTE also 64 Mbit)

Byteweises Lesen geht ohne Probleme.
Byteweises schreiben geht über einen kleinen Umweg.
Die Dataflash haben zwei interne RAM Buffer eingebaut (biz zu 1kB). Mit
einem SPI Kommando kann eine Flashpage (Block) in einen Buffer kopieren.
Im Buffer dann beliebig mit den Bytes rumpfuschen. Und nach Abschluss
der Manipulationen den inhalt des Buffers wieder ins Flash
zurückschreiben (mit einem einzigen SPI Kommando).

Größter Nachteil ist für mich, daß die Dinger eine 2,7-3,6V Versorgung
spannung brauchen. (ich mach das immer mit ein paar in Reihe
geschalteter Dioden)
Die IO-Pins sind jedoch 5V tolerant.

bis dann
Hauke

von crazy horse (Gast)


Lesenswert?

AT24C1024, brauchst dann allerdings 4 Stück. Und da nur 1 Adresseingang,
kannst du nur 2 Stk an einen Bus hängen, also einen 2.Bus...

von Christoph Söllner (Gast)


Lesenswert?

@crazy horse
Danke, aber es soll eine single chip solution sein.

@hauke
Also das find ich gut. Aber
- Beißt sich das beim Programmieren über SPI nicht?
- Hast Du zufällig eine C-lib dafür :D?

Danke euch,
Christoph

von Peter (Gast)


Lesenswert?

@crazy horse
bei SPI Slaves hast du keinen Adress eingang, sondern nur einen Chip
Select, sprich du kannst den Bus theortisch unendlich erweitern,
brauchst nur pro Slave einen IO Pin, oder baust dir Adress Decoder, die
x Slaves ansprechen koennen

von Hauke Sattler (Gast)


Lesenswert?

@Christoph

2*Nein

1. Nein das beißt sich nicht.
SPI geräte werden immer über 4 Leitungen angesprochen.
Clock, DataIn, DataOut und CHIPSELECT
Da im Resetzustand (ISProgrammierung) alle sonstigen IO-Pins hochomig
sind, brauchst du lediglich die CS leitung mit einem kleinen Widerstand
auf den gewünschten inaktiven Pegel zu ziehen.
Im prinzip ist ja der Reseteingang des AVR die Chipselct Leitung für
das ISP Interface.

2. Nein ich habe keine C-lib dafür.
Ich stehe mit C auf dem Kriegsfuß. Ich bin reiner ASM Progger (ok.
Basic und Fortran kann ich auch noch)
Mir ist lieber, daß der µC den Unsinn tut den ich ihm befehle.
Und nicht das was irgend ein Compiler meint in meinem Code hinein zu
interpretieren.

Aber wenn du die SPI Schnittstelle unter C ansteuern kannst (unter ASM
ist das schon banal), dann ist der Rest einfach.

cu
Hauke

von Christoph Söllner (Gast)


Lesenswert?

@Peter
Der AT24C1024 ist ein IIC EEPROM, braucht sehr wohl Adress-Pins, und
hat tatsächlich nur einen davon-> maximal 2 an einen Bus.

von Peter (Gast)


Lesenswert?

>>Nimm nen ATMEL Dataflash. (AT45DB041D)
>>Ok es ist kein EEPROM sondern ein Flash Speicher, und er ist auch
nicht
>>über IIC sondern über SPI anzusteuern. aber dafür sind die schön
klein,
>>billig, schnell und bis 8MB groß (ja 8 megaBYTE also 64 Mbit)

IIC oder SPI???? :D

von Christoph Söllner (Gast)


Lesenswert?

AT45DB041D ungleich AT24C1024, wenn du das meinst :)
AT45DB041D = SPI
AT24C1024  = IIC
kann passieren =)

von Hauke Sattler (Gast)


Lesenswert?

AT45DB041D
SPI Anschluss
2048 Pages (264 Byte/Page)
zwei SRAM Buffer (264 Byte)
100,000 Program/Erase Zyklen pro Page Minimum
Datenerhalt 20 Jahre
gibt es als
8-lead (0.150" Wide Body), Plastic Gull Wing Small Outline (JEDEC
SOIC)
8-lead, 0.209" Body, Plastic Small Outline Package (EIAJ)
A, 8-pad, 6 x 5 x 1.00 mm Body, Very Thin Dual Flat Package No Lead
(MLF)
und sogar als Dataflash Karte (mechanisch wie SD/MMC Karten)

cu
Hauke

P.S.
Die "Adressaschlüsse" der IIC Bausteine sind keine echten
Adressanschlüsse.
Es konfigurationspins mit denen dem Baustein mitgeteilt wird, auf
welche Adresse im IIC Bus sie reagieren sollen.
Die Adressierung im IIC Bus geschieht ausschließlich über den Bus!!!
(zumindest wenn man sich an die Spezifikationen hält)

von Peter (Gast)


Lesenswert?

Hauke Sattler
Die Adressierung??

Naja, der Baustein benötigt eine eindeutige Adresse im Bus, und bekommt
eine fest eingebrannt (die ersten Bits der Adresse), dei letzten Bits
(in diesem Fall nur eins) der Adresse kann man über den Adress Pin
selektieren High / Low.

Der Baustein an sich, da hast du Recht wird über IIC Angesprichen.

Bei SPI wird der Baustein über ein CD (Enable) Pin auf aktiv
geschaltett . Sagt ja schon der Name Chip Select

Gruss

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.