mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Codec PCM3000


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte mal fragen, ob es hier jemand gibt, der mit oben genanntem
Codec oder auch dem PCM3001 schon Erfahrungen gesammelt hat?

Ich habe am Wochenende mal eine Platine dafür gemacht, der Oszillator
des PCM3000 ist mit 12.288MHz beschaltet. Jetzt wahrscheinlich eine
dumme Frage, aber wie hoch muß denn die Bitclock sein, mit der die
Audiodaten in den PCM getaktet werden? Müßten doch auch 12.288MHz sein,
oder?

Wäre prima, wenn mir da jemand helfen kann.

Gruß
Thorsten

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thorsten

der Bitclock muß nicht gleich dem Masterclock sein.
Es hängt vom Codec bzw. von der Konfiguration des Codecs ab welchen
Bit-Clock du benutzen mußt.
In deinem Falle müsste der Bitclock jedoch gleich dem Masterclock
(12.288MHz = 256 * Smaplerate (48000KHz) ) sein.

Gruß
Rene

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, das habe ich befürchtet. Ich betreibe diesen Codec an einem dsPIC
(30MIPS), mußte jedoch feststellen, dass dieser den Takt zwar erzeugen
kann, dann aber keine Zeit mehr für Berechnungen mit den Audiodaten
bleibt. Selbst einfaches durchreichen der Audiodaten (Loop)
funktioniert nicht. Der Sound klingt extrem verzerrt, übersteuert und
verrauscht. Dann muß ich wohl eine kleinere Samplerate nehmen.

Thorsten

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das kann ich mir nicht vorstellen. Der Master bzw. Bitclock gibt
doch nur die Clock für dein serielles Signal vor. Die Zeit zum
Verarbeiten deiner Samples ist doch ein Vielfaches deiner
Samplefrequenz. Du hättest demnach 1/48000Hz = 20,83usec pro Sample
Zeit. Jetzt kenn ich den dsPIC nicht, aber der hat doch sicherlich ein
Audio-IO Register mit dem du bei jedem neuen Sample "geweckt" wirst
oder ?
Also selbst bei 30MIPS sind doch Filter und Lautstärke und dergleichen
möglich.

Gruß
Rene

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der Master bzw. Bitclock gibt doch nur die Clock für dein
> serielles Signal vor.

> Du hättest demnach 1/48000Hz = 20,83usec pro Sample Zeit.

Ok, dann habe ich das jetzt soweit verstanden.

> Jetzt kenn ich den dsPIC nicht, aber der hat doch sicherlich
> ein Audio-IO Register mit dem du bei jedem neuen Sample "geweckt"
> wirst oder ?

Genau. Jedesmal, wenn ein neuer Sample ankommt, wird ein Interrupt
ausgelöst. In der ISR schreibe ich nun dieses Sample direkt wieder in
den Sendepuffer. Dürfte soweit also alles richtig sein und der Fehler
liegt woanders. Eventuell gibts ja ein Problem mit den Taktflanken und
vor allem dem sehr kurzen Framesync-Signal. Ich habe die Code-Platine
über ein ca. 15cm langes Flachbandkabel mit dem dsPIC verbunden.
Vielleicht liegt da das Problem.

Und vor allem ist mir jetzt gerade eingefallen, dass ich ja mal messen
könnte, in welchen Zeitabständen neue Samples kommen. Müßte ja dann
alle 20,83µs der Fall sein.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hast du auch ein Konfigurationsproblem mit deinem dsPIC.
Je nach Einstellung (z.B. IIS) werden nur 64 Bitclocks erwartet bis ein
Stereo-Sample (!!, also 32 pro Mono-Sample)) vollständig ist. Bei deinen
12.288 MHz hättest du dann eine Samplerate von 192KHz mit ganz viel Müll
drin.
Prüfe mal die Konfiguration von deinem dsPIC und geb dir (wie du schon
sagtest) einen Impuls aus sobald ein neues Sample eingetrudelt ist.
(wenn != 20,83us -> Konfig-Fehler :-))

Gruß
Rene

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rene,

vielen Dank für deine Hinweise, es war in der Tat ein
Konfigurationsproblem auf dsPIC-Seite. Allerdings hätte ich noch eine
Frage. Sollte man den beiden Audio-Ausgängen einen Tiefpaß spendieren
bzw. wann sollte der vorgesehen werden? Ich habe mir nämlich das
Audioausgangssignal mit dem Scope angesehen und mußte feststellen, dass
die Signalform einem mit dem NF-Signal modulierten Sinus enstspricht.
Die "Trägerfrequenz liegt" bei etwa 12kHz, deshalb hört sich der Ton
bei höheren Frequenzen doch leicht verzerrt an. Aber vielleicht habe
ich da ja noch einen anderen Fehler drin.

Vielen Dank!

Gruß
Thorsten

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thorsten,

Einen Tiefpass sollte man vorsehen. Alleine schon aus dem Grund da der
PCM nicht "wissen" kann mit welcher Samplerate du arbeitest.
Eigentlich sind Filter mit hoher Ordnung (4-6) am idealsten.
Aber bei meinem "Selbstbau-DAC" habe ich auch nur einen Tiefpass 2.
Ordnung drin. (mehr bringt es bei 8 Bit sowieso nicht *gg)
Aber für erste Tests sollte es reichen den Ausgang ohne Tiefpass zu
betreiben (wenn man keine hohen Ansprüche an die Audio-Qualität hat)

Gruß
Rene

PS. Wo hast du den dsPIC her ? Würde mich u.U. auch interessieren mit
dem Ding was zu machen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe vor längere Zeit mal welche bei eBay sehr günstig ersteigert. Zur
Zeit werden da auch welche Angeboten, sind aber leider nur die
dsPIC30F3013. Alternativ kannst du auch bei Microchip kostenlose Muster
anfordern. Und wenn du zuviel Geld hast, kaufe sie bei Farnell. Der
dsPIC30F6014-30 kostet da satte 25 Euro :)

Gruß
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.