Forum: Mikrocontroller und Digitale Elektronik I²c mit Bascom und ATmega


von wolf4124 (Gast)


Lesenswert?

Hallo

Ich suche einen kleine Erläuterung, wie ich 3 serielle EEProms an den
ATmega per I²c anschliesen kann.
Welche Abschlußswiederstänfe?
Vorwiderstände?

Gruß

Wolf

von papa_of_t (Gast)


Lesenswert?

Guck mal da auf Seite 24, da hast Du ein gutes Beispiel.

http://c-control-support.de/downloads/BA004.pdf

Gruß Carsten

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

Und nochen Text.

von wolf4124 (Gast)


Lesenswert?

Danke für die Antworten

Ich habe allerdings mal Schaltpläne gesehen, da waren in die beiden
Leitungen je ein Widerstand in Reihe geschaltet. Auch in der
Spezifikation.
Einen anderen habe ich mal gesehen, da war die beiden mit Widerständen
auf VCC gelegt.
Leider ist in der Spezifikation keine Widerstandswerte.
Hat jemand Standartwerte für diese Widerstände.



Gruß

von Togger (Gast)


Angehängte Dateien:

Lesenswert?

Hi Wolf,
die Widerstände sind abhängig von der Buskapazität und der
Taktfrequenz.
Guck mal beig. Datenblatt/Figure 3.
Sitzt alles auf einer Platine (kurze Wege), dürfte sie kleiner 100pF
sein, ergo: Rl > 3,8kOhm.
Ich verwende zur Zeit unter Bascom und einem Bustakt von 200kHz
(I2CDelay = 5) 3k9, läuft prima.
Es könnten auch 10k sein, also irgendwas im Bereich 3,..k .. 10k.
Hab auch schonmal 2k2 gesehen.
Die Werte sind nicht kritisch.
Je ein Rl wird mit Vcc SDA bzw. SCL verbunden.
Beim Bustakt bis an die Grenzen (400kHZ) zu gehen bringt m.E. nicht
viel, weil Fehler auftreten können und beim Schreiben nach jedem Byte
eh 5ms (lt. DB 10ms) gewartet werden muß - die fallen mehr ins
Gewicht.
Ok, es gibt Leute, die nur lesen wollen ;-)
Die können natürlich versuchen das Letzte rauszukitzeln, aber dann
müssen sie sich auch die Zeit nehmen optimale Rl Werte zu finden.
Der Chip Select Code wird bei jedem I2C Chip über die E0..E2 Pins
bestimmt - siehe Datenblatt.
Bei manchen stehen nur E0 und E1 zur Vefügung (E2 ist da aber "NC",
also erst ins Datenblatt schauen.
Wichtig: zur Verbindung mit dem AVR kannst du nur die "SDA" und
"SCL" Pins nehmen, andere funktionieren nicht!!!

Dann unter Bascom:
' EEProm Einstellungen **** für AT16
Config Scl = Portc.0
Config Sda = Portc.1
Config I2cdelay = 5

Hoffe, das hilft dir weiter.

lg Ralf

von wolf4124 (Gast)


Lesenswert?

Hallo

Danke für die ausfürliche Antwort.
Du hast also in die SCL und SDA keine Widerstände vor die Bauteile
geschaltet.

GRuß


Bernhard

von Ratber (Gast)


Lesenswert?

Mach ich auch nicht.

Auf kleinen Längen wie Platinen und Steckbretter besteht der Bus bei
mir  nur aus den beiden Pullups (10K) und das wars.

Als Delay arbeite ich bei Bascom auf nem 16Mhz Controller mit 3 aber
solange man nicht geschwindigkeitsmäßig ans Limmit muß ist 5 kein akt.

von wolf4124 (Gast)


Lesenswert?

Hallo

Wenn du weitere Stecken überbrücken möchteste, was nimmst du?
Ich wollte noch einen Temp-Fühler mit 5m Länge anschliesen.
Was macht er bei den Delay 3/5 anders.

Gruß

von Ratber (Gast)


Lesenswert?

Der Delay bestimmt im Grunde den Takt.

Je Höher der Takt desto höher die Anforderungen an die Leitung.

Tempfühler x-mal die Sekunde abzufragen macht keinen sinn denn dafür
sind se viel zu träge also kann der Takt niedriger und die Leitung
länger werden.
I2C ist ja glücklicherweise an keinerlei Timings gebunden so das man
beliebig weit runtergehen kann.(Notfalls einen Takt pro Monat)

Allerdings sollte bei 5m die Leitung genauer Terminiert werden.

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.