www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA8 --> I2C


Autor: Sven Scholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

benötige ich für die korrekte Funktion des I2C-Busses eine externe 
Taktquelle oder funktioniert die Kommunikation hierüber auch lediglich 
mit dem internen Takt (4MHz) des ATMEGA8?

Vielen DANK.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I²C ist ein synchroner Bus. Der Master gibt den Übertragungstakt aus. 
Was willst Du da mit einer "externen Taktquelle"?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst keinen Quarz oder dergl. wenn du auf das "Quarzproblem" beim 
USART anspielst.

Autor: Carbolo Crb (carbolo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal hier nach am besten:

http://www.mikrocontroller.net/articles/I2C

Autor: Sven Scholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, also ich betreibe meinen ATMEGA8 jetzt mit 8MHz internen Takt.
Ich gehe jetzt mal davon aus, dass das BASCOM AVR jetzt für mich regelt.

Ich habe
Config Scl = Portc.5
Config Sda = Portc.4

definiert.

Was mir jetzt auffällt, dass Portd.1 die ganze Zeit auf high ist. Meine 
angeschlossene LED leuchtet die ganze Zeit. Muss ich unter BASCOM noch 
irgendwie sagen, dass ich UART nicht verwenden möchte?

In meiner Hauptroutine steht z.B.

Toggle Portd.1
Wait 1

doch die LED brennt und brennt und brennt...

Autor: Carbolo Crb (carbolo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BASCOM?????   ---- ich bin weg :-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die LED wirklich brennt, dann würd ich mal über den Vorwiderstand 
nachdenken!!

Autor: Sven Scholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut habe den Fehler. In einem Unterprogramm stand eine Print-Anweisung. 
BASCOM schaltet dann irgendwie TXD und RXD scharf, sodass PinD.1 auf 
high geht.

Da muss man erst einmal draufkommen.

Habe an meinem I2C eine RTC (PCF8583) diese kann ich auslesen, aber 
nicht auf eine gewünschte Uhrzeit bringen.

Ein einfacher settime()-Aufruf führt immer zum Ergebnis, dass die Uhr 
bzw. dwer Baustein von 00:00 Uhr losläuft. Mhh, eigenartig.
Die Schaltung muss richtig sein, denn auslesen geht ja.

Wenn noch jemand eine Idee für mich hat...

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.