Forum: Mikrocontroller und Digitale Elektronik tda8444 i2c programmierung


von Alex P. (dynamo)


Lesenswert?

Hallo,

ich möchte einen tda8444 mit dem atmega32 ansteuern/auslesen. kennt
jemand links, wo das beschrieben ist? möchte das mit C machen.

Danke

dnm

von Hartmut Gröger (Gast)


Lesenswert?

Hi

Versuchs mal bei CSD-electronics.

MfG HG

von Hartmut Gröger (Gast)


Lesenswert?

Hi

Entschuldigung. War der falsche Beitrag.

MfG HG

von Alex P. (dynamo)


Lesenswert?

hat mir jetz nich so viel geholfen,... danke trotzdem
schon jemand erfahrung mit einem einfachen i2c program, würde gerne mal
ein einfaches programbeispiel sehen.

dnm

von Thomas Schmidt (Gast)


Lesenswert?


von Alex P. (dynamo)


Lesenswert?

hallo, ich bins nochmal, komme jetzt erst richtig zum tda, weil jetzt
die hardware erst fertig ist. der link hat mir wenig geholfen, weil ich
mich mit assembler nicht auskenne. hab mal ein paar verschiedene
varianten gesehen, aber ich bekomme nich mal den scl ausgang zum
schwingen. ich arbeite mit einem atmega32 mit 8Mhz internen quarz. was
gesendet wird, ist mir erstmal egal. würd nur den scl gern mal am oszi
schwingen sehen. kann mir einer sagen was ich (alles) falsch mache....

muß ich den scl nochmal extra auf ausgang schalten?

int main(void)
{
  //Pin0/1 von PortC auf Ausgang
  DDRC |= (1<<0);
  DDRC |= (1<<1);
TWBR =0x20; //=32
TWSR |= (1<<TWPS1);
TWSR |= (1<<TWPS0);

while(1)
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);  //send start condition
while (!(TWCR & (1<<TWINT)));   //warte bis flag gesetzt (ACC)
//if ((TWSR & 0xF8) != START)
//ERROR();
TWDR = 0b01001110;
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
//if ((TWSR & 0xF8) != MT_SLA_ACK)
//ERROR();
TWDR = 0b00001001;
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
//if ((TWSR & 0xF8) != MT_DATA_ACK)
//ERROR();
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
}

von Alex P. (dynamo)


Lesenswert?

bitte helft mir!
find einfach nich das richtige

dnm

von Thomas Schmidt (Gast)


Lesenswert?

Wenn ich das richtig verstehe, brauchst Du nicht Informationen zu I2C
oder gar dem TDA8444, sondern Hilfe, wie Du die IOs von dem Atmel
schaltest. Die wirst Du unter dem Betreff aber nicht finden.

Kannst Du die Pins ein und aus schalten, weiß ich, wie es geht.
Schließe ein 7407 Logikgatter mit zwei Pullup-Widerständen an, um eine
Open-Collector Verbindung zu bekommen. Dann schaltest Du die beiden
betreffenden Pins am Atmel so lange ein und aus, bis der TDA
eingestellt ist.
Zur Kontrolle kannst Du immer zwei Eingänge vom 7407 nehmen. Ein
Ausgang für den I2C-Bus, der andere für eine LED.

Thomas

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.