tda8444 i2c programmierung

OP #328171
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);
}
}
Gast #328173
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.