Forum: Mikrocontroller und Digitale Elektronik 2Mbit serial I2C EEPROM möglich?


von Marcus (Gast)


Lesenswert?

servus,

zZt. gibt es maximal 1Mbit EEPROMs mit I2C interface von ATMEL und
Microchip. der 1Mbit ATMEL chip hat (logischerweise) nur noch einen
hardware adressierungs pin (Microchip hat im datenblatt noch alle A2,
A1 und A0 aufgeführt, A2 ist aber nur noch für die hardwareadressierung
zuständig).
daraus folgt, dass ich auch nur noch 2 solcher bausteine an den bus
hängen kann und diese dann über diesen pin später in der slave adresse
adressieren kann. bei 512kbit hab ich deren noch 2 pins (A0 und A1) und
kann somit noch 4 gleiche bauteile am bus betreiben.

jetzt meine frage:
ist evtl noch damit zu rechnen, dass es irgendwann mal einen 2Mbit I2C
EEPROM geben wird, der halt alle ursprünglichen A2 bis A0 auf NC hat,
da diese bits dann für die reine speicheradressierung gebraucht werden,
oder funzt das ganze dann nicht mehr?
das würde doch dann theoretisch bedeuten, dass ich, egal welche slave
adresse (bis auf die festen 4 ersten bits für I2C = 1010) ich schicke,
mir dieser 2Mbit baustein dann IMMER ein ACK zurückgeben müsste, oder?

hintergrund:
wenn ich mein system so auslegen will (momentan 512kbit EEPROM), dass
später evtl auch 1Mbit oder (wenn möglich) 2Mbit pincompatibel
eingesetzt werden könnten, wäre es sinnvoll das programm am anfang
durch die slave adressierung erkennen zu lassen, was für ein
speicherbaustein dran hängt => 512kbit mit slave adresse xxxx 000x,
1Mbit = xxxx 100x, 2 Mbit = ???)

hoffe ich war nicht wieder zu unverständlich...

von Marcus (Gast)


Lesenswert?

moment... hab denk/guck fehler glaube ich...

ATMEL und Microchip haben da wohl verschiedene philosophien, deswegen
kam ich durcheinander.
ATMEL hat bei seinen 512kbit speicher wirklich nur 2 Adress pins um
maximal 4 bausteine zu verwenden, obwohl technisch 3pins und 8 möglich
wären, da für die adressierung der 65536kByte ja nur 16, also das 2te
und 3te byte nötig sind, welches an den baustein geschickt wird.

also wäre wenn, meiner meinung nach Microchip mit diesem layout in der
lage einen 2Mbit baustein herzustellen, da dieser dann immer noch einen
hardware adress pin hätte. die beiden anderen pins müssten dann fest auf
Vcc gelegt werden und sind intern bei der adressierung der 18bit nötig,
um die 262144kByte adressieren zu können...

kann mir da jemand evtl zustimmen?
also könnte man dann hingehen und die verschiedenen EEPROM bausteine,
wenn sie ansonsten pincompatibel sind, durch folgende slave adresse und
darauffolgendes ACK zu detektieren:

512k = 1010 000 RW   => wenn ACK, dann isses ein 512er
1M   = 1010 100 RW   => wenn ACK, dann isses ein 1M
2M   = 1010 110 RW   => wenn ACK, dann isses ein 2M

von Marcus (Gast)


Lesenswert?

noch ein unterschied:
Microchip hat bei 512k und bei 1M jeweils nur einen page write betrieb
von 128byte. ATMEL hingegen bei 512k ebenfalls 128, bei 1M aber
256byte.

von Marcus (Gast)


Lesenswert?

push

nochmal die frage:

meint ihr, dass zB Microchip noch einen 2Mbit EEPROM rausbringt?
technisch wäre es ja anscheinend (wegen pins und adressierung) noch
möglich. bei ATMEL bin ich mir da, aus genannten gründen, nicht
sicher.

was meint ihr?

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

es gibt zu Atmel kompatible jetzt auch von www.st.com ,hab ich gehört.
Vielleicht bauen die auch was größeres mit I2C

von Marcus (Gast)


Lesenswert?

leider nein, die einzigen 1Mbit überhaupt zur seit kommen von ATMEL und
Microchip glaube ich. ST leider nur bis 512k, bzw. 256k erhältlich...

von Ssss S. (sssssss)


Lesenswert?

Hi!

Also bei soviel Speicher würd ich lieber die Atmel Dataflash Bausteine
nehmen.
Gibts bis 4Mbit in soic8 bei segor.de.
8 bzw 16 mbit gibts glaub ich auch noch.

Protokoll ist SPI und mit sehr wenig Aufwand zu implementieren.
Ein Block ist dort 256+8 Byte groß, der chip hat aber zwei sram
buffer.
dh man lädt einen block in den buffer und kann dann einzelne bytes
ändern
und schickt dann ein buffer->flash befehl und er schreibt es zurück.

Bye, Simon

von Marcus (Gast)


Lesenswert?

das ist natürlich praktisch... aber die entwicklung ist für I2C gedacht
und momentan sind 512kbit ausreichend... ich möchte evtl nur schon für
die zukunft eine mögliche erkennung garantieren (über die slave
adresse), das später auch eine ältere software mit einem grösserem
baustein zurecht kommt und diesen erkennt.

trotzdem klingt flash mit integriertem buffer interessant (vereinfacht
sicherlich die geschichte mit dem blockweisen löschen/schreiben)...
vielleicht für ein nächstes projekt...

von Michael (Gast)


Lesenswert?

Ich finde, du solltest dich auf das konzentrieren, was es derzeit gibt.
es ist schwierig zu sagen, was einmal kommen wird und vor allem wie es
dann realisiert sein wird. Daher mach vielleicht noch ein 1Mbit
Unterstützung und das reicht.

PS:Intel wusste zu Zeiten eines 8086 auch nicht, dass man einmal über
4GByte lachen wird.

von Christoph Kessler (db1uq) (Gast)


Lesenswert?


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.