mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT89C2051 I2C Timing


Autor: Benshee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich Wollte mal ein paar anfängerfragen stellen.

Würde das gerne in Assembler 8051 programmieren.

Muss ich dem I2C sagen das ich ihn im normalen Geschwindigkeitsmodus bis 
100kBit/s laufen lassen will? Oder macht der das schon gleich, und kann 
dann gleich meine adresse senden und dann die Daten zum Slave.

Im Datenblatt steht ja bis zu 100kBit/s, das heist also das ich irgend 
eine langsammere Geschwindigkeit nehmen kann.

Wenn ich zwei mal eine 1 übertragen will, muss ich dann die SDA Leitung 
von 0 auf 1 und dann wieder 0 und 1 setzten oder kann ich sie 1 lassen 
und dann einfach SCL 01010101 usw. setzen??

Wie schlimm ist es wenn die LOW und high Signale  von SCL oder SDA 
verschieden lang sind aber immernoch es so im Rahmen bleibt das SDA 1 
dann SCL 010, also das erst das SDA verändert wird und dann SCL 010 und 
dann wieder SDA verändert wird und dann wieder SCL 010.

Muss dieses Acknowledge-Bit sofort abgefragt werden oder kann es auch 
paar ms dauern bis ich SCL auf 1 setze und dann mit meinem 
Mikrocontroller schaue ob der Slave die SDA Leitung runter zieht? Wie 
lange zieht er es runter ??

Wenn der Slave meinem Master was sendet, wie kann ich die 001101 an 
einem Pin dann eigentlich in ein 8-Bit register schreiben ?? muss ich 
nach anzahl der empfangenen Bits das Register mit AND oder OR Logisch 
ändern ??

Vielen Dank , English ist nicht gerade meine Stärke

Autor: E. B. (roquema) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seit wann hat der 89C2051 ein integriertes I2C-Interface?
Das musst du schon per Software selbstmachen. Da kannst du das Timing 
dann selbst bestimmen.
Hier kannst du dir einen Code generieren.
http://www.erikbuchmann.de  --> Codegenerator

Hier eine Atmel-AppNote zum I2C Bus:
http://www.atmel.com/dyn/resources/prod_documents/...

Etwas technisches Englisch solltest du dir aneignen, sonst kommst du 
nicht weit...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.