mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analog zu I²C haut nicht hin


Autor: Alex Fxxxx (electronicfox)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Eigentlich hab ich es mir einfacher vorgestellt, aber war es in diesem 
Sinn wieder einmal nicht. Nachdem ich schon einiges mit dem I²C-Bus 
gemacht habe ( IR-Multimediastation, Klangregler, Videoswitches, etc ) 
dachte ich mir ich baue mir für alte TV-Geräte einen ADC der mit Hilfe 
eines I²C-Buses einen Soundcontroller ansteuert. Nachdem es mit dem 
TDA8425 nicht funktionierte, probierte ich probehalber einen TDA8444. 
Aber aus den DAC-Ausgängen kam nichts. Am I²C-Bus herscht prima Verkehr 
und am Port-B des ATMEGA32 sieht man das der ADC genau das anzeigt, was 
ich will. Nur die ICs am I²C-Bus kapieren nichts oder kriegen es nicht 
mit. Ich hatte auch schon versucht die Warteschleifen zu verlängern und 
sogar die Taktfrequenz gedrosselt ( von 4 MHz aus 1MHz ) und trotzdem 
geht nichts weiter. Ich vermute den Fehler in meiner ASM-File, da ein 
ADC-teil hinzugekommen ist. Direkte Ansteuerungen mit einem anderen 
Source ohne ADC ließ einen Bauteildefekt auschließen.

Bedanke mich für jede Hilfe!

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auch wenn es Dir nicht direkt weiterhilft, der TDA8425 ist eigentlich 
einer meiner Lieblinge und hat noch nie Probleme gemacht beim I2C am AVR 
gemacht.

Ich schaue mir Deine I2C-Routinen mal an, aber... heute ist ja auch noch 
Sylvester. ;-)

Gruß aus Berlin
Michael

Autor: Alex Fxxxx (electronicfox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es jetzt so gemacht wie unten und jetzt hauts hin mit TDA8444 und 
TDA8425:

IIC:
mov vol, speca
ldi  i2cadr,64
rcall  i2c_start
ldi  i2cdata,$00
rcall  i2c_do_transfer
mov  i2cdata,vol
rcall  i2c_do_transfer
rcall  i2c_stop
rcall WARTE
ldi  i2cadr,64
rcall  i2c_start
ldi  i2cdata,$01
rcall  i2c_do_transfer
mov  i2cdata,vol
rcall  i2c_do_transfer
rcall  i2c_stop
rcall WARTE
ldi  i2cadr,64
rcall  i2c_start
ldi  i2cdata,$02
rcall  i2c_do_transfer
mov  i2cdata,vol
rcall  i2c_do_transfer
rcall  i2c_stop
rcall WARTE

ret



Ist zwar jetzt umständlich, aber im 2010 habe ich ganze 365 Tage Zeit 
dafür, um den eigentlichen Fehler zu finden gg!

Autor: Michael U. (amiga)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

fein, wenn es geht.

Ich habe mal ein altes Projekt von mir rangehangen, benutzt Hardware-I2C 
auf einem Mega16 und u.a. den TDA8425.
Vielleicht nutzt es Dir irgendwas.

Gruß aus Berlin und guten Rutsch
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.