Forum: Mikrocontroller und Digitale Elektronik MEGA16 & MAX5418 per TWI Antwortet nicht


von Jörn A. (joerna)


Angehängte Dateien:

Lesenswert?

Hy

ich möchte mit meinem Mega16 per I2C (TWI) den digitalen Widerstand 
MAX5418 ansteuern. Leider gibt der mit kein "Acknowlegde" zurück!
Ich suche jetzt schon seid einem Tag aber finde keinen Fehler. Pull-Ups 
4,7k sind auf VCC an SCL und SDA.

Das Bauteil hat die Adresse (Bit7-Bit1): 0101000 + (BIT0 für WRITE) 0

TWBR=0x30;                       // Teiler
TWSR =(1<<TWPS1);
DDRC &= ~((1<<PC0) | (1<<PC1)); // Pullup noch mal in Atmel
PORTC |= (1<<PC0) | (1<<PC1);

SLAVEADR=0x28;

TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
TWDR = (SLAVEADR<<1) | TW_WRITE;
TWCR = (1<<TWINT) | (1<<TWEN);

Eigenltich sollte das SDA (obere) doch beim letzten SCL auch auf High 
gehen oder?


wenn ich SLAVEADR=0x00; schicke, passiert des so wie auf dem rechten 
Bild...

von Jörn A. (joerna)


Lesenswert?

kann mir keiner Helfen? Ich wunder mich auch wieso meine Spannung nicht 
bei 5V liegt! Aber habe externe Pull-Ups mit 5V und misst man auch aber 
am Atmel Ausgang sinds nie 5V und die internen Pull-Ups hab ich mit

DDRC &= ~((1<<PC0) | (1<<PC1));
PORTC |= (1<<PC0) | (1<<PC1);

aktiviert. Ist doch richtig so oder ? aber am Oszi ist die Spannung 
dazwischen immer 0V anstatt 5V!

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.