Forum: Mikrocontroller und Digitale Elektronik Probleme mit PCM1774 I2S DAC


von Franz (Gast)


Angehängte Dateien:

Lesenswert?

Servus,

ich bekomme es nicht hin, das ein Ton aus dem DAC rauskommt. Die Takte 
habe ich per Logikanalyzer geprüft und die scheinen ok zu sein.
Eventuell liegt es an der Bytefolge dich ich per I2S schicke.
Könnte vielleicht jemand drauf schauen bitte.
Im Grunde genommen möchte ich mit einem STM32F107 eine 16kHz PCM 
abspielen.


Grüße,
Franz

von Franz (Gast)


Lesenswert?

Franz schrieb:
> Im Grunde genommen möchte ich mit einem STM32F107 eine 16kHz PCM

..oder eine 32kHz

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Screenshot vom den Wellenformen im LA bitte.
Aber über eine ganze LRCK Periode.

: Bearbeitet durch User
von Franz (Gast)


Angehängte Dateien:

Lesenswert?

Anbei die Hardware...

von Franz (Gast)


Angehängte Dateien:

Lesenswert?

Mw E. schrieb:
> Screenshot vom den Wellenformen im LA bitte.
> Aber über eine ganze LRCK Periode.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Was ist denn CH3?
Der Systemtakt für den DAC?

von Franz (Gast)


Lesenswert?

Mw E. schrieb:
> Was ist denn CH3?
> Der Systemtakt für den DAC?

Ja, das der mclk aus dem stm32

von Franz (Gast)


Lesenswert?

Ab und zu brummt es mal

von Jobst M. (jobstens-de)


Lesenswert?

Franz schrieb:
> Ja, das der mclk aus dem stm32

Sieht der wirklich so Kacke aus, wie vom LA dargestellt?
Der DAC benötigt eine einwandfreie zeitliche Referenz mit möglichst 
wenig Jitter.

Wieso sind C1 und C2 nicht auf der Oberseite, um auf der Unterseite eine 
durchgehende Massefläche zu ermöglichen?

Wieso sind nicht alle Massepins  mit dem PAD verbunden?

An Pin 8 ist noch ein Gummiband über.

Der Chip wird korrekt konfiguriert?



Gruß

Jobst

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jobst M. schrieb:
> Der Chip wird korrekt konfiguriert?

Und das gilt auch für den STM32 - der Chip ist korrekt konfiguriert? Ich 
sehe da keinerlei Vorrichtung zum Debuggen und das solltest du mal bitte 
machen.
Die StdPeriphLib hatte z.B. nette kleine Bugs in der Initialisierung von 
I2S, die sich vor allem auf die MCLK bezogen - die bei dir sehr 
eigenartig aussieht.
Mach dir mal eine Debug Routine, in der du dir die Register für I2S und 
Clock anzeigen lassen kannst und am besten auch eine Fehlerausgabe bei 
der ganzen I2C Initialisiererei.
Da sehe ich im Moment auch nur ein 'Ich sende I2C und es wird schon gut 
gehen', ohne jegliche Fehlerbehandlung.
Als Beispiel - die Audioausgabe auf dem F407 Disco Board ist ein hartes 
Stück Arbeit, z.T. wg. der oben genannten Bugs, z.T. auch, weil der 
Cirrus Chip eine nette undokumentierte Init Sequenz braucht, von der ST 
natürlich nichts weiss - und ich auch nicht, wenn nicht Uwe B. da mal 
tief recherchiert hätte.

: Bearbeitet durch User
von Franz (Gast)


Lesenswert?

Zum Verständnis vorweg, würde ich gerne erfahren was am mclk nicht okay 
ist. Weil es diese Unterbrechungen hat?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Überleg doch mal was eine Taktvorgabe nicht haben sollte.
Genau, Richtig, Lücken...

von Falk B. (falk)


Lesenswert?

@Jobst M. (jobstens-de)

>> Ja, das der mclk aus dem stm32

>Sieht der wirklich so Kacke aus, wie vom LA dargestellt?

Glaub ich nicht, dort haben wir höchstwahrscheinlich Aliasing wegen zu 
geringer Abtastrate.

von Franz (Gast)


Angehängte Dateien:

Lesenswert?

Ich jetzt mal mit einer Samplingrate von 100MHz und einer Auflösung von 
10ns an den MCLK ran gegangen.
Wie Falk schon vermutet hatte, scheint das Signal tatsächlich ok zu 
sein.

Mein Problem scheint evtl. wo anders zu liegen.

von Franz (Gast)


Lesenswert?

Die I2S Einstellungen am STM32 scheinen ok zu sein,
Die Konfig vom PCM1774 auch...liegt es vielleicht am Layout oder an der 
Platine selbst?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Franz schrieb:
> Die I2S Einstellungen am STM32 scheinen ok zu sein,

Da bin ich mir nicht sicher, denn deine Masterclock liegt mit 8MHz 
völlig neben dem, was der PCM1774 als gültige Clock akzeptiert - zumal 
du Register 70 (und auch Register 84-86) auch gar nicht beschreibst und 
damit die Voreinstellung nimmst.
Damit bist du bei Deemphasis Filter aus, I2S Input Format und fs*128 
Masterclock für Register 70.
Edit: Register 70 tust du wohl doch, ist ein define verpackt.

Register 84-86 bestimmen dann Masterclock Divider (siehe dazu Tabelle 9- 
Tabelle 11 im DaBla des PCM) und die MSR:NPR Bits.

Deine Masterclock sollte also für die typischen Audio Standards z.B. 
6,144Mhz, oder 8,192 Mhz sein oder Vielfache davon.

: Bearbeitet durch User
von Franz (Gast)


Lesenswert?

Matthias S. schrieb:
> Franz schrieb:
>> Die I2S Einstellungen am STM32 scheinen ok zu sein,
>
> Da bin ich mir nicht sicher, denn deine Masterclock liegt mit 8MHz
> völlig neben dem, was der PCM1774 als gültige Clock akzeptiert - zumal
> du Register 70 (und auch Register 84-86) auch gar nicht beschreibst und
> damit die Voreinstellung nimmst.
> Damit bist du bei Deemphasis Filter aus, I2S Input Format und fs*128
> Masterclock für Register 70.
> Edit: Register 70 tust du wohl doch, ist ein define verpackt.
>
> Register 84-86 bestimmen dann Masterclock Divider (siehe dazu Tabelle 9-
> Tabelle 11 im DaBla des PCM) und die MSR:NPR Bits.
>
> Deine Masterclock sollte also für die typischen Audio Standards z.B.
> 6,144Mhz, oder 8,192 Mhz sein oder Vielfache davon.

Ok, danke Matthias. Denke das Problem nun erkannt zu haben.

Wie schaut es mit der Hardware aus? Kann man dies so durchgehen lassen?

von Jobst M. (jobstens-de)


Lesenswert?

Franz schrieb:
> Wie schaut es mit der Hardware aus? Kann man dies so durchgehen lassen?

Was hast Du denn seit ...

Jobst M. schrieb:
> Wieso sind C1 und C2 nicht auf der Oberseite, um auf der Unterseite eine
> durchgehende Massefläche zu ermöglichen?
>
> Wieso sind nicht alle Massepins  mit dem PAD verbunden?

... geändert?


Gruß

Jobst

von Franz (Gast)


Lesenswert?

Was spielt es für eine Rolle wenn die beiden Kerkos unten sind? Das Pad 
ist kein Massepad, zudem habe ich dort auch keine thermische vias.

von Jobst M. (jobstens-de)


Lesenswert?

Franz schrieb:
> Was spielt es für eine Rolle wenn die beiden Kerkos unten sind?

Habe ich doch geschrieben!


Franz schrieb:
> Das Pad ist kein Massepad

Du hast es dennoch an Masse gelegt. Dann aber bitte auch überall.


Franz schrieb:
> zudem habe ich dort auch keine thermische vias.

Noch ein Grund, um dort möglichst viele Leitungen hin (bzw. weg) zu 
legen.

Ach ja: Was meinst Du denn, wie lange das gut geht? Ich meine, glaubst 
Du der Hersteller hat das Ding da aus Spaß hingesetzt?


Ach, lass es doch so. Funktioniert doch prima ...


Gruß

Jobst

: Bearbeitet durch User
von Franz (Gast)


Lesenswert?

Jobst M. schrieb:
> Franz schrieb:
>> Was spielt es für eine Rolle wenn die beiden Kerkos unten sind?
>
> Habe ich doch geschrieben!
>
> Franz schrieb:
>> Das Pad ist kein Massepad
>
> Du hast es dennoch an Masse gelegt. Dann aber bitte auch überall.

wegen der durchegehen massefläche sagtest du mal. Aber Wozu ist das in 
dem Bereich noch notwendig, etwas wegen der Impedanz der leitungen im 
Top Layer?

Jobst M. schrieb:
> Ach ja: Was meinst Du denn, wie lange das gut geht? Ich meine, glaubst
> Du der Hersteller hat das Ding da aus Spaß hingesetzt?

Die Platine habe ich selbst hergestellt, und am pad kann ich keine 
thermal vias setzten mit den Nieten. Wenn die Platine läuft, dann werden 
dort sicherlich Thermal Vias sein.

Jobst M. schrieb:
> Ach, lass es doch so. Funktioniert doch prima ...

eben noch nicht.

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.