Hallo, ich habe schon bei verschiedenen AVR's den I2C zum laufen bekommen, benutze AVRCodeVision, also eigentlich alles kein Problem. Nun habe ich eine Platine geätzt und möchte für SDA PORTA.2 und für SCL PORTA.3 benutzen. Ich habe also folgendes geschrieben/generiert: // I2C Bus functions #asm .equ __i2c_port=0x1b .equ __sda_bit=2 .equ __scl_bit=3 #endasm #include <i2c.h> Danach kommt natürlich noch i2c_init() usw. Wenn ich mit dem Skope an diesen beiden Pins messe, sehe ich auch die Daten flitzen, jedoch funktioniert meine angeschlossene PCF8583 Uhr nicht. Also habe ich an die beiden Leitungen ein Testboard angeklemmt, auf dem ein I/O-Expander (PCF8574) sitzt. Dieser funktioniert 100%, kenne ich aus anderen Projekten. Aber auch ihn kann ich nicht ansteuern, nicht mal, wenn ich die ganze Software rausschmeiße und nur den I2C zum laufen bekommen will. Kann man etwa nicht alle beliebigen Pins des Mega16 für I2C benutzen?? Wäre sehr dankbar für eine Antwort! Gruß Dirk
Keine Ahnung, wie Codevision das macht. Wenn allerdings der interne I2C genutzt werden soll (was ich stark vermute), dann geht das nur mit PD0 = SCL und PD1 = SDA. Gruß, Marcus
Sorry, ist natürlich PC0 = SCL und PC1 = SDA. Ich hatte beim Mega64 geschaut ... Gruß, Marcus
Vielen Dank! Aber ich habe es irgendwie anders in Erinnerung. Hat das jemand mal mit Codevision gemacht? Dirk
"ach kommt, so doof ist die frage doch nun auch nicht... :-(" Wie kommst Du darauf, daß alle hier Codevision nehmen ? Ich benutze WINAVR. Und den I2C-Kram schreibe ich mir selber, dann weiß ich wie er funktioniert und kann auch Fehler suchen. Wenns aber schonmal lief, dann tippe ich auf zu hohe Quarzfrequenz. Die alten PCF-Dinger nehmen das mit den <=100kHz sehr genau. Peter
Ich mache das mit CodeVision, das geht ohne Problem. Ich steuere damit 8574 als auch einen Mega32 mit Slave I2C Funktion an. Peter
Hallo Peter, nimmst du den TWI, der fest mit zwei Pins verbunden ist, oder einfach I2C, und wählst die Pins selbst? Danke Dirk
Hallo Dirk, ich habe mit einem Mega8 schon auf verschiedenen Ports den I2C Bus betrieben. Funktionierte mit den CodeVision Compiler immer. Probleme kamen, wenn ich keine PullUps an den Signalleitungen hatte. @Peter: Ich versuche gerade mit einem Mega8 als Master mehrere Tiny2313 als Slave über den I2C Bus anzusteuern. Du scheinst soetwas schon gemacht zu haben. Bei mir klappt es nicht, bzw. ich weiss nicht wie ich den Tiny mit CodeVision Funktionen als Slave betreiben kann. Du schreibst etwas von SLAVE I2C Funktionen, sind das eigenen Funktionen von dir oder fertige wie etwa i2c_read()? Ich finde in den headdern nicht passendes dazu. Danke Nolan.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.