Forum: Mikrocontroller und Digitale Elektronik Fragen zu TWI Master mit ATMEGA 16


von Peter Reither (Gast)


Lesenswert?

Hallo!

Ich möchte einen TWI / I2C Master mit einem ATMEGA 16 realisieren, der 
sich dann u.a. mit einem Arduino und ggf. weiteren Slaves verbindet.

Auf der AVR TWI Seite ist dazu eine Atmel Dokumentation verlinkt 
(http://www.atmel.com/Images/doc2565.pdf). Dort auf Seite 5 befindet 
sich die Angabe, dass die Pullupwiderstände "typischerweise 4,7k sind", 
abhängig von der Versorgungsspannung.

-> Frage 1: Wie genau berechnet sich denn hier der "richtige" Wert? In 
meinem Fall habe ich eine konstante 5V Stromquelle (USB). Der AVR hat 
doch auch interne Pullupwiderstände, reichen die hier nicht (oder kann 
ich sie nicht verwenden, wenn ich die Pins nicht als GPIO sondern für 
TWI benutze)?

-> Frage2: In der I2C Dokumentation habe ich gelesen, dass Master und 
Slave(s) eine gemeinsame Masse haben müssen. Ist das zwingend notwendig? 
In meinem Szenario habe ich einen Batteriebetriebenen Arduino, und einen 
ATMEGA, der an einem USB Netzteil hängt. Soll ich die Massen von beiden 
hier verbinden?

Vielen Dank im Voraus!

von Twi (Gast)


Lesenswert?

Peter Reither schrieb:
> Hallo!
>
> Ich möchte einen TWI / I2C Master mit einem ATMEGA 16 realisieren, der
> sich dann u.a. mit einem Arduino und ggf. weiteren Slaves verbindet.
>
> Auf der AVR TWI Seite ist dazu eine Atmel Dokumentation verlinkt
> (http://www.atmel.com/Images/doc2565.pdf). Dort auf Seite 5 befindet
> sich die Angabe, dass die Pullupwiderstände "typischerweise 4,7k sind",
> abhängig von der Versorgungsspannung.
>
> -> Frage 1: Wie genau berechnet sich denn hier der "richtige" Wert? In
> meinem Fall habe ich eine konstante 5V Stromquelle (USB). Der AVR hat
> doch auch interne Pullupwiderstände, reichen die hier nicht (oder kann
> ich sie nicht verwenden, wenn ich die Pins nicht als GPIO sondern für
> TWI benutze)?

Das kommt auf die Kapazität und damit auf die Länge des Kabels an. Die 
4.7k sind schon OK, Du kannst auch auf 3.2k oder 2.2k runter gehen.

> -> Frage2: In der I2C Dokumentation habe ich gelesen, dass Master und
> Slave(s) eine gemeinsame Masse haben müssen. Ist das zwingend notwendig?
> In meinem Szenario habe ich einen Batteriebetriebenen Arduino, und einen
> ATMEGA, der an einem USB Netzteil hängt. Soll ich die Massen von beiden
> hier verbinden?

Ja, Du solltest die Massen verbinden, sonst hängt der Bus in der Luft 
und macht Murks.

> Vielen Dank im Voraus!

von Wolfgang (Gast)


Lesenswert?

Peter Reither schrieb:
> -> Frage2: In der I2C Dokumentation habe ich gelesen, dass Master und
> Slave(s) eine gemeinsame Masse haben müssen. Ist das zwingend notwendig?

Ja, wie willst du sonst Daten über den Bus übertragen? Auf dem Bus 
werden die Signale als Spannungen zwischen Master und Slave übertragen. 
Und Spannungen werden immer zwischen zwei Punkten gemessen.

von Spess53 (Gast)


Lesenswert?

Hi

>-> Frage 1: Wie genau berechnet sich denn hier der "richtige" Wert?

S.55 in

http://www.nxp.com/documents/user_manual/UM10204.pdf

Den Rest solltest du dir auch mal zu Gemüte führen.

MfG Spess

von Peter Reither (Gast)


Lesenswert?

Vielen Dank für die vielen, schnellen und hilfreichen Antworten!

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.