Forum: Mikrocontroller und Digitale Elektronik 2 AVRs via I2C miteinander koppeln ?


von Peter Freund (Gast)


Lesenswert?

Hat das schonmal jemand gemacht ? Bei den Megas gibts ja das I2C/TWI an
Bord. Wie macht man denn da die adressierung der µCs ? Also wenn ich
von einem auf den anderen zugreifen will braucht man ja die Adresse.
Ich hab zwar mit Bascom ein wenig experimentiert bin aber noch zu
keinem Ergebnis gekommen. Ich weiß nicht wie man da eine Adresse
zuweist.

Bitte helft mir....

von Matthias (Gast)


Lesenswert?

Hi

die schreibt man jedem AVR ins TWAR. Kannst du also frei wählen.
Anschließend mußt du einfach in jedem INT vom TWI das TWSR auswerten
und das TWCR entsprechend setzen.

Matthias

von Peter Freund (Gast)


Lesenswert?

Gibt es eine Möglichkeit das in Bascom zu machen ?

Da gibt es ja die Befehle I2CSEND , I2CSTART , I2CSTOP , I2CRBYTE ,
I2CWBYTE. Ich hab aber bisher keinen Befehl gefunden wie man in Bascom
deinen Vorschlag umsetzen könnte.
Könntest du eventuell einen kurzen Abschnitt als Beispiel in Assembler
posten ?

von Matthias Weißer (Gast)


Lesenswert?

Hi

nur C kann ich anbieten. Das BASCOM Zeugs ist wahrscheinlich nur ein
Software-I2C-Master.

Matthias

von Peter Freund (Gast)


Lesenswert?

Ja, nachdem ich das in der Hilfe von Bascom gecheckt glaube ich das
auch. Von C hab ich zwar absolut keinen Plan aber wenn du so freundlich
wärst poste mal deinen Code. Vielleicht kann ich das ja in Assembler
umschreiben :(

MfG

von Markus Burrer (Gast)


Lesenswert?

Der AVRco hat ein Mininetzwerk mit Master/Slave oder Multi-Master
implementiert. Funzt 1a. Die Demo gibts bei www.e-lab.de, ne günstige
Mega8 Version bei www.embedit.de

von Wolfram Szentiks (Gast)


Lesenswert?

Hi,
da gibts von MCS ne neue Library, I2CSlave, damit können dann auch
Laien (wie ich) den AVR´s Slave Adressen zuweisen..

Gruß Wolfram

von Peter Freund (Gast)


Lesenswert?

Meinst du die kostenplichtige Library (5€) ?
Soweit ich weiss ist das eine Softwareimplentierung der TWI
Schnittstelle.
Ehrlich gesagt brauche ich das auch nicht mehr. Ich habe anhand des
Datasheetes meine eigenen TWI / I2C Routinen in Bascom geschrieben.
Da wird die Hardware-TWI der Mega Baureihen ausgenutzt. Funktioniert
wunderbar. Ich hatte am Anfang mit der Antwort von Matthias nix
anfangen können. Jetzt weiss ich wofür TWAR,TWBR,TWCR,TWDR und TWSR gut
ist.

TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN)   :)

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
Noch kein Account? Hier anmelden.