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.
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"
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).
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.
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!
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 :)
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?
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.
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ß.
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 ;-)
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?
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.
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!
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?!
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?
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?