www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8: Beliebige Pins für eigenes Software I2C


Autor: C++hris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen eigenen I2C Software Slave in C geschrieben. Dieser 
funktioniert so weit problemlos.
Der Vorteil, ich bin nicht an die TWI Pins gebunden, sondern kann zwei 
beliebige I/O Pins für das I2C nutzen.

Beim Atmega32 läuft das auch wie geplant und ohne Probleme auf jedem 
digitalen Pin, nicht jedoch beim Amtega8.
Seltsamerweise funktioniert das selbst implementierte I2C nur bei den 
TWI Pins des Atmega8. Bei allen anderen I/O Pins nicht.

Leider sind die TWI Pins bei den ADCs. Ich benötige alle sechs ADCs und 
kann daher nicht doppelt belegen.

Ist jemandem etwas über Eigenheiten der Atmega8 I/O Pins gekannt?
Gibt es etwas, dass zu beachten wäre?
Bitte um Ratschläge und Hilfe

Herzlichen Dank!!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeile 42


Ich hätte eigentlich gedacht, daß man für SW-Slave-I2C nur 
interruptfähige Pins benutzen kann.
Also für große Pinauswahl AVRs mit PCINT (ATmega324 oder 88).
Ansonsten muß der Master wirklich sehr schnarchlahm senden.


Peter

Autor: C++hris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein I2C verwendet keinen Interrupt.
Der Master läuft auch schon verdammt langsam. Noch langsamer als 
eigentlich von der Spezifikation vorgesehen.(9600 bit/s) Das macht aber 
nichts, weil nicht so viele Daten übertragen werden müssen

Das löst mein Problem auch nicht...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: C++hris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter: Entschuldigung, aber was soll mir das jetzt sagen?

Kenne ich mich so schlecht aus und die Lösung des Problems ist 
eigentlich ganz einfach?
Im Datenblatt des Atmega8 und Atmega32 stehen bei den digitalen Pins 
wortwörtliche die gleichen Beschreibungen.

Das gibt es doch nicht, dass beim Amtega32 das I2C auf jedem Pin 
funktioniert und beim Amtega8 geht gar nichts.
Es ist wirklich wichtig für mich und ich habe keine Idee woran es liegt.
Bitte um Hilfe, danke.

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir wissen auch nicht woran es liegt, wenn du keinen Sourcecode postest. 
Schaltplan kann auch nicht schaden, vielleicht hast du da was verbockt.
Wenn du uns diese Informationen weiterhin nicht gibts, dann bleibt es 
beim Fehler in Zeile 42.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  C++hris (Gast)

>@Peter: Entschuldigung, aber was soll mir das jetzt sagen?

Lise mal was über Netiquette.

UPDVC!

MFG
Falk

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.