mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TDA 8444 Ansteuerung


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen TDA 8444 D/A Wandler mit I2C Bus und werde mit der
Ansteuerung des I2C Protokolls nicht schlau aus dem Datenblatt.

Hat jemand Erfahrung mit dem Ansteuern dieses IC's.Wie man die Werte
zu dem Baustein überträgt(erst den Kanal dann den Wert) o.ä. ?

Danke im vorraus!
Thorsten

Autor: Kai Markus Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe das IC zwar noch nicht selbst angesteuert, mir aber gerade mal das
Datenblatt S.5/6 angesehen. Ich interpretiere das so:

Start Command

1. Datenbyte: 0b 0 1 0 0 A2 A1 A0 0   A2, A1, A0 = I2C-Adresse

TDA sendet Acknowledge

jetzt gibts mehrere Möglichkeiten:

2. Datenbyte: 0b 0 0 0 0 S3 S2 S1 S0 = DAC-Startadresse

Die nun folgenden Bytes sind die Werte, die in die DACs,
beginnend mit dem DAC mit der Startadresse S3 S1 S1 S0 geschrieben
werden. Nach jedem Byte wird die Adresse automatisch um 1 erhöht.

Nach jedem Datenbyte sendet der TDA ein Acknowledge.

Am Ende der Übertragung sendet der uC eine Stop Condition.


oder die andere Betriebsart:

2. Datenbyte: 0b 1 1 1 1 S3 S2 S1 S0 = DAC-Adresse

alle folgenden Bytes werden immer an den DAC mit der Adresse S3S2S1S0
gesendet. Die Adresse wird NICHT erhöht.

Am Ende jedes Bytes sendet der TDA ein Acknowledge.
Am Ende der Übertragung sendet der uC eine Stop condition.

Ganz genau beschrieben steht das in S.5 unten, S.6 oben im Datenblatt.

mfG
KMT

Autor: Smolder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja,so kann ich es bestätigen denn ich nutze den 8444 seit Jahren so.

Kai hat es schon komplett gesagt aber ich versuche mal ne andere
Darstellung.






Möglichkeit 1:
--------------


->Startbedingung
->Ack vom 8444
->Adressbyte (4 Bit Fest + 3 Bit Einstellbar + feste 0)
->Ack vom 8444
->Instruktions und Kanalbyte (4 bit Instruktionen und 4 Bit Kanal)
->Ack vom 8444
->Datenbyte (Die beiden obersteb Bits werden ignoriert da DAC 6 Bittig
ist)
->Ack 8444
->Stop


Möglichkeit 2:
--------------

Wie Möglichkeit 1 aber zwischen dem letzten "Ack" und dem Stop kommen
noch beliebig viele Datenbytes mit folgendem "Ack" um fortlaufend ohne
neue Starbedingung und Kanalwahl daten zu übertragen .
Das bringt einen guten Geschwindigkeitsvorteil.

Möglichkeit 1 braucht immer 3 Bytes und 5 Start-,Stop-,Ack-Vorgänge Pro
Datensatz wärend Methode 2 bis auf den Start der Übertragung nur ein
Datenbyte plus Ack-Vorgang pro Datensatz braucht.

Das ist über den Daumen mal eben mehr als das Dreifache an Durchsatz.




Folgendes gilt nur für Methode 2.
Bei Methode 1 wird ja immer nur ein Byte auf einem bestimmten Kanal
übertragen.

Die Instruktionsbits (4 Stück) geben an ob der Kanal Incrementiert oder
fest angewählt wird.

Die erste Stelle sind die Instruktionsbits und die zweite die Kanäle.

Bei 00 bis 0F wird ausgehend vom Startkanal bei jedem Byte der Kanal um
eins erhöht.
Fängst du also mit Kanal 3 (03) an dann geht der nächste Datensatz an
kanal 4,danach an 5,6 usw. bis er wieder bei 0 anfängt usw.

Bei F0 bis FF wird die Übertragung auf den eingestellten Kanal
fixiert.
Jedes Datenbyte geht also nur an diesen Kanal.
zb. F6 gibt an das alle Daten der Übertragung auf kanal 6 ausgegeben
werden.



Das wars eigentlich schon.

Jetzt hats du 2 Erklärungen.
Eine wird hoffentlich helfen.



PS:

Die Startbedingung 2 oder 3x hintereinander auszuführen hilft gut gegen
"Aufmerksamkeitsfehler" auf dem Bus oder bei Störungen

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo danke für die Antworten, hat mir sehr geholfen!

Thorsten

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.