Hi,
mein wecker geht mir mit sein gepiepse auf die nerven.
Also hab ich mir gedacht... baue ich mir ein mp3-wecker.
Das ist mein erstes großes projekt und nun hab ich noch ein paar fragen.
Schaltung ist soweit schon fertig (siehe Anhang), die schaltung wurde
aus verschieden mp3-playern-projekten (man findet da ja ein paar im
netz) zusammengestellt.
Zeichne zum ersten mal mit eagle, also bitte nicht meckern ;)
Nun ein paar fragen:
Der atmega läuft ja mit 5V und die SD-Karte + VS1011 laufen ja mit 3,3V.
Der pegel von 5V auf 3V wurde mit einen Spannungsteiler gemacht.
Beim VS1011 sind DREQ und SO (SDKarte DataOut) ohne Spannungsteiler, ist
das richtig so?
Hinterm VS1011 soll ein kleiner Verstärker der 2 lautsprecher betreibt.
Dazu wollt ich den TDA1552 nehmen und die Schaltung vom Datenblatt
übernehmen (siehe anhang). Geht das so?
Als Spannungsregler wird es ein LF33 für die 3,3V und LM7805 für die 5V.
Ein grafik-display kommt dann auch noch hinzu und später bekommt mein
wecker auch noch dcf77 spendiert.
Sieht noch jemand Fehler in der Schaltung? oder hat noch ein paar
verbesserungsvorschläge?
danke,
liebe grüße
nadine
Hallo Nadine,
wenn du die 5V nur für den Mega brauchst würd ich nen "moderneren" Typ
z.B 324P bzw gleich 644P nehmen, der bis 20Mhz spezifiziert ist und
diesen dann bei 3,3V betreiben. Ist bei 16Mhz dann etwas ausserhalb der
spec wird wahrscheinlich aber auch funktionieren.
Grüße
kaffeetas
@ kaffeetas
hab mir mal den 644P angeguckt. Der gefällt mir :) dann hab ich mehr
speicher für menü usw.
aber den mit 3,3V @ 16mhz betreiben? meinst du das geht wirklich gut?
die schaltung sollte ja stabil laufen.
ich hab nen 644 auf meinem AVR-NET IO läuft derzeit bei 14,xxx MHz
stabil bei 3,3V. Kanns morgen mal für Dich mit 16Mhz testen. Heißt aber
dann noch nicht das es bei Dir dann auch funktioniert ist aber ein
Indiz.
Grüße
kaffeetas
Dein Wecker wird sich auch auf 8 MHz noch langweilen. Mit 16MHz schaff
ich hier wav von HDD auf nen VS1011 und es ist sogar noch luft. Habs
nicht genau gemessen, aber knapp 2Mbit durchsatz bekomm ich ungefähr
hin. Ich glaube nicht, dass dann 8MHz bei mp3 ein Problem sein sollte.
Auch wenn du von SD holst.
Zumal du ja die Daten eh direkt von der Karte zum dekoder schieben
kannst. Bei meiner HDD MÜSSEN sie einmal durch den Controller.
Also: Den AVR auch auf 3,3V betreiben und du bist wieder ein paar Sorgen
los.
Wegen Programmierbarkeit: Die Slaves brauchen natürlich einen Pullup auf
der CS-Leitung, damit sie still sind, wenn der Controller sie nicht
ansteuert. Außerdem kann man in die MISO-Leitungen einen Serien-R
einbauen. Dann geht das Programmieren meist sogar, wenn der Slave auch
was sendet.
DREQ würd ich auf nen Interrupt-pin des AVR legen. Wenn du richtig
programmierst läufts sicher auch so, aber interruptgesteuert dürfte es
wohl einfacher werden.
Ich komme dank ineffizienter HDD-Zugriffe nicht ohne Interrupt aus :-(
AVDD und DVDD des VS solltest du trennen. Z.B. durch eine Spule in der
Zuleitung von AVDD. Du krigst sonst die Störungen des Digitalteils in
die Analogsignale rein. Außer dir ist's für nen Wecker sowieso egal.
Außerdem braucht der VS noch einiges an Kapazitäten: Jeder VDD-Pin 100nF
und analog- und digital-zweig nochmal ein paar µF (Steht im Datenblatt
oder Appnote wie viel genau, aber 1-10 solltens tun).
Die Cs in den Ausgängen des VS sind etwas groß für mein Empfinden. Zumal
der Eingang des TDA gerademal 220nF in Serie hat. Da sind die 100µF am
VS dann wirklich unnötig groß.
Der SD-Karte solltest du auf jeden Fall auch noch 100nF an VCC
spendieren. Hab gehört, dass die teilweise recht giftig reagieren, wenn
der C nicht vorhanden ist.
Am AVR gilt das gleiche wie bei allen anderen ICs auch: An JEDEM Vcc-Pin
muss ein 100nF Kondensator. Gibt sonst lustige Abstürze die man sich
nicht erklären kann...
Ansonsten schaut das eigentlich schon ganz gut aus. Soll das geätzt
werden? Dann würde ich noch Stiftleisten vorsehen auf die du die freien
AVR-Ports legst. Das erleichtert es, später erweiterungen hinzubauen.
Gruß, Sebastian
Vielen dank sebastian.
Wenn wirklich 8Mhz locker reichen, werd ich den atmega644 dann auf 10MHz
@ 3,3V laufen lassen. Dann hab ich noch genug reserven für display,
dcf77 und sonstige erweiterungen die mir noch einfallen.
Deine anderen verbesserungen hab ich jetzt im schaltplan geändert.
Nur mit der Spule in AVDD, weiß ich nicht wie ich das machen soll.
ich denke mal so:
+3,3V <--------(~~~)------> AVDD
was soll ich da für eine Spule nehmen und welchen wert? und muss bei
reichelt zu bekommen sein.
> Wenn wirklich 8Mhz locker reichen, werd ich den atmega644 dann auf 10MHz> @ 3,3V laufen lassen. Dann hab ich noch genug reserven für display,> dcf77 und sonstige erweiterungen die mir noch einfallen.
8Mhz reicht locker: Ich habe hier einen AVR mit 16MHz laufen, und der
kopiert damit 100KB/s von einer MMC Karte auf eine Netzwerkkarte.
Für eine 128kbit/s mp3 bräuchtest du 16KB/s. Selbst wenn deine
Implementierung nicht so effizient ist, reichen 8Mhz problemlos. Und
display + DCF77 sind da vernachlässigbar.
Noch eine frage.
Wie ist das mit der isp-schnittstelle bei 3,3V?
Hab das AVR-Evaluations-Board von pollin zum programmieren.
Also strom auf schaltung... dann isp-kabel zum pollin-board... dann
seriell zum computer.
Funktioniert das mit 3,3V?
liebe grüße nadine.
Hallo
ICh habe auch einen VS1011 mit SD-Karte am laufe schaffe auch locker
320kbit/s MP3 datein.
ICh habe ein AtMega644 @ 5V 14,7 MHz angeschlossen und die Pegelwandlung
erfolgt mit eine 74HC4050 (5V -> 3,3V) und zurück mit einem 74HCT125.
Mal eine frage dazwichen ich habe den Vs1011 mit 12.288Mhz am laufen. So
weit so gut aber da der SPI-Takt mit dem Quarz zusammen hängt wollte ich
mal fragen ob man auch einen 24.576Mhz 3. OBerton von z.B. Reichel
nehmen kann?
So hab mal die änderungen jetzt alle im schaltplan drin.
änderungen:
- ISP schnittstelle mit einem 74HC4053 vom vs1011 getrennt
- am vs1011 die fehlenden blockkondensatoren hinzugefügt
- am vs1011 avdd und dvdd getrennt und mit spulen 10µH
- DREQ liegt nun am INT0
- 100n am sd-slot hinzugefügt
- output-elkos auf 10µF umgestellt
Bleibt nur noch die frage wegen dem programmieren über die
isp-schnittstelle mit 3,3V?
danke schonmal an alle,
mfg nadine
10µH solltens tun. Passt also, wie du das eingeplant hast. Allerdings
braucht nur der Analogteil des VS so eine Entkopplung.
Schau dir das hier mal an. Da wird denk ich klar, wie ich das genau
meine:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC
Deine SPI-Slaves brauchen auf jeden Fall noch einen Pullup auf der
CS-Leitung. So wie's jetzt ist geht der AVR beim Programmieren in Reset
-> die Pins werden hochohmig -> deine Slaves suchen sich aus, ob sie
lieber aktiv oder passiv sind und treiben dann unter Umständen gegen
deinen Programmer.
Der 74HC4053 kann auch wieder raus. Das was du damit bezwecken wolltest
macht er so sowieso nicht.
Setz lieber in die SPI-Leitungen der Slaves noch ca. 1kOhm in Serie.
Dann wird der Strom von Slave zu Programmer auch dann nicht zu groß,
wenn doch mal was schief geht und die beiden gegeneinander treiben.
Wegen Programmierbarkeit bei 3,3V: Das hängt von deinem Programmer ab.
Wenn man's ganz korrekt machen will muss man einen levelschifter
dazwischen schalten. Meist genügen aber auch Serien-Rs (470 Ohm oder
so). Dann fließt halt ein Bischen Strom über die Clamping-Dioden des
AVRs. Allerdings sehe ich diese lösung in Zusammenhang mit deinem
SPI-Bus etwas kritisch. Ich würde mich mal nach levelshiftern umschaun.
Oberton-Quarz geht am VS10xx nicht. Es gibt spezielle Beschaltungen für
diese Quarze, die du halt nachbauen müsstest, aber einfach tauschen geht
nciht. Du kannst aber einen Quarzoszillator ranhängen. Das läuft bei mir
einwandfrei.
Aber so weit ich mich erinnere ist die SPI-Frequenz sowieso nur direkt
nach dem Booten durch die 12MHz begrenzt. Sobald man den Clock-Doubler
eingeschaltet hat zählt die interne Frequenz, also 24Mhz. Aber schau
besser nochmal im Datenblatt nach.
Was ich grad noch seh:
Der Pullup am Reset des AVR ist etwas klein. Der darf ruhig 4,7k oder
auch 10k haben. Bei mir läuft alles mit 10k pullup und 100nF gegen
Masse. Das Problem ist, wenn der Pullup zu stark, kann der Programmer
den Pin nicht mehr gegen Masse Treiben. Hängt halt auch wieder vom
Programmer ab.
Mehr hab ich jetzt nicht gefunden. Sollte dann soweit erstmal laufen :-)
Sebastian
>Oberton-Quarz geht am VS10xx nicht. Es gibt spezielle Beschaltungen für>diese Quarze, die du halt nachbauen müsstest, aber einfach tauschen geht>nciht. Du kannst aber einen Quarzoszillator ranhängen. Das läuft bei mir>einwandfrei.
Ok danke für deine Info da muss ich mich wohl mal nach einen Grundton
umsuchen.
>Aber so weit ich mich erinnere ist die SPI-Frequenz sowieso nur direkt>nach dem Booten durch die 12MHz begrenzt. Sobald man den Clock-Doubler>eingeschaltet hat zählt die interne Frequenz, also 24Mhz. Aber schau>besser nochmal im Datenblatt nach.
Stimmt laut datenblatt:
SPI Input Clock Frequency² CLKI/6
² Value for SCI reads. SCI and SDI writes allow CLKI/4
Und CLKI steht ja für Internal Clock Frequency also die schon durch den
Clock-Doubler durch ist.
Hallo,
ich lese hier schon ziemlich lange mit, und habe mich jetzt auch mal
angemeldet.
Im Anhang ist mein Player, der seit einigen Monaten mehr oder weniger
zufriedenstellend in meinem Autoradio läuft (Kassettenlaufwerk
rausgeschmissen), und dort den CD-Wechsler ersetzt.
Der Prozessor läuft mit 12,288 MHz, und der gepufferte Prozessortakt
geht dann an den MP3-Chip.
Ansonsten habe ich mich bei der Beschaltung des VS1011 an die
Application Notes von VLSI gehalten
(http://www.vlsi.fi/en/support/applicationnotes.html). In den dort zu
findenden "Layout Considerations" wird übrigens von einer Induktivität
an AVCC abgeraten.
Leo
Nochmal vielen dank, sebastian.
hab schaltplan geändert.
änderungen:
- den 74HC4053 weg
- 1kOhm in den spi-leitungen der slaves
- pullup in der cs-leitung von der sd-karte
- spule in dvdd entfernt
muss sonst noch irgendwo ein pullup?
Sry, bin schaltungstechnisch nicht so begabt. ich löte und programmiere
lieber :)
Werd mir dann nen usb-isp-programmer holen der umschaltbar ist auf 3,3V.
Wollt ich mir eh schonmal holen, damit ich auch auf mein lappi
programmieren kann.
Und noch ne ganz ganz kleine frage:
Hab mir folgenden quarz bei reichelt ausgesucht: 24,576000-MQ
Der hat 4 pins. 1 und 3 wie ein ganz normales quarz anschließen.. aber
was ist mit den pins 2 und 4? einfach an ground oder frei lassen?
danke,
mfg nadine
>Und noch ne ganz ganz kleine frage:>Hab mir folgenden quarz bei reichelt ausgesucht: 24,576000-MQ>Der hat 4 pins. 1 und 3 wie ein ganz normales quarz anschließen.. aber>was ist mit den pins 2 und 4? einfach an ground oder frei lassen?
Die Zwei Pins kannste weg lassen bzw sind nur Löt punkte
> muss sonst noch irgendwo ein pullup?
Ja, an XCS. Und ein Pulldown an XRESET. Dann können die
SPI-Serienwiderstände wegfallen.
GPIO0..3 sollten Pulldowns haben.
TEST an DVDD statt AVDD.
> Hab mir folgenden quarz bei reichelt ausgesucht: 24,576000-MQ> Der hat 4 pins. 1 und 3 wie ein ganz normales quarz anschließen.. aber> was ist mit den pins 2 und 4? einfach an ground oder frei lassen?
Schau Dir nochmal die Produktbeschreibung auf der Reichelt-Seite an:
"Pad 2 & 4: Metal lid and ground"
Also auf GND hängen.
Leo
So ich hoffe der schaltplan ist jetzt korrekt.
änderungen:
- xcs 10k pullup
- gpio 100k pulldown
- xreset 10k pulldown
- spi serienwiderstände entfernt
danke an alle die mir geholfen haben.
werd dann später mal bilder online stellen wenn der wecker fertig ist.
soll ein gehäuse aus gfk werden... hab schon nen schönes design im kopf
:)
AREF lässt du einfach offen. Der gehört nicht an VCC.
Zwischen AVCC und AGND noch einen 100n. Das der immer
wieder eingespart werden muss... Kosten doch nix die Dinger.
An AREF am besten auch gleich noch einen 100n falls
der ADC später doch mal benutzt wird.
> AREF lässt du einfach offen. Der gehört nicht an VCC.> Zwischen AVCC und AGND noch einen 100n. Das der immer> wieder eingespart werden muss... Kosten doch nix die Dinger.> An AREF am besten auch gleich noch einen 100n falls> der ADC später doch mal benutzt wird.
die 100n an avcc und agnd hätt ich schon reingemacht, hatte ich nur im
schaltplan vergessen.
und warum ich aref an vcc gepackt, weiß ich nicht... dummer fehler.
> Könnstet du die Board datei mit rein hängen? oder sogar die *.sch und> die *brd das wäre echt super!
hab die *.sch datei rangehangen mit den obrigen korrekturen. nen board
hab ich nicht erstellt, weil die schaltung auf lochraster kommt.
nur für den vs1011 wird ne platine gefräst wo dann auch die blockkondis,
elkos und quarz zum vs1011 raufkommt... und dann alles auf stiftleisten
rausgeführt wird. Das board für den vs1011 macht mein dad auf arbeit,
davon hab ich keine ahnung.
>Aber so weit ich mich erinnere ist die SPI-Frequenz sowieso nur direkt>nach dem Booten durch die 12MHz begrenzt. Sobald man den Clock-Doubler>eingeschaltet hat zählt die interne Frequenz, also 24Mhz. Aber schau>besser nochmal im Datenblatt nach.>>Stimmt laut datenblatt:>>SPI Input Clock Frequency² CLKI/6>>² Value for SCI reads. SCI and SDI writes allow CLKI/4
Das hier meinte ich:
Note: As tWL and tWH, as well as tH require at least 2 clock cycles, the
maximum speed for the SPI
bus that can be used for read operations is 1/6 of VS1011e’s external
clock speed XTALI. For write
operations maximum speed is 1/4 of XTALI.
Hallo Leute
Hab auch mal ein bisschen mitgelesen und einige Tips verwenden können.
Danke dafür an alle.
Hab nun mein Layout bestellt und bin nun an der SW.
Noch eine Frage: Wie funktioniert das genau mit dem direkten Übertragen
der Daten von der SD-Karte auf den VS1011?
Hab eine FAT16-Bibliothek, in der ich das File suche und öffne
(funktioniert hoffentlich :) ).
Wie wären nun die weiteren Schritte?
Hab eben auf dem Prozi noch weitere Interrupts die zur gleichen Zeit
auftreten, und da wärs natürlich schön wenn ich nicht noch mit
Audio-Daten hantieren muss.
Gruss
Humpe