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


von C++hris (Gast)


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!!

von Peter D. (peda)


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

von C++hris (Gast)


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...

von Peter D. (peda)


Lesenswert?


von C++hris (Gast)


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.

von Christopher G. (cbg)


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.

von Falk B. (falk)


Lesenswert?

@  C++hris (Gast)

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

Lise mal was über Netiquette.

UPDVC!

MFG
Falk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.