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
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
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.
@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.
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.
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.
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?
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
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
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.