Hallo Leute, Ich möchte ein 4 fach dig. Pot. (DS1844) mit einem ATmega8 mit intern 1MHz ansteuern, dazu benutze ich die I2C Library von Peter Fleury. SCL ist bei mir PD7, SDA an PD6. Ich hab alle Device Pins des DS1844 auf Masse, dh. mein Controll-Byte ist 0x50, mei programm sieht folgendermaßen aus: #include <avr/io.h> #include "i2cmaster.h" #define Dev 0x50 // device address of DS1844 int main(void) { unsigned char ret; DDRB = 0xff; PORTB = 0x00; i2c_init(); ret = i2c_start(Dev+I2C_WRITE); if ( ret ) { i2c_stop(); PORTB= ret; //Fehler LED leuchtet }else { i2c_write(0x09); //Pot. 0 i2c_write(0x49); //Pot. 1 i2c_write(0x89); //Pot. 2 i2c_write(0xc9); //Pot. 3 i2c_stop(); } } Wenn ich mir die Signale am Oszi anschaue, würd ich sagen der Clock passt, aber anstatt bei SDA 0x50 (0101 0000) zu haben, wird mir 0100 0010 angezeigt? Ich verwende das PonyProg und einen Adapter an LPT1. Wäre super wenn mir jemand helfen kann
Hallo, ich habe noch nie die Signale nachgemessen. Bisher waren alle I2C-Bausteine relativ einfach anzusteuern. Ich nehme an das Du: - das Timing in der Bilbliothek angepasst hast - die PINs richtig konfiguriert hast - Pull Up Widerstände angeschlossen hast Die Bilblipthek würde ich ausschliessen, die ist vielfach getestet. PD6 und PD7 sind beim Mega 8 der Analog-Komparator. Ich hatte mal einen Effekt mit einem I2C-Display, das ab und zu nach dem Start mal Mist anzeigte. Ein Pin lag an dem PWM-Ausgang des Controllers. Dann habe ich den PWM Ausgang während der Initialisierung explizit deaktiviert, und danach ist der Fehler nie wieder aufgetreten. Vielleicht mal den Komparator explizit abschalten? Ansonsten Ratlosigkeit... Gruss Andreas
sende mal statt 0x50 ein 0x00 oder 0xff und gucke mal ob das was du am Oszi siehst überhaupt was mit dem zu tun hat was du senden willst. Ich arbeite leider nur in Assembler, aber ich würde da erst mal prüfen ob das Register an das ich den Wert übergebe überhaupt das ist welches tatsächlich rausgeschrieben wird.
... Danke, hab die Pins gewechselt und jetzt klappts ... sagts du uns, wohin? Lag's am Analog Comarator? Hatte ein Abschalten des AC's nichts geholfen? Danke Axel
Ich hab auf die Pins PD6 und PD7 gewechselt. Abschalen des AC's hab ich nicht probiert. Gruß M
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.