www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI am Mega8


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich wolte fragen ob mir vieleicht jemand beispielcode oder ähnliches
für den TWI bus schiken kann. Ich möchte über TWI einen PCF 8574 und
später vieleicht noch ein eeprom ansteuern. Aus dem Datenblatt des
Mega8 werd ich nicht besonders schlau. Hier im Forum hab ich zwar schon
einiges über den TWI (I2C) bus gefunden, aber leider keien
assemblerrotinen. Ein Link (http://www.avr-forum.com/avrsource.html) zu
einer seite hat auch nicht fungtioniert.Ich hoffe es ist nicht zu
aufwendig mir das zu erklären.

mfg

Max

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs mit den Datenblättern eigentlich gut hinbekommen. Allerdings
habe ich die Routinen Interrupt-basiert geschrieben, da ich sonst
zeitmäßig in meiner Hauptroutine nicht mehr hingekommen wäre - ist für
den Anfang vielleicht etwas starker Tobak. Die Beispielcodes aus den
Datenblättern kann man fast 1:1 übernehmen.
Wo genau hängts denn?

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo thkais

mir ist noch nicht genau was ein interrupt mit der übertragung per TWI
zutun hat. kannst du mir dein programm mal schiken?

mfg

Max

Autor: Jörg Maaßen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Max

hier ein Thread mit 2 Assembler Dateien in verschiedenen Anhängen
Weiß aber nicht ob die Funktionieren.

http://www.mikrocontroller.net/forum/read-1-42680.html#42680

Ich benutze Software I2C mit dem 90AT2313 nach der Appnote 300

Gruß Jörg

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg

Ich hab mir die beiden programme mal angesehen. Werd sie mal genauer
untersuchen. Danke. Das Appnote 300 hab ich auf der Atmel Seite nicht
gefunden.

mfg

Max

Autor: Jörg Maaßen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Max

Stimmt die Appnote 300 I2C-Master hat Atmel wohl runtergenommen.

Auf der Seite

http://www.avrfreaks.com/Tools/appnotes.php

kannst Du die noch runterladen. Dort ist auch ein Software I2C-Slave
Appnote 302.

Ein Fehlerquelle bei mir war am Anfang die Adresse der Bausteine.

Gruß Jörg

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Appnotes beziehen sich (wenn ich mich richtig erinnere) auf eine
Software Lösung. Dadurch kann man die Vorteile der Hardware nicht
nutzen, aber es funktioniert auch.
Die TWI-Schnittstelle kann entweder linear (z.B. als Subroutine)
verwendet werden, oder Interrupt-basiert.
Als Subroutine hast Du immer wieder Wartezyklen, die nicht weh tun,
wenn Du Zeit hast. Nach jedem Vorgang mußt Du auf die
Ausführungsbestätigung der TWI-Schnittstelle warten. In der
Softwarelösung mußt Du das gezwungenermaßen auch.
Interrupt-basiert heißt: Man löst einen TWI-Vorgang aus, kann sofort
ins Hauptprogramm zurück und die Schnittstelle löst einen Interrupt
aus, wenn sie fertig ist. Dann kann man entsprechend reagieren und
verliert sehr wenig Zeit in irgendwelchen Warteschleifen.
Ich muß mal schauen, inwiefern ich die TWI-Routinen aus meiner
Anwendung herausschälen kann.

Wenn Du die TWI linear benutzt, ist sie nicht schwerer zu
programmieren, als die Softwarelösung. Wichtig ist auch, daß Du das
I²C-Protokoll kennst und weißt, welche Informationen wann gesendet
werden müssen.
Ein PCF8574 ist relativ einfach anzusteuern, bei einem EEProm wirds
schon interessanter (repeated start condition bei Lesezugriff).
Welchen Controller benutzt Du?

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
arrgh - ich sehs gerade - Mega8. Tomaten auf den Augen.... ;)

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

@Jörg
Danke, habs gefunden.

@thkais
ich glaub, die Software lösung werd ich nehmen. dann kann ich die ganze
Geschichte auch mal auf eien anderen Controller portieren. Werde mich
jetzt mal in die Appnote vertiefen.

mfg

Max

Autor: Jörg Maaßen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Max

zu den Appnotes gibt es den Code auch als Datei. Falls Du den noch
brauchst kann ich Dir den (zumindest der AN300) schicken.

Gruß

Jörg

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

danke für das angebot, aber den code hats bei AVR-freaks auch gegeben.

mfg

Max

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.