Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage 5.23 I2C (32bit Übertragung)


von Matthias M. (Gast)


Lesenswert?

Guten Tag,

ich verzweifle aktuell an einem Datenblatt von TI. Es geht um den 
TAS5558 der die Volume Koeffizenten im 5.23 - Format haben möchte.

Es handelt sich dabei um eine 32bit I2C Übertragung.

Wie ich 32 bit mit I2C übertrage weiß ich, allerdings verzweifle ich an 
der Anleitung wie ich die Bits zusammenstellen soll.

Erklärt wird es auf Seite 18 des Datenblattes, auf Seite 90 stehen dann 
die Werte. Sprich ich müsste im Register 0x41 folgenden Wert übertragen 
um jeden Eingang auf jeden Ausgang zu routen.

0080 0000 0080 0000 0080 0000 0080 0000 0080 0000 0080 0000 0080 0000 
0080 0000

Das sind dann 8 x 32 bit -> 32 byte. Die I2C Übertragung müsste dann ja 
wie folgt aussehen:

I2C Start - Add - Reg 0x41 - 0x00 - 0x80 - 0x00 - 0x00 - ... - I2C Stop.
                            |Mixer Coef. Ch. 1 (32bit)|

Jeweils mit einem ACK dazwischen.
Hab ich das so richtig verstanden? Interessiert mich dieses 5.23 Format 
in dem Fall überhaupt?

Laut Datenblatt heißt es: Each gain coefficient is in 28-bit (5.23) 
format, so 0x80 0000 is a gain of 1. Each gain coefficient is written as 
a 32-bit word with the upper four bits reserved. For eight gain 
coefficients, the total is 32 bytes.

Sprich mich interessieren die erste Null nicht? Muss die dann überhaupts 
übertragen werden?

Ich hoffe mich kann jemand aufklären :)

Vielen Dank schon mal!

Gruß
Matthias

von Der (Gast)


Lesenswert?

Matthias M. schrieb:
> Sprich mich interessieren die erste Null nicht?

Genau. Auf Seite 18 unten, steht: u = unused or don't care.


Matthias M. schrieb:
> Muss die dann überhaupts
> übertragen werden?

Ja. Bei I²C kann man immer nur ein komplettes Byte übertragen.

von Matthias M. (Gast)


Lesenswert?

Ok sprich dieses 5.23 Format ist nur für die interne Verarbeitung 
interessant und interessiert mich bei der I2C Übertragung nicht? Ich 
übertrage einfach 32bit und gut ists?

Danke! :)

von Frank B. (f-baer)


Lesenswert?

Matthias M. schrieb:
> Ok sprich dieses 5.23 Format ist nur für die interne Verarbeitung
> interessant und interessiert mich bei der I2C Übertragung nicht? Ich
> übertrage einfach 32bit und gut ists?
>
> Danke! :)

Mit der I2C-Kommunikation hat das nichts zu tun. Es ist die Beschreibung 
der Repräsentation der Daten. Es handelt sich um eine Festkommazahl mit 
5 Vorkomma-Bit und 23 Nachkommabit.

von Matthias M. (Gast)


Angehängte Dateien:

Lesenswert?

Ok alles klar, soweit hab ich das verstanden.


Vielleicht kann mir noch jemand erklären was es mit dem ASRC Register 
auf sich hat, es gibt die Bits D24 - D31 doppelt, sprich man kann den 
ASRC2 auf "coupled mode" stellen und ihn gleichzeitig bypassen?!

Ist das ein Fehler im Datenblatt oder versteh ich es nicht?

von Matthias M. (Gast)


Lesenswert?

Hi,

vielleicht könnt ihr mir weiterhelfen. ich versuche schon seit einiger 
Zeit in einen TAS5558 von Ti die Biquads zu schreiben.

Ich habe fünf Werte b0,b1,b2,a1 und a2 mit der PurePath Software in HEX 
ermittelt:

b0: 0x7FFFFF
b1: 0x91D198
b2: 0x6422D8
a1: 0x77F54F
a2: 0x879EC4

Nun muss ich diese Werte irgendwie in ein 5.23 Format bringen und mit je 
4 Byte I2C übertragen.

Ich werde aus dem Datenblatt leider nicht wirklich schlau und alles was 
ich bisher probiert habe scheitert. Hat das schon mal jemand hier 
gemacht?

Den Wert b0 würde ich folgendermaßen übertragen:

0x00 0x7f 0xff 0xff

Laut Datenblatt müssen alle Coeffs in das Selbe Register geschrieben 
werden. Dafür gibt es bei TI den Inkrementellen I2C Write. Das klappt 
auch wunderbar, verwende ich bereits bei anderen Einstellungen. Mein 
Problem ist einfach dass ich mir bezüglich des 5.23 Formates nicht 
sicher bin, laut Datenblatt gibt es dort auch ein Signed Bit und 5 Int. 
Stellen vor dem Komma?!?! Welches Komma?

Hoffe es hat jemand eine Lösung für mich :)
Danke

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.