Forum: Markt [V] PCM3070 DSP Prototyping Boards


von Maximilian K. (imazze)


Lesenswert?

Hallo Community!

Ich möchte hier 3 Prototyping Platinen für den DSP PCM3070 von Texas 
Instruments verkaufen!

Meine Version ist mit der von "Borsty Bürste" kompatibel.

Preis: 5€ pro Stck. (inkl. Versand)


mfg
Maximilian


Falls interesse an den Bauteilen besteht, kein Problem, hab alles auf 
Lager.

von Maximilian K. (imazze)


Angehängte Dateien:

Lesenswert?

Bilder 1

von Borsty B. (mantabernd)


Lesenswert?

Hi Maximilian,

wolltest du nicht SPI rausführen? Das sind ja 1:1 Kopien von meinen 
Platinen, abgesehen vom fehlerhaften Bestückungsdruck. Wieso hast du 
nicht gleich den 12.288MHz Oszillator mit drauf gepackt wenn du es eh 
schon neu machst? Das war an meinem Layout eigentlich das nervigste 
Problem (steht auch in meinem Originalthread).

Zu deiner Frage: Selbstverständlich kannst du den PCM3070 über I2S 
deines Arduinos steuern. Du musst nur aufpassen dass die Pullups auf 3V3 
liegen und nicht auf 5V.

Besser nochmal messen bevor du es anschließt. Ansonsten kein Problem.

EDIT: der Original Thread findet sich hier: 
Beitrag "[V] Verkaufe PCM3070 DSP Boards"

: Bearbeitet durch User
von Maximilian K. (imazze)


Lesenswert?

Hi!

Kannst du mir vielleicht erklären was es sich mit dem 12.288 Oszi auf 
sich hat?

von Borsty B. (mantabernd)


Lesenswert?

Du hast in jedem digitalen Audiosystem einen Masterclock. Aus diesem 
teilt sich dann der Wordclock, Bitclock, usw. herunter. Manche Geräte 
können den Masterclock selbst erzeugen, andere berechnen ihn auf Basis 
des Bitclocks. Dieser IC braucht ihn aber (wie die Meisten anderen Codes 
auch) extern zugeführt.

Als ich die PCB's erstellt habe war ich der Meinung dass man diesen 
Masterclock nur braucht wenn man auch digitale Signale verarbeiten 
möchte. Leider wird der aber intern auch für den AD / DA Wandler 
benötigt. Also brauchst du den Clock auch bei Analog in / Analog out.

Sprich der IC arbeitet nur wenn man Masterclock Pin ein Takt mit 12.288 
Mhz anliegt. (daher ergibt sich auch die Samplingrate von 48kHz -> 48kHz 
* 256 = 12.288Mhz).

von Maximilian K. (imazze)


Lesenswert?

Also ist es Praktisch nur wie bei einem Microcontroller: Quarz ranhängen 
und über Kondensatoren auf GND?

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:
> Also ist es Praktisch nur wie bei einem Microcontroller: Quarz ranhängen
> und über Kondensatoren auf GND?

Nein. Lies dich mal ein was ein PCM Signal ist und aus welchen Teilen es 
besteht.

Du brauchst einen Quarzoszillator mit 12.288 MHz für 3,3V.

von Maximilian K. (imazze)


Angehängte Dateien:

Lesenswert?

Du hasts ja schon erklärt, oder? Das mit dem Teiler und den 48kHz?

Ich möcht ja jetzt erstmal auf dem PCM via SPI schreiben können!

Der Quarz ist nur für die DA und AD Wandler notwendig, oder?


Ist der Oszillator auf meinem Screenshot ausreichend?
Ich muss doch dann die 3V3 an den Spannungsregler auf der Platine, den 
GND auf Masse und den Out einfach an die WCLK?

Ich hab jetzt Grad eine Software im Programmieren, die die *.cfg Datei 
entweder via RS232 nacheinander auf den Chip sendet (durch den Arduino) 
oder einfach nur eine *.HEX generiert!

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:
> Du hasts ja schon erklärt, oder? Das mit dem Teiler und den 48kHz?

Naja da gibt es schon noch einiges mehr zu erklären und lernen.

> Ich möcht ja jetzt erstmal auf dem PCM via SPI schreiben können!

Das wundert mich ja, die SPI Schnittstelle hast du ja gar nicht 
herausgeführt. Willst du jetzt I2C oder SPI verwenden?

> Der Quarz ist nur für die DA und AD Wandler notwendig, oder?

Nein, lies mal bitte meinen Post von vorher nochmal.

>
> Ist der Oszillator auf meinem Screenshot ausreichend?

Ja.

> Ich muss doch dann die 3V3 an den Spannungsregler auf der Platine, den
> GND auf Masse und den Out einfach an die WCLK?

Wieso WCLK? Überleg mal nochmal ob es nicht auch ein anderer Clock sein 
könnte ;-)

> Ich hab jetzt Grad eine Software im Programmieren, die die *.cfg Datei
> entweder via RS232 nacheinander auf den Chip sendet (durch den Arduino)
> oder einfach nur eine *.HEX generiert!

Welche .cfg Datei? Was willst du mit einer Hex? Aber ok :) Cool :)

: Bearbeitet durch User
von Maximilian K. (imazze)


Lesenswert?

Also das mit der CLK muss ich dann nochmal nachlesen...

Dann nehm Ich halt I2C ;-)

Die config datei, die man oder PurePath Software erstellt mein ich!

Wie bringst du die auf deinen PCM?

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:
> Die config datei, die man oder PurePath Software erstellt mein ich!
>
> Wie bringst du die auf deinen PCM?

Achso, oh Gott... fang erstmal klein an. Im Datenblatt sind ein paar 
Befehle aufgeführt um grundlegend das Teil zum laufen zu kriegen.

Übrigens lädt man keine Programme in den PCM3070, man konfiguriert 
diesen nur und setzt die Register so wie man es möchte.

von Maximilian K. (imazze)


Lesenswert?

Das war mir klar mit den Registern und den Data Werten...

Meinst du die 3 Beispiele ganz hinten?

von Borsty B. (mantabernd)


Lesenswert?

http://www.ti.com/lit/ug/slau332/slau332.pdf

Ab Seite 67...

Seite 57 ist auch sehr wichtig. Die Clock Divider musst verstehen um das 
Teil sinnvoll betreiben zu können. Im Grund kannst du das App. Manual so 
lange lesen bis davon träumst ;-) Viel Spaß.

von Maximilian K. (imazze)


Lesenswert?

Das hab ich gemeint!

Wo muss ich den Oszi jetzt anschließen? An BCLK?


Danke!

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:

> Wo muss ich den Oszi jetzt anschließen? An BCLK?

Der Oszillator ist der Masterclock also gehört der an den MCLK! Hättest 
aber auch selbst gemerkt wenn du dich mal mit dem Thema PCM 
auseiandergesetzt und Wikipedia dazu bemüht hättest ;-)

von Maximilian K. (imazze)


Lesenswert?

Hallo!

Also der Oszillator ist bestellt.

Mein anderes Problem jetzt: hab die Platine fertig gelötet und bestückt 
(der PCM3070 wurde durch einem Fachmann eingelötet) und hab statt 2x 
4,7k, 4,7 Ohm verwendet! So jetzt wo ich Jumper 2 Geschlossen hab, hats 
gezischt...

Der Chip ist kaputt, oder?

Kann ich iwie einen einfachen Funktionstest durchführen?

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:
> 4,7k, 4,7 Ohm verwendet! So jetzt wo ich Jumper 2 Geschlossen hab, hats
> gezischt...
>
> Der Chip ist kaputt, oder?

Du hast nicht arg viel Ahnung von Elektronik, stimmt's? Nicht bös 
gemeint aber schau dir den Schaltplan doch mal an und sag uns welches 
Bauteil in diesem Fall kaputt geht.

Übrigens: Unabhängig davon, pass auf welchen Jumper du steckst!! Mit den 
Jumpern wählst du die Spannungsquelle für den LDO. Je nachdem was du im 
PCM3070 konfiguriert hast macht's nämlich wirklich "Zisch". Und wenn du 
jetzt zwischen den Zeilen liest dann wird dir auch bewusst dass du den 
PCM3070 in der Tat durch "falsche" bzw. unachtsame Programmierung 
vernichten kannst. Ich spreche aus Erfahrung. Also, wenn es an die LDO's 
geht, egal ob via SW oder via Jumper, immer nochmal checken und das 
Datenblatt prüfen.

von Maximilian K. (imazze)


Lesenswert?

Naja sagen wir mal so: mit einem DSP hab ich noch nie was zu tun 
gehabt... aber ich kenn mich schon soweit aus um einige Dinge in Sachen 
Elektronik basteln zu können. Mein letztes Projekt war eine RGB Matrix 
mit WS2803 oder z.b einen Funktionsgenerator.


Datenblatt les ich morgen nochmal durch.

Kannst du mir vielleicht eine einfache "Schaltung" zeigen um zu wissen: 
Ja der PCM3070 spricht mit mir!

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:
> Mein letztes Projekt war eine RGB Matrix
> mit WS2803 oder z.b einen Funktionsgenerator.

Welches Bauteil hat denn dann in deinem Fall "zisch" gemacht und warum?

> Kannst du mir vielleicht eine einfache "Schaltung" zeigen um zu wissen:
> Ja der PCM3070 spricht mit mir!

Ein ACK auf dem I2C Bus?!

von Maximilian K. (imazze)


Lesenswert?

Also ich hab bloß kurz den Strom drauf gehabt..., also der Widerstand 
kanns glaub ich nicht gewesen sein... ich Messe ihn morgen aber trotzdem 
nochmal nach, um das auszuschließen. Dann bleibt ja nur der Controller 
noch übrig.


Ich meinte mit Schaltung die Belegung der Jumper, bzw. die Geschichte 
mit den Oszi.

Beim I2C passiert folgendes in Dauerschleife:
-Start
-Adresse (0x30)
-Register (0x00)
-Stop
-Start Read
-Adresse (0x30)
-Warten bis 1 Byte gesendet wurde
-ausgeben auf Terminal

Wenn alles funktioniert muss ich doch den Arduino nur mit folgenden Pins 
auf dem Board verbinden: SCK, SDA, GND, +5V.

Was ist jetzt mit den Jumpern, bzw. MCLK?

von Borsty B. (mantabernd)


Lesenswert?

Maximilian K. schrieb:
> Dann bleibt ja nur der Controller
> noch übrig.

Wieso? Du hast durch den 4,7 Ohm Widerstand etwa 700mA bzw. das was der 
LDO hergibt durchgejagt. Das sind etwa 2W. Kurz hält er es aus, wir 
reden hier aber von Millisekunden.

Wieso sollte der PCM3070 dabei schaden nehmen?

> Ich meinte mit Schaltung die Belegung der Jumper, bzw. die Geschichte
> mit den Oszi.

Welches Oszi? Welche Geschichte?

> Beim I2C passiert folgendes in Dauerschleife:
> -Start
> -Adresse (0x30)
> -Register (0x00)
> -Stop
> -Start Read
> -Adresse (0x30)
> -Warten bis 1 Byte gesendet wurde
> -ausgeben auf Terminal

Kriegst du ein Ack oder nicht? Scheinbar schon, aber so ganz schlau 
werde ich daraus nicht. Welches Terminal meinst du denn? Ganz schön wirr 
alles.

> Wenn alles funktioniert muss ich doch den Arduino nur mit folgenden Pins
> auf dem Board verbinden: SCK, SDA, GND, +5V.

??

> Was ist jetzt mit den Jumpern, bzw. MCLK?

Die Sonnen sich in der Karibik. Was soll mit denen sein?

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.