Hallo, ich bin neu hier im Forum und habe da mal eine Frage. Meine Gruppe und ich bauen eine Platinenfräse mit Geber. Wir benutzen einen Atmega128 für die Steuerung der Fräse und der Berechnung der Gerberfiles und einen Atmega8 der über den I²C Bus mit den Inkrementalgebern für die X, Y und Z-Achse verbunden ist. Das Problem was ich habe, ist wie man Software technisch die Adresse für den Bus einstellt. Wir benutzen nicht die Pins (27 & 28 Atmega8) die dafür vorgesehen sind, sondern PB4 und PB5 (Pin 18 & 19). Meine Frage ist jetzt, wie man die Adresse Software technisch vergibt und kann man die restlichen Eingänge von PortB anderweitig nutzen? Vielen Dank schonmal für eure Antworten.
Die Frage ist doch nicht ernst gemeint, oder? Wie sollen wir bei einer unbekannten Software sagen, auf welche Weise die I2C Adresse eingestellt wird oder auf welche Weise die dafür in der Software vorgesehen Pins auf eine andere Pins umgestellt werden können?
Wir benutzen avr Code vision. Das Problem liegt darin das wir nicht wissen wie wir den i²c bus software technisch programmieren sollen. die hardware i²c bus variante können wir leider nicht nutzen. gibt es vielleicht irgendwelche funktionen die wir benutzen können. um genau zu sein benötigen wir auch nur die lese funktion um drehgeber daten vom atmega 8 zum atmega 128 zu übertragen.
G. C. schrieb: > Wir benutzen avr Code vision. Das Problem liegt darin das wir nicht > wissen wie wir den i²c bus software technisch programmieren sollen. Ihr baut ne Fräse die Dinge per I2C abfragt aber habt keinen Plan von I2C? Sauber. Denn sonst wüsstet ihr wie man dort "eine Adresse einstellt". Was ihr wollt ist doch ein Gerät adressieren. Also schmeist google an, setzt euch auf den Hosenboden und schaut euch an wie I2C eigentlich funktioniert. Das ist so trivial und simpel das hättet ihr in der Zeit machen können in der ihr hier einen Thread aufmacht und um libs bettelt. Und btw. auch die I2C-HW möchte dass man I2C verstanden hat. Denn von alleine adressiert die auch nix. gruß cyblord
Hi
>die hardware i²c bus variante können wir leider nicht nutzen.
Ist jetzt vom I2C-Master oder I2C-Slave die Rede?
MfG spess
Spess53 schrieb: > Hi > >>die hardware i²c bus variante können wir leider nicht nutzen. > > Ist jetzt vom I2C-Master oder I2C-Slave die Rede? > > MfG spess > Atmega8 der über den I²C Bus mit den > Inkrementalgebern für die X, Y und Z-Achse verbunden ist. Hört sich für mich nach Master an. Obwohl die Überschrift für das geschilderte Problem reichlich sinnfrei ist. Aber hier wurde wohl der I2C Bus nichtmal im Ansatz verstanden. Die ganze Terminologie ist da durcheinander. gruß cyblord
Man muss Dir, G.C. unklare Formulierung vorwerfen. Dein erstes Posting
las sich so, als wenn bereits eine Software existiert:
>Wir benutzen nicht die Pins (27 & 28 Atmega8) die dafür vorgesehen sind,
wobei, wenn das nicht von einer schon vorhanden Software so vorgesehen
ist, offen bliebe, durch wen oder was das so vorgesehen ist.
Falls das nun einfach in eurem Belieben steht, dann müsstet ihr
jedenfalls wissen wie man überhaupt Ports einliest, in Variablen
speichert und wieder ausgibt.
Wie man nun im zweiten Post liest, wollt ihr überhaupt erst eine
Software schreiben und habt von nichts ne Ahnung. Weder von einfachem
Transport von Daten von Porst in Variablen in Peripherie-Register noch
von I2C. Das aber sind einfach Grundlagen.
Das ganze ist also eine trojanische Frage. Sie kommt daher als: "Wie
ändert man ein Detail?" und lautet eigentlich: "Wie macht man das
Ganze?".
Weisst Du wie sowas ankotzt?
Hi
>Hört sich für mich nach Master an.
Aber am Master stellt man aber keine Adresse oder bei zwei Bit
eigentlich Subadresse ein. Aber der Post ist eh mehr etwas für die
Glaskugelfraktion.
MfG Spess
Spess53 schrieb: > Hi > >>Hört sich für mich nach Master an. > > Aber am Master stellt man aber keine Adresse oder bei zwei Bit > eigentlich Subadresse ein. Aber der Post ist eh mehr etwas für die > Glaskugelfraktion. > > MfG Spess Exakt. Die eigentliche Frage ist nämlich: > Das Problem was ich habe, ist wie man Software technisch die Adresse für > den Bus einstellt. Und was soll man zu so einem Gestammel sagen? gruß cyblord
Wie man Ports einliest oder definiert weiss ich ja, nur komme ich nicht klar mit der Adressierung vom Bus (Slave). Im I-Net habe ich geschaut, teilweise auch verstanden wie das Funktioniert, nur halt mit der Softwareadressierung nicht.
Will er jetzt die Adresse des Inkrementalgebers wissen, oder was? @ G.C. Warum ist denn überhaupt der HW-TWI belegt? Und wie wollt Ihr die Daten vom mega8 zum mega128 versenden? Welche Schnittstelle habt Ihr euch da ausgedacht? I2C ist eigentlich nicht schwer zu verstehen. Schaut euch mal das Protokoll zum I2C des Inkrementalgebers an. Da sollte schon alles drin beschrieben sein. Und genau da steht auch die I2C Adresse des Slaves(Inkrementalgeber) drin. Steffen
Ich glaube ja nicht, das Du die Frage beantworten kannst, aber erkläre doch mal im Detail und im I2C Kontext was Du an der Adressierung nicht verstehst.
Die Kommunikation via I²C ähnelt dem Unterricht in einer gut "dressierten" Klasse. Der Lehrer (Master) ruft einen Schüler auf. Der Schüler (Slave) antwortet oder ist nicht da. Keiner Quatscht dazwischen (Störung)! Keiner Quatscht ungefragt! Damit das Ganze aber funktionieren kann, sind natürlich folgende, einfache Bedingungen zu erfüllen: 1. Der Lehrer muss die Namen aller seiner Schüler kennen. Natürlich. 2. Es sollte jeder Schüler wissen, wie sein Name lautet. Natürlich. 3. Es gibt keinen Namenlosen in der Klasse. 4. Es gibt keine zwei Peter in der Klasse. Meist ist nach dem obigen Bild der Computer der Master. Das heißt: Er muss wissen wer im System ist. Die angesprochenen Geräte müssen eindeutige Adressen haben. Ersteres wird normalerweise Programmiert, letzteres ist meist in der Hardware (Jumper, Lötbrücken) verankert. Manche Chips haben auch vom Hersteller vorgegebene Adressen.
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.