EEPROM mit 256K (32K x 8)

Janiiix3

Aktives Mitglied
28 Sep 2013
1.321
10
38
Hannover
Sprachen
ANSI C, C#
Hallöchen.

Habe mal eine Verständnisfrage zu der Speicherorganisierung von EEProms.
Den EEProm den ich aktuell benutze (24LC256), weißt eine Kapazität von 256KBit und ist in 32K x 8 Speicherzellen organisiert.

Laut Datenblatt habe ich eine Adressierung von 0 - 0x07FF.

Was genau kann ich unter diesen Adressen speichern?
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.282
141
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP
Hallo Jan,

ich habe jetzt nicht in das Datenblatt geschaut, aber eigentlich müsstest du Adressen von 0...0x7FFF haben. Das sind dann 32kByte (256kBit).
0..0x7FF sind ja nur 2kByte.

Dirk :ciao:
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.321
10
38
Hannover
Sprachen
ANSI C, C#
Hi Dirk,

Sorry. Sind 0x7FFF
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.321
10
38
Hannover
Sprachen
ANSI C, C#
Ja die Beziehung von 0x7FFF zu 256KBit.
Komme da noch nicht ganz hinter... Hinter jede Adresse, gehe ich jetzt mal von 0x0000 aus... kann ich jeweils ein Byte speichern oder ?
1 Byte ( 8 Bit ) * 0x7FFF = 262136...

Ich komme nicht auf die 256... Bitte hilf mir mal auf die Sprünge...
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.282
141
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP
Das Eeprom ist als 8Bit x 32k organisiert. Du speicherst und liest also jeweils 1Byte.

Adresse 0 ... Adresse 32767 (0x7FFF)

Byte0 ... Byte 32767

insgesamt also 32768 Byte = 32kByte

EDIT:
32768 Byte =
32768 x 8 Bit = 262144 Bit

(262144Bit / 1024) x k = 256kBit

k/1024 oben kürzt sich weg
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.321
10
38
Hannover
Sprachen
ANSI C, C#
Okay.
Was ist mit den 32768 ?
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.344
61
48
Marwitz
Sprachen
BascomAVR, Assembler
???
Hast Du mal einen Link zum verwendeten Datenblatt?
Ich finde nur welche mit 15 bit Adressraum (also 2^15=32K). Und 32KBytes sind 256 KBit, womit Deine Frage beantwortet sein sollte: Bytes. In welcher Form Du diese bzw deren Bits interpretierst, ist Sache Deines Programmes...

Edit: zu langsam getippt...
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.282
141
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.344
61
48
Marwitz
Sprachen
BascomAVR, Assembler
Okay.
Was ist mit den 32768 ?
Umgangssprachlich gesagt sind das 32Kilobyte.
Allerdings ist die Verwendung der Vorsilbe "Kilo" hier falsch.
Kilo heißt (Ein)Tausend, also 103.
32Kilobyte wären also tatsächlich nur 32.000 Bytes.

Korrekt müßte man 32Kibibyte (32KiB) sagen, was 32*(210)1 Bytes = 32*210 Bytes = 32*1024 Bytes = 32768 Bytes.

Das "bi" steht dann für Binärpräfix, entsprechend hast Du dann:
  • Kibi- (Ki-) = (210)1 = 10241
  • Mebi- (Mi-) = (210)2= 10242
  • Gibi- (Gi-) = (210)3= 10243
  • Tebi- (Ti-) = (210)4= 10244
  • ...
Der Einheitenpräfix für Kilo (also 1000) ist das kleine "k" - für Kibi (also 1024) wird auch häufig das große "K" verwendet, was allerdings nicht genormt ist.
 
  • Like
Wertungen: TommyB

Janiiix3

Aktives Mitglied
28 Sep 2013
1.321
10
38
Hannover
Sprachen
ANSI C, C#
Mal wieder super erklärt. Danke euch beiden ;)
 

TommyB

Team Bitschubse
Premium Benutzer
17 Mai 2010
2.151
80
48
36
127.0.0.1 ;)
Sprachen
C#, VB.Net, LunaAVR, Assembler, Python
… Was genau kann ich unter diesen Adressen speichern?
Ich kenne den Chip jetzt nicht, aber ich wage zu vermuten dass er Bytes bevorzugt. Man könnte es natürlich auch mit einer Kaffeetasse versuchen, aber wie das genau gehen soll entzieht sich meinen Fähigkeiten. :D

Sorry, den konnte ich mir nicht verkneifen :p

Scherz beiseite, es ist ja schon alles erklärt. Wo jetzt noch die Frage aufkommen könnte: "Warum gibt es KiloByte und KiBiBytes?"
Etwas hatte LotadaC ja schon gesagt. Der Grund ist simpel: Weil es aus digitaler Sicht einfacher ist. Denkt mal an die alte Zeit zurück, also die 286er z. B. (oder noch früher). Die hatten noch keine FPU (Floating Point Unit) in der CPU drin, und falls doch dann als Co-Prozessor, also zweiten Chip. Jetzt will das komplizierte Ding was so ungefähr 30cm vorm Monitor sitzt aber sehen was auf der Diskette drauf ist. Und vermutlich auch wie viel Speicher belegt und noch frei ist. Problem: Unser Dezimalsystem basiert auf 10, das PC System aber auf 16. Zufällig ist ein vielfaches von 2 eben 1024 Bytes. Also, sch*** auf die 24 Bytes, dafür muss man zur Umrechnung von Bytes in KB nur ein paar mal die Bits shiften. Peanuts. Sonst wäre es notwendig großartig zu dividieren, was die CPUs damals noch nicht konnten (nur per Software, was aber langsam ist). Aber auch heutzutage sind Integer Operationen immer noch schneller als Fließkomma. Daher das 1024 vs. 1000 :)

U. A. aus diesem Grund sind Festplatten auch immer kleiner als es drauf steht. Kleinvieh macht eben auch Mist. Es sind ja "nur" 24 Bytes, aber pro KB. Die Hersteller rechnen auf 1000er Basis. Davon abgesehen wird noch etwas Speicher für Wiederherstellungsinformationen reserviert, grade bei SSD's die ja eigentlich "echte" 128 / 256 / 512 / … GB haben sollten (weil der Chip so groß ist). Es wird Speicher reserviert, sollte mal eine Speicherzelle ausfallen. Klar, ist die Reserve voll ist die Platte hops.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)