Fragen zu TWI Master mit ATMEGA 16

Gast #3078752
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!
Gast #3078770
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!
Gast #3078791
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren