Hallo, ich spiele gerade mit einem Atmel 24C512 BN6-EEPROM am Atmega8 herum. Habe mir dafür das Beispiel twitest.c heruntergeladen http://savannah.nongnu.org/file/twitest.c?file_id=13910 F_CPU auf 1000000UL umgestellt und auf den Mega8 geflashed. Hardwaremäßig habe ich mit einem 10-Poligen Steckpfostenstecker an PortC des STK500 den 24C512 über einen Stecksockel verbunden. Versorgungsspannung, Datenleitungen angeschlossen und die A0-A2 auf GND gelötet. Das Write-Protect-Pin habe ich offen gelassen. Die Datenleitungen habe ich mit 2K2-Widerständen an Versorgungs spannung (4,95V aus dem STK500) gelegt.Müsste eigentlich hardware- mäßig alles stimmen. Dennoch ist die Programmausgabe in HTerm nur "0000:" Ich vermute, ich habe etwas mit den TWI-Adressen falsch gemacht. Im Programm befindet sich folgender Kommentar zu den TWI-Adressen: /* * TWI address for 24Cxx EEPROM: * * 1 0 1 0 E2 E1 E0 R/~W 24C01/24C02 * 1 0 1 0 E2 E1 A8 R/~W 24C04 * 1 0 1 0 E2 A9 A8 R/~W 24C08 * 1 0 1 0 A10 A9 A8 R/~W 24C16 */ Ich habe es so verstanden, dass die ersten vier Bits das Gerät (1010 also schon mal irgend was mit 24CXX) identifizieren. Es ist also schon mal kein Temperatursensor oder Beschleunigung- ssensor. Die Ax-Bits werden benötigt, falls mehrere Geräte der gleichen Art angeschlossen werden. Man könnte z.B. acht 24C16 anschließen. Was die E0 bis E2 sollen, habe ich noch NICHT verstanden. Das letzte Bit dient dazu, dem Gerät anzuzeigen, ob man schreiben oder lesen will. Noch zwei Fragen: 1. Zunächst mal ist man auf die Gerätezahl von 128 geschränkt, weil man ja nur 7 Bit zur Identifizierung hat. Damit könnte man ja noch leben. (Obwohl: Es sind sicher Fälle denkbar, wo diese Anzahl nicht reicht, für uns hier aber eher nicht) 2. Bei bestimmten Kombinationen von Geräten könnte es zu Uneindeutigkeiten kommen: Z.B. wenn ich einen 24C16 mit Bit1 bis Bit3 = 0 , dann wäre die TWI-Adresse 1010000x. Das ist aber auch die gleiche Adresse, wie wenn ich meinen 24C512 zum Adresse Bit1 bis Bit3 = 0 anschließe.(Das Bit4 ist, falls ich das Datenblatt Seite 10 richtig verstanden habe eh immer 0 bei diesem Baustein, weil die Device- Address des 24C512 immer den Aufbau 1 0 1 0 0 Bit2 Bit1 R/W hat. Falls ich die Device-Adressierung irgendwie falsch verstanden habe, wäre es nett, wenn mir das jemand mal richtig erklären könnte. Danke schon mal im Voraus und viele Grüße Karl
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.