Forum: Mikrocontroller und Digitale Elektronik VS1001k Quarzproblem?


von Andreas Auer (Gast)


Lesenswert?

Hi Leute.

Ich hab mir eine Platine für den VS1001k aufgebaut (die von yampp). Ich
hab aber keinen 12,288 MHz Quarz verwendet sondern den Standard 24,576
MHz Quarz (is ein Grundwellenquarz von Segor).
Nachdem ich ihm aber keinen Ton entlocken konnte bzw. kein Test
funktionierte hab ich mir das DREQ Signal angesehen. Das sollte ja nach
einem Hardwarereset auf HIGH gehen. Und da liegt auch schon das
Problem. Das tut es nämlich nicht, oder nur sporadisch (springt
manchmal willkürlich auf +5V).
Ich hab aber leider kein richtiges Oszi bei der Hand (kann nur Signale
bis etwa 50kHz messen). Deshalb weiß ich nicht, ob der Quarz schwingt
oder nicht.
Aber da das DREQ Signal nicht auf High geht und über SO auch keine
Daten kommen, vermute ich mal stark, dass der Quarz schuld ist.

Ich hab den Quarz mit 2 mal 33 pF, wie im Datenblatt des VS1001k
beschrieben beschaltet. Kanns sein, dass die zu groß sind??

mfg
Andreas

von fksystems (Gast)


Lesenswert?

hm.. ein fehler könnte z.B. da sein, wenn du nicht beschaltete Inputs
hast, die für den betrieb des gerätes einen ganz bestimmten wert
annehmen müssen, dies aber nicht von alleine tuen.

also z.B. wenn das gerät einen reset-eingang hat und dieser nur auf
"Nicht Reset" steht, wenn man ihn mit einem wiederstand von außen an
die richtige stelle bringt.

..das fällt mir gerade so zu dem stichwort "willkürlich" ein..

von fksystems (Gast)


Lesenswert?

update:
noch was:

bei mir ist mal ein quarz nicht angeschwungen, weil ich den
stromversorgungskondensator vergessen hatte. ..haste den auch drin..?
:)

von Thorsten (Gast)


Lesenswert?

Hallo,

es könnte sein, daß dein 24MHz-Quarz ein Oberwellenquarz ist, der
schwingt dann aber laut application note nur im Grundton. Versuche mal
einen 12.288MHz-Quarz, der ist sicher Grundton.

Thorsten

von Andreas Auer (Gast)


Lesenswert?

Hi.

Danke für die Hilfe. Hab das Problem inzwischen beseitigt. Hatte den
Reset Pin zwar angeschlossen. Softwaremäßig hab ich aber den falschen
Pin auf +5V gezogen. Tja... danach haben die Tests funktioniert!
Kann ohne Probleme schreiben bzw. lesen.

Jetzt ist noch folgendes Problem aufgetaucht. Ich hab ja einen
24,576MHz Quarz drinnen, den ich als Grundwellenquarz bei Segor
bestellt habe. Wenn ich MP3 Daten zum Chip übertrage, dann dekodiert er
mir den Header richtig, die Sekunden laufen aber langsamer (also halb
so schnell oder noch langsamer ab).
Haben die bei Segor mir doch einen Oberwellenquarz verkauft?? Ich
möchte zum Beispiel die Frequenz des Quarz messen. Hab aber nur die
Möglichkeit, dass ich etwa 50kHz messen kann. Gibts da ne
Möglichkeit??

mfg
Andreas

von Nik Bamert (Gast)


Lesenswert?

Hi!

Sorry es ist nicht dir kaum hilfreich, aber ich hab zu diesem Decoder
auch ne Frage. Muss man eigentlich nur das Mp3 file a den Chip senden
und ok? oder muss das in einer bestimmtern Geschwindigkeit passieren?
Kommt mir nun bitte nicht mit dem Datenblatt, das hab ich schonmal
überflogen, ich werde daraus nicht ganz schlau. Dazu kommt noch, das
ich erst ein Jahr Schulenglich habe(ich bin 14) und dies ist bei
Tonnenweise fachbegriffen auf Englisch nicht gerade hilfreich. Also
wenn sich jemand die mühe machen könnte ein einfach es Beispiel zu
schreiben wär das echt Toll! :)
(Ich meine kein Programm, sondern 'nur' ein Ablaufdiagramm, was
nacheinander gesendet werden muss)

Mfg Nik

von Nik Bamert (Gast)


Lesenswert?

...ups noch was vergessen;

@andreas
mir ist doch noch etwas eingefallen: Du köntest natürlich einen
schnellen binären Zähler hinter den quarz schalten und dessen
Aussgangssignal am höchsten Bit abzapfen. Dann wäre die Frequenz
wahrscheinlich um einiges langsamer, du könntest diese dann messes und
je nach verwendetem Zähler hochrechnen...


Nik

von Andreas Auer (Gast)


Lesenswert?

@nik
Das hab ich mir auch schon überlegt. aber woher den zähler nehmen??
naja... werd mir morgen auf jedenfall einen 24,576Mhz Grundwellenquarz
besorgen.

Das Senden des MP3's an den Chip ist ganz einfach. Wahrscheinlich hast
gesehen, dass das Ding ein SPI Interface besitzt. Über dieses Interface
wird je nach Chipselect entweder ein Command geschickt (Lautstärke
regeln, MP3 Header auslesen, Zeitinformationen,...) mit dem du diverse
Infos auslesen bzw. setzen kannst oder die MP3 Daten.

Nachdem du die Quarzfrequenz in einem Register richtig gesetzt hast,
kannst im Prinzip einfach die Daten schicken. Das SPI Interface wird
mit einer bestimmten Clockrate (zum Beispiel 4MHz bei meinem Atmel)
betrieben.
Das MP3 File wird als ganzes File also mit Header geschickt. Die
Informationen aus dem Header kannst dann aus den Registern des VS1001k
auslesen.

Damit du weisst, ob du Daten schicken darfst, oder nicht gibts ne
Leitung (DREQ). Wenn diese High ist, dann haben mindestens 32Byte Daten
im FIFO des VS1001k Platz. Ist die Leitung "Low" darfst du keine
Daten senden.

Als Diagramm also:

SPI initialisieren
       |
VS1001k Register setzen (wenn benötigt)
       |
Ist DREQ high??  <------------
       |                     |
       |---------- nein ------
      ja                     ^
       |                     |
Sende 32 Bytes an Daten      |
       |                     |
       -----------------------

mfg
Andreas

von Nik Bamert (Gast)


Lesenswert?

hi!

@andreas
hey, vielen Dank, das sieht ja eigentlich ganz einfach aus.. :D
Gibt Dreq denn auch an, wann der Chip wieder Daten braucht, oder dient
das nur dazu, das das ganze nicht abstürzt? Wenn der Pin also so ne 2
in eins Lösung wär, dann wär das echt cool. Das einzige Problem scheint
dann nur noch das Gehäuse (soic oder bga) :( zu sein, denn ich hab noch
nie SMD gelötet und auch noch nie ne Platine selbst geätzt....An dieser
Stelle nochmals ne Frage: Gibts irgendwo das Piggypack zum vs1001k zu
kaufen-und dies in der Schweiz? Ich hab dazu leider noch echt nichts
gefunden...:(

Nik

von Nik Bamert (Gast)


Lesenswert?

uuups, das heisst ja piggyback und nicht piggypack :)
Schade, trotzdem liefert google auch mit "vs1001 piggyback" keine
Resultate aus der Schweiz. Ausserdem....hab ich recht und das
Platinchen gibt's gar nicht fertig verlötet?

von Andreas Auer (Gast)


Lesenswert?

Das einzige wo ich das Ding gefunden habe war in jelu Shop von der Yampp
Seite. Aber da kommt das Ding ja irgendwoher und noch dazu ziemlich
teuer. Die aufgebaute Platine kostet 65,41 Euro. Die Platine alleine
7,.. Euro. Versand weiß ich leider nicht.
Ich hab mir die Platinen selbst ätzen lassen (profesionelle, also mit
Lötstopplack und Bestückungsdruck). Kommt billiger.
Eine Platine hät ich noch übrig, aber solange der Quarz nicht so läuft
wie er soll, ist es wohl sinnlos dir eine zu verkaufen. Außerdem weiß
ich nicht wie das ist, aus Österreich in die Schweiz zu schicken (Porto
und so). Aber wenn du willst meld ich mich, wenn ich den Quarz zum
laufen gebracht habe und dann erkundige ich mich bei der Post wegen dem
Porto in die Schweiz. Dann kann ich dir ja eine aufgebaute Platine
schicken.

Übrigens würd ich nicht versuchen die BGA Version zu "löten". Da hast
mit Lötkolben Pech gehabt ;-).

mfg
Andreas

--

Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Nik Bamert (Gast)


Lesenswert?

Ja Jelu scheint wirklich der einzige zu sein. Ich bin gerade eben auch
über den Shop gestolpert, als ich mir diese Seite anschaute
:http://www.myplace.nu/mp3/
Dort gibts bis jetzt schon 7 verschiedene Player. z.b. der yampp-3
verwendet ebenfalls einen 24,576 MHZ Quarz. Schaltplan und Software
gibt's zum kostenlosen Download, das  könnte für dich also auch
interessant sein, vielleicht findest du dort eine Lösung...
Zur Platine; meinst du ne bestückte oder eine ohne Bauteile?
Mit wärs natürlich perfekt, aber ohne könnt ichs ja auch mal wagen,
aber dann weis ich nicht wo ich den vs1001 herbekomme...naja mal
schauen:) Auf jedenfall vielen Dank für die Mühe die du dir bisher
schon gemacht hast, um mir das so zu erklären. :D

MFG Nik

von Nik Bamert (Gast)


Lesenswert?

Nun hab ich mir das Piggyback Modul mal noch ein bisschen genauer
angeschaut, eigentlich alles okay, aber zu was dient denn bsync? Es
muss sich um ein Synchronisationssignal handeln, aber was muss da schon
synchronisiert werden?

MFG
Nik

von Andreas Auer (Gast)


Lesenswert?

Die Seite oben kenn ich. Dies ist eh die Seite vom yampp und die haben
auch die piggybacks gemacht. Ich bin jetzt mal der Meinung, dass der
Quarz falsch ist und besorg mir morgen mal nen neuen. Dann probier ich
das ganze nochmal.

Du kannst beides haben. Entweder nicht bestückt und du besorgst dir die
Bauteile selbst, oder ich bestück sie dir, test sie bei mir noch
schnell, ob sie eh funktioniert und schick sie dir dann. Hab die
Bauteile für eine Platine im Prinzip noch hier. Den VS1001k zu besorgen
ist momentan auch etwas schwierig, da VLSI Lieferschwierigkeiten hat.

Zum BSYNC:
Du kannst das BSYNC Signal auch auf VCC hängen (laut Datenblatt).
Es handelt sich wirklich um ein Synchronisationssignal. Das wird beim
Übertragen von Daten - also eines MP3's - bei jedem Byte am Beginn des
Bytes auf high gelegt und innerhalb des Bytes wieder auf low.
Wie der VS1001k darauf synchronisiert kann ich dir nicht genau
erklären, aber ich verwende es halt mal so, wenns im Datenblatt so
steht!

mfg
Andreas

-

Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Nik Bamert (Gast)


Lesenswert?

Hi!

Vielen Dank für dein Angebot.:) Wieviel würdest du denn gerne für eine
bestückte Platine wollen?-oder sonst auch unbestückt...(?)
Ich weiss einfach nicht recht ob ich mir Smd zutrauen kann..am Schluss
löte ich zu lange am Decoder rum und er ist Eimer...:(
Du schreibst dass du die Bauteile noch hättest, meinst du auch den
Vs1001k?

zu bsync:

Also ich habe vor das ganze in Bascom zu proggen, da ist dann einfach
das Problem das es einfach Befehle gibt wie Spiinit spisend und
spireceive. Ich könnte schon am Anfang eines Bytes Bsync auf high
legen, aber während das Byte gesendet wird, kann ich leider nichts
anderes machen..ausser ich würde die Datenleitung an nen interrupt
hängen und bei jedem Interrupt, bsync auf low..:)
Aber wenn das mit VCC auch funtionieren würde..PRIMA

Dann wär da noch was....:
Ich hab auf der Yampp Seite mal den Schaltplan vom Piggyback
angeschaut, eigentlich alles oke, aber dreq und miso sind (ausgänge)
sind umgekehrt an den Level Shifter angeschlossen-Sind die dann aber
trotzdem 5 Volt kompatibel, oder wie das geht....:)

Ausserdem hab ich für den Anfang noch keinen Bock ein Fat Dateisystem
zu proggen. Ich hab mir das in etwa so gedacht: Ich lad mir z.b. 2
kybyte über Ethernet in ein Ram, danach die Daten senden. Und wenn s
knapp wird, werden Daten nachgeladen. Das mag jetzt noch komplizierter
klingen als das Dateisystem. Aber ich hab bereits Easy Tcp/ip, welches
hervorragend funktioniert...
Dann hab ich noch einige rechnungen angestellt; bei einer Datei mit
128kbit/s kommen die Daten mit 16kbyte/s daher, also 16384 bytes/s.
somit müsste alle 61 sekunden ein byte gesendet werden (1000000
ms/16384). Natürlich nur wenn das ganze die ganze Zeit passieren würde
und nicht in z.b. 32 byte Blöcken. Aber würde das von der
Geschwindigkeit her für einen I2C EEprom reichen? Ich hab davon noch
welche mit 64 Kbytes rumliegen, mit einem kleinen Test Signal, könnte
das sogar noch passen. Oder ist I2C dazu zu lahm? Enn das der Fall wär
könnte ich ja auch 64 32 oder 16 kbit/s verwenden...

Nik

von Andreas Auer (Gast)


Lesenswert?

Also mal kurz zu meiner aktuellen Lage. Der Quarz, den ich verwendet
habe dürfte wirklich ein 24,576 MHz Grundwellenquarz sein. Hab heute
nämlich mal einen anderen versucht und da kommt das 1kHz Testsignal
schonmal viel zu tief raus.
Falls noch jemand eine Idee hat, warum mein MP3 Decoder nicht spielt,
dann soll er mir das doch bitte verraten. Kanns am MP3 selbst liegen??


@Nik:
Bestück würde der Preis so bei 25-30 Euro liegen. Ne unbestückte
Platine kannst um 5 Euro haben.
Ja, ich hab auch den VS1001k noch (1 Stück).

DREQ und MISO:
Du hast recht. Die beiden Signale gehen auf nen Eingang des
Levelconverters. Die Ausgangspegel liegen dabei bei 0 und 3V. Das ist
aber kein Problem. Der Atmel erkennt 3V schon als High.

Jaja... das FAT Dateisystem. Mit dem quäl ich mich auch schon einige
Zeit. Mittlerweile kann ich wenigstens ohne Probleme ein File öffnen
und davon lesen. Jetzt muss noch das Schreiben her.

Bezüglich deiner Rechnung. Also du hast schon recht, dass bei 128kBit/s
16384 bytes/s gesendet werden müssen.
Wo ich dir nicht ganz folgen kann ist, wie du darauf kommst, dass alle
61 Sekunden 1 Byte gesendet werden muss. Du musst nämlich alle 61us ein
Byte senden (1/16384). Damit ist es schon sinnvoll, dass man 32 Byte
Blöcke senden kann.

Bezüglich der EEPROMs kenn ich mich leider zuwenig aus. Findest aber
sicher in den Datenblättern.

mfg
Andreas

PS: Bei längeren persönlichen Fragen ist vielleicht das Medium eMail
schon sehr sinnvoll.

--

Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Nik Bamert (Gast)


Lesenswert?

oops ich meinte eigentlich millisekunden, aber dann isses halt noch
weniger ... Alles weitere dann per Email, vielleicht kommt die aber
erst morgen, denn ich hab heute nicht mehr so viel Zeit, ich muss mich
gerade mit dem Lernen für mehrer Prüfungen quälen..:(

von Nik Bamert (Gast)


Lesenswert?

hi, ich bins nochmals.

Also zu deinem Problem mit dem quarz;
hast du für r1 1MOhm und für c2 33pf? Und hast du den r2 nicht
bestückt? Denn so steht es im Schaltplan auf der yampp page.
Je nach vs1001 oder vs1001k sollte man da ja etwas unterschiedlich
bestücken.
Eigentlich denke ich schon das du den gesehen hast, aber man kann ja
nie wissen..:) Ansonsten:
http://www.myplace.nu/mp3/images/piggy_sch_large.jpg

MFG Nik

von Andreas Auer (Gast)


Lesenswert?

Ja den Schaltplan hab ich gesehen. Hab 2 mal 33pF, den 1MOhm Widerstand
und den anderen Widerstand nicht bestückt.
Also langsam gehen mir leider die Ideen aus. Ich werds vorerst mal aufs
MP3 schieben, dass es nicht funktioniert.

Werd mich dann eher mal um die USB Verbindung kümmern. Und dann kann
ich ja ein anderes MP3 mal draufspielen. Vielleicht funktioniert das
besser.

mfg
Andreas

--

Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Thorsten (Gast)


Lesenswert?

@Andreas:

Schau dir mal folgendes an:
http://www.ethernet-mp3.de/de/faq.html

von Oliver Keller (Gast)


Lesenswert?

Hi

@Nik:
Ich hab neulich zum ersten mal QFP SMD package gelötet.
Der Trick ist nur, dass man überschüssiges Löttzinn mit Entlötlitze
wieder weg nimmt. Näheres findest Du hier:
http://wiki.mikrocontroller.net/SMD_L%F6ten.htm

Platinen (auch für SOIC) hab ich bei ebay für 4Euro gefunden - such
einfach nach "SMD Adapter".

Achja, und den VS1001K bekommst Du bei www.egnite.de für knap 18EUR,
und die Versandkosten, zumindest nach Dt., sind mit 2,50EUR sehr
niedrig!
Ich hab dort per Mail nach dem neuen VS1011K gefragt, den haben sie mir
dann zum selben Preis geschickt. Ob der alte VS1001K bei egnite
ebenfalls Lieferschwierigkeiten hat, weiss ich aber nicht.

Aber ansonsten ist das Angebot von Andreas Auer meiner Meinung nach
auch recht fair.

@Andreas:
Hast Du auch die Hinweise in "VS10XX Application Notes" gesehen?
(http://www.vlsi.fi/datasheets/vs10XXan.pdf)

Gruss,
oli

von leif (Gast)


Lesenswert?

Mit dem Quarzproblem kann ich leider nicht weiterhelfen (an der uni
sollten die doch vernünftige oszis haben!?), habe dafür aber mal wieder
eine Frage.

Dein yampp benutzt ein wohl ein cf interface; aber Du hast dich
bestimmt schon in das Datenblatt eingelesen..Wenn die mp3 daten jetzt
von einer anderen quelle (sd/mmc) über spi kämen, kann man sie dann
direkt ohne umweg über den µc in den decoder schicken? oder ist das
unsinn, weil der µc sowieso als master seinen dienst tun muss, und
demnach nix eingespart wird?

@oliver
was meinst du mit "dem neuen VS1011K"

gruß, leif

von Andreas Auer (Gast)


Lesenswert?

Hi.

Also, wenn du mich meinst, mit dem Yampp, dann muss ich dir leider
sagen, dass ich keinen yampp Player nachbaue sondern meinen eigenen MP3
Player baue.
Von der yampp Seite hab ich lediglich die Schaltung für das VS1001k
Piggyback. Übrigens funktioniert dieses jetzt einwandfrei bei mir. Ich
hatte gar kein Problem mit dem Quarz. Meine Software zur Ansteuerung
der Compact Flash war einfach zu langsam. Ich hab beim lesen von der CF
nur ca. 65kBit/s zusammengebracht, was bei einem MP3 File mit 128kbit/s
etwas zu wenig ist. Deshalb hatte ich die Aussetzer und das langsame
Zählen der Sekunden!
Nach einiger Optimierungsarbeit an meinen Routinen schaffe ich jetzt
~280kbyte/s Datendurchsatz, was für alle möglichen MP3 Files
ausreicht.

mfg
Andreas

--

Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von leif (Gast)


Lesenswert?

@andreas:

da hab ich wohl zuviel zeit auf der yampp seite verbracht..und
glückwunsch zum bugfix!
ich möchte den VS1001k mit einer sd card verwenden, deswegen auch meine
frage zum SPI. vielleicht kannst du ja nochmal einen blick drauf
werfen..

leif

von Oliver Keller (Gast)


Lesenswert?

Hallo leif,

achte mal genau auf den Decoder Namen:
VS 10_11_K (neu)
VS100_1_K  (alt)
Ich hab das zuerst auch verwechselt - deshalb hab ich extra,
"neuen VS1011K" geschrieben.

Den Decoder einfach Daten selbst per SPI auslesen lassen geht nicht.
Wenn Du genau hinschaust gibts auch sozusagen zwei Modi beim VS10xx:
einmal für Daten und einmal für Steuerbefehle per SPI
Ausserdem hat der physiklaische Anschluss per SPI ja noch nichts mit
der Formatierung der Daten auf der SD Karte zu tun. Insofern braucht
man da auf jedenfall einen uC.
Ich bin übrigens auch gerade dabei mir einen MP3 Player mit SD card
(fat16 oder fat32 Formatierung), VS1011K und MSP430 als uC zu bauen.
Die Einzteile hab ich schon, Software gibts noch nicht....

Ein Projekt namens easymp3 hab ich gefunden, von dem man glaub ich ganz
gut die SD card, fat und VS10xx programierung übernehmen könnte.
Der Autor ist aber Japaner, entsprechend ist die Doku japanisch...
http://yuki.sakura.ne.jp/hw/mp3player2.c

Gruss,
oli

von leif (Gast)


Lesenswert?

ohaoha, das habe ich eben auch festgestellt.. bescheuert gewählte
typenbezeichnung..

VS1001K  hat egnite noch auf lager, schätze ich. habe heute 10
bestellt, verkaufe gerne 8 davon zum selbstkostenpreis weiter: 14E. wär
allerdings schade, wenn ich jetzt drauf sitzen bliebe..

Man sagte mir aber, daß sie lediglich geringe (muster)-stückzahlen der
neuen typen hätten.

und zum spi: ich habe mich noch nicht wirklich damit beschäftigt, bin
momentan knapp bei zeit. aber ich dachte, wenn man die daten vom flash
per µC anfordert, könnte man beim einlesen nicht den µC sondern den
Decoder aktivieren, so daß die daten nicht erst zwischegespeichert
werden. war aber nur so ein loser gedanke..

danke für den link; ich möchte das mit nem avr machen. bis auf das
japanisch passt's dann ja :-)

von KlausKloos (Gast)


Lesenswert?

Hallo Leif

Wenn du noch 2 von den VS1001 hast, würde Ich die gerne nehmen.
Bitte gibt mir bald antwort, Ich muss sonst bestellen.

Gruß Klaus

von leif (Gast)


Lesenswert?

hallo klaus,

ich habe die order erstmal zurückstellen lassen, da ich auf den
nachfolgetypen warten möchte. möglicherweise nehme ich auch den 02er.
über eine sammelbestellung denke ich dann nochmal nach..

tut mir leid..

leif

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.