Verwendung des TWI/I2C

OP Persönliche Seite #877237
Lesenswert?
• ▲
▼
Hallo,

leider konnte ich trotz Codebeispielen nicht herausfinden, ob es in 
irgendeiner Form von Entscheidung ist, wie ich die SDA und SDC pins 
konfigurieren muss um TWI zu verwenden. Im Datenblatt steht, dass man 
die internen Pullups verwenden kann um in manchen die Verwendung der 
externen zu vermeiden. Das heisst doch aber auch dass die 
Portkonfiguration von Entscheidung ist. Wie sollte ich unter verwendung 
von externen Pullups also diese Pins konfigurieren? Sollte an SDC nach 
dem Setzen des Taktes nicht ein entsprechender Takt zu messen sein? Oder 
messe ich falsch wenn ich zwischen GND und SDC messe?

Spaetestens mit
1
 TWCR = TWINT | TWSTA | TWEN;

sollte doch etwas zu messen sein, oder nicht?

Gruss,
Michael
OP Persönliche Seite #877253
Lesenswert?
• ▲
▼
oh man ich Idiot... kommt davon wenn man am Sonntag arbeitet.
OK dann die urspruengliche Frage: Wie isses mit der Portkonfiguration? 
Kann man da was falsch machen oder wird das vom entsprechenden Subsystem 
sowieso unterschrieben?

Hat TWI eigentlich vorgeschriebene Spannungen oder kann man das je nach 
Schaltung selber festlegen (mal 5V mal 3.3V...?)
Gast #877256
Lesenswert?
• ▲
▼
Clock ist nur vorhanden Wenn auch Daten übertragen werden. Idle Zustand 
beider Bus-Leitungen ist High.
Port Konfiguration ist bis auf Pull Up/Down egal. PORTxn Register muss 
halt gesetzt/nicht gesetzt sein.

Gruß
Gast #877270
Lesenswert?
• ▲
▼
Michael G. wrote:
> Hat TWI eigentlich vorgeschriebene Spannungen oder kann man das je nach
> Schaltung selber festlegen (mal 5V mal 3.3V...?)

Ist egal, müssen nur halt alle Busteilnehmer mit der Spannung betrieben 
werden ;) Ansonsten hab ich hier auch schon mal eine Umsetzung 5V<->3.3V 
für TWI gesehen (suche benutzen) wenn unterschiedliche Busteilnehmer zum 
Einsatz kommen.

PS: Wenn externe Pullups vorhanden sind, dürfen die internen natürlich 
nicht gestzt werden ;)
Mit den Internen sollte der Takt auch nicht zu hoch sein, siehe 
Datenblatt. Verwende selbst zum testen immer 10kHz damit gehts super :)
#877279
Lesenswert?
• ▲
▼
Michael G. wrote:

> Das mal wieder typisch... anstatt einfach mal ne klare Antwort (hier:
> ja, nein) zu geben wird sich nur wieder profiliert und der Fragende als
> Idiot hingestellt.

Ich halte es bei solchen Fragestellungen für zielführender, auf die 
Stelle hinzuweisen wo man sowas findet. Dann brauchst du das nächste Mal 
nicht mehr zu fragen.

Das hat nichts mit "Idiot" zu tun. Sorry, wenn das so rübergekommen sein 
sollte. Wenn ich mich damit freilich als "wieder so'n scheiss Lehrer" 
profiliert haben sollte - damit kann ich leben.
Gast #877281
Lesenswert?
• ▲
▼
Michael G. wrote:
> 10KHz kannste nicht konfigurieren bei nem Systemtakt von 8MHz, das fasst
> das Register nicht.

Naja, hängt vom TWSR Register ab, da kannst den Prescaler wählen...
Es sollten auch mehr als 10kHz gehen, aber wenn ich mich recht zurück 
erinnere ging es mit den internen pullups nicht bis 100kHz hoch, war 
irgendwo vorher Schluss.
#877289
Lesenswert?
• ▲
▼
Im Datasheet der AVRs gibt es unter "I/O Ports" ein Kapitel "Alternate 
Port Functions". Darin werden zuerst eine Reihe von internen 
Portsteuersignalen beschrieben wie PUOE,PVOE. Weiter hinten sind dann 
Tabellen in denen für jedes Portbit steht, welche dieser Steuersignale 
von welchem Steuerbit abhängig sind.

Mega8: Seiten 56f und 62 in Datasheet Revision 08/07.
OP Persönliche Seite #877291
Lesenswert?
• ▲
▼
"These pins interface the AVR TWI with the rest of the MCU system. The 
output drivers contain a slew-rate limiter in order to conform to the 
TWI specification. The input stages contain a spike suppression unit 
removing spikes shorter than 50 ns. Note that the internal pull-ups in 
the AVR pads can be enabled by setting the PORT bits corresponding to 
the SCL and SDA pins, as explained in the I/O Port section. The internal 
pull-ups can in
some systems eliminate the need for external ones."

Das ist alles was ich gefunden habe, da steht aber nichts von der 
Richtung.
Gast #877292
Lesenswert?
• ▲
▼
So schwer zu sagen, hängt davon ab was noch so alles am Bus hängt.
Auf jeden Fall mal mit dem Scope schauen, und  vor allem von unten an 
die gewünschte Taktrate heran arbeiten :)

@ Andreas Kaiser (a-k)
Wo steht das den z.B. für den mega8? Habe das aus Interesse gerade mal 
gesucht und bin beim "drüber fliegen" nicht drüber  gestolpert.
--> hat sich erledigt, war zu langsam. Danke

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