I2C 24LC01 EEPROM 1kBit DIP8
Produktinformationen "I2C 24LC01 EEPROM 1kBit DIP8"
Modell: 24LC01
Hersteller: China
Kategorie: I2C
Anwendung: Speicher nicht flüchtig
Gehäuse: DIP8
Schnittstelle: I2C 5.0V/3.3V
Betriebsspannung: 3.3/5.0V (2.5-5.5V)
Technologie: CMOS
Geschwindigkeit: bis 0.4MHz
Schreibgeschwindigkeit: 5mSek
Zyklen-Festigkeit: > 1Mio (Schreiben/Lesen)
Datenaufbewahrung >200 Jahre
Gewicht: 0.008kg
#####################################################################
#
# E P R O M - I 2
C -
2 4 L C 0 X - nicht flüchtiger Speicher
#
# Hardware: EEPROM 24LC0X, 24C0X, 240X, usw...
#
#
Betriebssp: RaspBerry PICO: +5.0V
USB, IR Sensor +3.3V
# Version: V0.00
04.12.2022 /MM
# Change: 04.12.2022 Erstellung Grundprogramm
#
# Funktion: EEPROM zum speichern von Daten die nach
einem
#
Geräteneustart noch verfügbar sein sollen
#
Speichern von Zeichenketten, inkl. Binärdaten in Zeichenketten
#
# Beschaltung:
24CXX-Pin-8 (VCC) **3.3V**
<-> Raspberry-PICO-Pin-36 **3.3V**
#
24CXX-Pin-4 (GND) **GND**
<-> Raspberry-PICO-Pin-38 **GND**
#
24CXX-Pin-5 (SDA) **I2C**
<-> Raspberry-PICO-Pin-02 **GP01**
#
24CXX-Pin-5 (SDA) **I2C**
<-> Widerstand 4.7kR -> +3.3V
#
24CXX-Pin-6 (SCL) **I2C**
<-> Raspberry-PICO-Pin-01 **GP00**
#
24CXX-Pin-6 (SCL) **I2C**
<-> Widerstand 4.7kR -> +3.3V
#
24CXX-Pin-1 (A-0) **A-0**
<-> 24CXX-Pin-4 **GND**
#
24CXX-Pin-2 (A-1) **A-1**
<-> 24CXX-Pin-4 **GND**
#
24CXX-Pin-3 (A-2) **A-2**
<-> 24CXX-Pin-4 **GND**
#
24CXX-Pin-7 (WP) **WP**
<-> 24CXX-Pin-4 **GND**
# INFO: Die beiden Widerstände vom I2C sind bei
kurzen Leitungen nicht zwingend
#
# EEPROMs: 24C01
- DIL08 - 1kBit
- 128Bytes
#
24C02 - DIL08 -
2kBit - 256Bytes
#
24C04 - DIL08 -
4kBit - 512Bytes
#
24C08 - DIL08 - 8kBit -
1024Bytes
#
Schreiben: 5mSek.
#
Lesen: 5mSek.
#
Schreibzyklen: mid. 4 Mio.
#
# I2C: 24CXX
Bus-Speed 100kHz / 400kHz,
#
from machine import Pin # importing
classes
from time import sleep # Import sleep
from time class
import time #
importing classes
import utime
Version =
"V0.00" # Software
Version
OnBoardLED = machine.Pin(25, machine.Pin.OUT)
OnBoardLED.toggle() # LED OnBord
Toggle - Init Blink
sleep(0.1) #
Delay Init Blink
OnBoardLED.toggle() # LED OnBord
Toggle - Init Blink
sleep(0.1)
def eepromstrwrite(adr,stwrite): # Write String to Eprom
global
I2C_EEPROM_Addr
i=0
bstwrite =
bytearray(len(stwrite)) #
Byte Array mit der String grösse erstellen
#bstwrite =
bytearray(stwrite) # in
ByteArray umwandeln, keine Binärdaten
while
i<len(stwrite):
bstwrite[i]
= ord(stwrite[i:i+1])
i=i+1
i2c.writeto_mem(I2C_EEPROM_Addr, adr, bstwrite) # Write ByteArray to EEPROM
sleep(0.005) # 5mSek,
Pause nach Zugriff
#EndDef
def eepromstrread(adr,size): # Read String from
Eprom
global
I2C_EEPROM_Addr
i=0
stread =
""
bbytearray=i2c.readfrom_mem(I2C_EEPROM_Addr, adr, size ) # 8-Bit Data frame, Werte lesen
# Konvertieren
ByteArray zu String #
Python konveriert keine Binär Daten x=str(bbytearray,'UTF-8')
while
i<len(bbytearray):
stread =
stread + chr(bbytearray[i]) #
Zeichen an String anfügen
i=i+1
sleep(0.005)
# 5mSek, Pause nach Zugriff
return(stread)
#EndDef
# ****** MAIN PROGRAMM ******
print("EEprom 24C1X Demo zum schreiben und lesen von
Daten")
print("")
# Initialize I2C with pins SDA=GP0 (Pico-Pin1), SDL=GP1
(Pico-Pin2) :: LCD VCC=+5V SDA/SDL 3.3V Logic
i2c=machine.I2C(0, sda=machine.Pin(0),
scl=machine.Pin(1), freq=100000)
# Scan I2C BUS to Display correct wired I2C devices
devices = i2c.scan()
print('I2C Device found at Address: ',end="")
for d in devices:
print(hex(d)+" ",end="")
print("")
print("")
sleep(0.1) #
Nach dem Scann brauchts eine Pause
I2C_EEPROM_Addr = 0x50 # Must bee one
of the scanned I2C Adresses!
I2C_EEPROM_Addr = d # letzte gescanntes I2C Adresse
verwenden
# Daten ins EEprom Schreiben
stwrite = "Hallo Welt" # Zeichenkette
zum speichern
print("Zeichenkette schreiben
!"+stwrite+"! plus Binär Wert=222 ein Byte")
stwrite = stwrite + chr(222) # Einen Binär Wert
anhängen
eepromstrwrite(0,stwrite)
# Daten aus EEprom lesen
print("Zeichenkette lesen 10 Zeichen plus Binär Wert
1 Byte")
stread = eepromstrread(0,11)
print("**"+stread[0:10]+"**
**"+str(ord(stread[10:11]))+"**")
Anmelden