Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Christoph, > > Du verstehst leider eine Kleinigkeit falsch. Und Wille hat es etwas unglücklich erklärt. (nicht böse gemeint) > > Ersteinmal etwas Grundlagen: > Das Adressbyte, welches mit der Start-Bedingung gesendet wird hat 8 Bit. > Nennen wir diese B7 bis B0. B7 ist dabei das MSB und wird zuerst gesendet. B0 ist das LSB > und wird folglich zuletzt gesendet. > Diese Byteadresse besteht aus meist aus drei Teilen. > - Einen festen der bausteinspezifisch ist. Dies sind immer die höchswertigen Bits. > Bei den meisten Bausteinen besteht dieser Teil aus 4 Bit. (z.B. EEProms bis 64kBit, PCF8574 etc.) > Bei manchen kann dieser auch aus 6 oder gar nur einem Bit bestehen. (Oder bei µController > mit Hardware I²C, welche als Slave fungieren können, ist kein Bit fest.) > - Das nächste wäre ein z.B. durch Adresspins benutzerdefinierbarer Teil. > Bei EEProms bis 64kBit und z.B. PCF8574-Portexpander sind dies 3Bit. > Bei EEProms ab 128kBit bis 512kBit sind es nur zwei Bit. > - Der dritte Teil gehört eigentlich nicht zur Adresse selbst. Das Bit0 bestimmt nur ob gelesen oder > geschrieben werden soll. > > Es gibt beim I²C-Bus, wenn man vom Extended Mode absieht, lediglich 128 mögliche Adressen. > > Nun zu Deinem Problem mit den drei Adressleitungen: > Diese Adressleitungen können entweder mit GND oder der Versorgung(5V) verbunden werden. > Ist ein Pin mit GND verbunden, so ist es logisch 0=low, ist dieser mit 5V verbunden, so ist dies > logisch 1=high. > Es gibt hierbei <b>8</b> verschiedene Kombinationen die Adressleitungen entweder mit > GND oder 5V zu verbinden.(3Bit = 2³ = 8) > Du bildest sozusagen eine Binärzahl bestehend aus 3 Bit aus der Adressleitung. > Wenn alle Pins mit GND verbunden sind, so sähe das so aus: > <code>A2 A1 A0 > GND GND GND > 0 0 0 = 0b000 = 0</code> > > Sind z.B. A2 mit GND und A1,A0 mit 5V verbunden: > <code>A2 A1 A0 > GND 5V 5V > 0 1 1 = 0b011 = 3</code> > > Wenn Du jetzt selbst per i2c.c2 ohne eeprom.c2 das EEProm ansprechen möchtest, > so muß Du die Adresse selbst zusammensetzen. Dafür benötigst Du das DAtenblatt des EEProms > für den festen Teil der Adresse. > Nehmen wir einmal das letzte Beispiel an: > Zum Schreiben müsstest Du folgendes Byte senden: > 1 0 1 0 A2 A1 A0 R/W (=Aufbau des Adressbytes) > 0b10100110 = 0xA6 = 166 > > Zum Lesen sähe das Byte so aus: > 0b10100111 = 0xA7 = 167 > Hier wird das R/W-Bit gesetzt. > > Dies alles mußt Du aber nicht wissen. > Für Dich reicht es, die Sub-Adresse aus A0 bis A2 entsprechend dem Bitmuster zu bilden > und im "Highlevel-Treiber" anzugeben. > Bei der Angabe der Subadresse mußt Du hier nicht beachten, ob Du lesen oder schreiben willst. > Beim letzten Beispiel wäre die Subadresse 3. Wenn es Dir einfacher fällt, kannst Du diese > auch binär angeben: 0b011. (A2 A1 A0) > > Bei all meinen Modulen wird immer nur die Subadresse, welche aus den Adress-Jumpern > gebildet wird, angegeben. > Adresse 0 im entsprechenden C2-Modul ist hierbei immer die unterste mögliche Adresse für > einen I²C-Baustein. Diese hat i.d.R. nichts direkt mit der Busadresse selbst zu tun. > > Ich glaube jetzt wird es doch einmal Zeit, daß ich den schon seit längeren für CC2Net.de geplanten > I²C-Bereich angehe. Jedoch fehlt mir dazu leider die Zeit. Denn vom geplanten Umfang her wäre > das schon ein halbes Buch. ;-) > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB