Hallo,
Ich versuche schon seit drei Tag ein 24LC256 anzusteuern.
Als Adresse hab ich 10100000 da ich A0-A2 auf GND gelegt hab. Es kommt
aber keine Reaktion vom EEPROM wenn ich versuche diesen auszulesen. Im
Anhang mal die Oszi Bilder von SCL und SDA. Muss der Takt so
"merkwürdig" aussehen?
Hier mein Code zum auslesen:
1 | inc adresse_l
|
2 |
|
3 | rcall i2c_start ; rufe TWI start auf
|
4 |
|
5 | ldi r17, 0b10100000 ; Bausteinadresse + write
|
6 |
|
7 | rcall i2c_write ; schreibe über TWI
|
8 |
|
9 | mov r17, adresse_h
|
10 |
|
11 | rcall i2c_write ; schreibe über TWI
|
12 |
|
13 | mov r17, adresse_l
|
14 |
|
15 | rcall i2c_write ; schreibe über TWI
|
16 |
|
17 |
|
18 | rcall i2c_start ; rufe TWI start auf
|
19 |
|
20 | ldi r17, 0b10100001 ; Bausteinadresse + read
|
21 |
|
22 | rcall i2c_write ; schreibe über TWI
|
23 |
|
24 | rcall i2c_readna ; lese über TWI ohne ACK
|
25 |
|
26 | rcall i2c_stop ; rufe TWI stop auf
|
27 |
|
28 | out PORTA, r17
|
Die Unterfunktion verwende ich schon länger die gehen eigentlich alle.
Gruß Michael