Hallo,

Zitat von
pebisoft
hallo, es läuft nicht. werde mir jetzt den 24c16 kaufen und dann noch einmal probieren. wenn ich die beiden steuerleitungen an den c-control schliesse, kann ich unter der adresse 162/163 schreiben und lesen.
meine pinbelegung des 24c65 : a0,vcc an +5volt, a1,a2,gnd an masse
scl, sda an die angegebenen pins. ein pin ist frei ,der wp.
im anhang mein programm.
mfg pebisoft
ich hatte auch große Probleme einen 24C16 anzusprechen.
Es hat alles ewig lange gedauert, das Schreiben und Lesen.
Zwischen 2 Anzeigen beim Lesen vergingen rund 20 Sekunden und der gelesene Wert war immer 255.
Geholfen hat bei mir für SLC und SDA andere Pins zu nehmen.
Ich hatte zuerst portc.5 für SCL und portc.4 für SDA.
(ist im Datenblatt des mega8 in der Pinbelegung so vorgegegeben, Hardware?)
Habe dann mal portb.1 und portb.0 genommen und alle geht.
Warum weiß ich aber nun auch nicht.
Pin WP muß auf GND, zumindest beim 24c16, sonst ist eine Hälfte schreibgeschützt.
Ich versuche mal das Bascom Programm hier zu posten,
hoffentlich geht das hier.
Code:
' Test den 24C16 über I2C anzusprechen
$crystal = 8000000
$regfile = "m8def.dat"
$baud = 19200
Config Scl = Portb.1
Config Sda = Portb.0
Const Addressw = 160 'write addresse
Const Addressr = 161 'read addresse
Dim I As Byte
Dim Adres As Byte
Dim Wert As Byte
' zum Test Adressen 1 bis 3 schreiben
Print "3 Werte Schreiben"
For I = 1 To 3
Print I;
Input " Gib Wert ein: " , Wert
Adres = I
' Wert = 100 + I
Gosub Write_eeprom
Next
Print
Print "Lesen "
Print
Do
For I = 1 To 3
Adres = I
Gosub Read_eeprom
Print I ; "=" ; Wert ; " ";
Next
Print
Wait 1
Loop
End
'sample of writing a byte to EEPROM AT2404
Write_eeprom:
I2cstart 'start condition
I2cwbyte Addressw 'slave address
I2cwbyte Adres 'asdress of EEPROM
I2cwbyte Wert 'value to write
I2cstop 'stop condition
Waitms 10 'wait for 10 milliseconds
Return
'sample of reading a byte from EEPROM AT2404
Read_eeprom:
I2cstart 'generate start
I2cwbyte Addressw 'slave adsress
I2cwbyte Adres 'address of EEPROM
I2cstart 'repeated start
I2cwbyte Addressr 'slave address (read)
I2crbyte Wert , Nack 'read byte
I2cstop 'generate stop
Return
Vielleicht hilft es ja.
Lesezeichen