Halooo Ich mache gerade ein Redesign meines Mp3-Players. Der alte lief nicht stabil und machte mir software-mäßig keine Freude. Diesmal MUSS es laufen. Ich habe diesmal ein wenig mehr auf das Platinendesign wert gelegt :-) Aber ich habe noch ein paar grunsätzliche Fragen! Erstmal zu meinem Konzept: Der Player besteht aus 2 Prozessoren gleichen Typs. 2x AVR32 UC3B. Damit komme ich auf unglaublich niedrige Stromaufnahmen von 18mA bei voller Lautstärke, wenn ich WAV abspiele und 23mA wenn ich Mp3 (320kb/s) decodiere. Stromsparen ist mein Hauptwunsch/ziel. Ich denke das habe ich damit ausgereizt. Zwischen den Prozessoren besteht eine Kommunikation über eine SPI oder USART (geht beides). Die Clock-Leitung dieser Kommunikation ist wegen der Pinlage wesentlich länger als die Datenleitungen. Die Kommunikation läuft mit max. 15Mhz. Clock (4.4cm / Daten : 1.8cm). 15Mhz ist ja schon relativ hochfrequent und 4cm lang. Ich habe daher die Datenleitungen durch Schlaufenlegen auf die Länge der Clockleitung angepasst. Die Datenleitungen liegen etwas von einander entfernt und ich habe Masse dazwischen gehauen, um eventuelles Übersprechen zu unterbinden. ->Nun frage ich mich, ob die Schlaufen eventuell wie eine Spule wirken und das ganze System noch anfälliger werden lassen? Die Schlaufen sind ringsrum mit Masse umgeben. Bzw VCC -> Da ich mir denke, dass das eventuell ungünstig ist, habe ich an der Stelle VCC extra nocheinmal abgeblockt - 1µ. Andererseits.. Hochfrequente boards haben auch schlängel und sind auch EMV-unempfindlich.. Kann mir das bitte jemand bestätigen? Ich will weder Sender noch Empfänger bauen ;-) ->Eine andere Leitung ist eine richtige SPI-Leitung die bis 60Mhz taktet. Diese versorgt einen CPLD mit Daten. Der CPLD ist extrem störempfindlich. (vor allem Übersprechen der Leitungen und Überschwingen durch Induktion) Die Leitungslänge ist ungefähr 3cm (1.8cm auf der Controller-Platine). Auch hier habe ich unteschiede durch schlängel ausgeglichen. So viel wie möglich Masse liegt ringsrum und zwischen drinne auch. Welche gefahren bestehen hier? Das darf weder übersprechen noch induktiv wirken. Außerdem quälen mich auch Grundsätzliche Fragen: -> Abstend Masse-Leiterbahn: so eng wie möglich, oder doch lieber etwas platz. Z.Z. sind es bei mir 0.2mm. Je enger, destro größer die Leitungskapazität. Mein Hersteller kann 0.15 Abstand. Was ist hier zu empfehen um Störungen zu vermindern? -> Dicke der Leiterbahnen: Haben dünne Leiterbahnen eine kleinere impedanz induktivität Kapazität als dicke? Um schnelle Signale zu übertragen.. was bietet sich an? So dünn wie möglich, oder eher standard..? Ich habe z.Z 0.2mm Leiterbahndicke. auch hier ginge 0.15mm. ->Die Versorgunsspannungen habe ich ordentlich abgepufert - dafür nur 0.4mm dick. Ich habe insgesamt 60Cs verbaut. Ich denke das reicht :-) Des weiteren habe ich Masse seeehr gründlich und wesentlich öfter als eigentlich nötig durchkontaktiert um niederohmigkeit zu gewährleisten. Die Borhungen sind bei mir 0.3 und 0.5mm. Sind die 0.3er schlechter oder sogar sinnvoller? ->Ich habe keine Ecken in den Leiterbahen - mache immer alles rund.. ist das ok oder bürgt das Probleme? Ich hänge einfach mal das Layout an.. wer lust hat, darf mal drüber schauen. Das is nur eine Platine von zweien. (da sist die mit den 2 controllern drauf.) Über konstruktive Antworten bezüglich meiner Fragen wäre ich sehr froh :-) Gute Hardware is der erste schritt zu guter Software. MFG Albi.
Stell die Platine doch noch als PNG rein. Nicht jeder hat eagle
Dein grundsätzliches Problem deine Leiterplatte störunempfindlicher zu machen habe ich ja soweit verstanden. Du solltest noch näher beschreiben bei welchen Störungen deine Schaltung bislang am empfindlichsten reagiert hat. Hinweise bietet dir evtl. das hier: http://www.mikrocontroller.net/articles/EMV_Einfache_Tester Die Maßnahmen, die du bisher ergriffen hast (runde Leiterbahnführung, gute Masseführung etc.) sind grundsätzlich richtig und sollten bei jedem Leiterplattendesign berücksichtigt werden um störfest zu werden. Eine Betrachtung des Leiterplattendesigns alleine reicht aber zum Erreichen wirklicher Störfestigkeit nicht aus. Es gilt außerdem noch hardwaretechnische Maßnahmen zu ergreifen (Flanken langsamer machen,...). Die Software spielt außerdem auch noch eine relativ große Rolle. Wenn es dir möglich ist poste doch mal den Schaltplan. Soweit ich es verstanden habe ist ja auch das Board mit dem CPLD am empfindlichsten. Poste dies doch auch mal. Kannst dich auch direkt bei mir melden.
Ich hätte da noch eine andere Frage: Was soll der MP3-player noch tun außer mp3s abzuspielen? Das sollte doch ein AVR32 auch locker schaffen, oder?
Gar nicht gut ist die Anordnung deiner Vias. In Pads und zu nahe daran geht gar nicht! Der Stopplack zwischen einem Pad und einem Via muss mind. 0.1mm breit sein. Sonst zieht es dir beim Bestücken das Zinn unter dem Pad weg (in das Via), und einzelne Pins/Bauteile sind dann nicht ordentlich verlötet. N$30 und N$42 kommen sich zu nah. Es nützt nichts, wenn du das im DRC einfach billigst, es ist ein Problem. Du hast mindestens ein Pad zu nah am Platinenrand... etc... Beseitige alle 87 DRC Fehler, und du wirst glücklich.
Ich löte das per Hand. Wenn Lötzinn in die Vias reinfließt freue ich mich höchstens über den geringer werdenden Widerstand. Das beseitigen der DRC-Fehler wird zu nix besseren führen. Ich kann sehr wohl bis an den Platinenrand Leiterbahnen legen.. ich sehe keine einschränkung, da ich nicht automatisch bestücke ;-) Das issn Hobby projekt ;-) Der Mp3-Player soll nix weiter tun als MP3 und WV abzuspielen. OGG wäre cool, aber dafür reicht der Speicher nicht. Das sind "nur" UC3B. dafür laufen die dinger aber quasi ohne Strom, wenn man das mit anderen gleichwertigen Prozessoren vergleicht. Es ghet nicht um die Leistungsfähigkeit des Prozessors, sondern eigentlich nur darum, dass ich ihn schön niedrig takten kann. Das Teil kümmert sich um die SD-Karte / Dateisystem und decodierung von 320kb/s schon bei 26Mhz fehlerfrei. Die Flankensteilheit ist leider durch den AVR UC3B festgelegt. Widerstände zur verlangsamung würde ich nur ungerne spendieren. ICh bin auch noch weit von Lamda/48 entfernt, glaube ich zumidnest. Reflexionen sind also hoffentlich kein Problem. Ich kann leider auch nicht beschreiben, was meinen Player imme zum Abstürzen bringt. Es ist leider nicht reproduzierbar. Außerdem fahre ich den Prozessor mit unterspannung (2.5V statt 2.7 und 1.5V statt 1.65V) Dafür takte ich ihn aber auch nur niedrig. Sollte also kein Problem sein. Erhöhen der Spannung hatte ja auch nix gerbacht. Hauptsächlich ist das Teil immer bei der Kommunikation hängen geblieben. Ich vermute da wurde ein paar bits zu viel/zu wenig erkannt. D.h. auf die 4cm schlängel kommt es an.. Würde denn das verkleinern der Leiterbahnen aud 0.15 etwas bringen? So weit ich weiß macht das ja den Abstand zwischen den Bahnen größer und somit reduziert sich das übersprechen.. oder? Bitte weiter um antworten :-) MFG Albi.
> Außerdem fahre ich den Prozessor mit unterspannung (2.5V statt 2.7 und
1.5V statt 1.65V) Dafür takte ich ihn aber auch nur niedrig. Sollte also
kein Problem sein.
ach?
Wie schoneinmal geschrieben: erhöhen der Spannung auf die Soll-Werte macht es nicht stabiler. Es soll jetzt auch nicht darum gehen. Wenn sich später herausstellt, dass es eine Fehlerquelle ist, kann ich die Spannung etws erhöhen. Hier geht es aber erstmal um das prinzipielle Leiterplattendesign. Die Platten sollen so unanfällig wie nur möglich sein. Dafür brauche ich nur ein paar merkregeln: 1) was verhindert übersprechen effektiv (Leiterbahndicke / Massefläche dazwischen / min entferngung der "befeindeten" Leiterbahnen usw) 2) sind mäanderförmige Leiterbahnen anfälliger gegenüber einkoppelungen, da sie eine höhere induktivität haben? wie wirkt sich das uim schlimmsten falle aus 3) signal führende leitungen so dünn wie möglich, oder eher nicht.. MFG
Hallo Albi, Übersprechen gibt es viele. Kapazitiv, Induktiv,... . Das Wesentliche was hier wohl eintritt ist die Kapazitive Kopplung. Die kann man verringern indem man die Kopplungsmechanismen (Koppelflächen, Koppelabstand) variiert. Die Koppelflächen also klein. Dann kommt aber das nächste Problem, dass die Leitung induktiv wird. Also einfach mal eine GND-Fläche zwischen die beiden Leitungen. Da geht dann schonmal ein Teil der Kopplung Richtung GND. Alles wird natürlich nicht weg sein. Grundsätzlich sucht man das Problem an der Stelle wo es auftritt. Das ist allerdings schwierig, da die meisten weder H-Feldsonden geschweige denn eine TEM-Zelle oder ähnliches zuhause haben. Was ich mir an deinen Board frage ist folgendes, warum drehst Du den AVR nicht um 90 Grad? Dann könntest Du deine drei Leitungen geradlienig legen und die Clock-Leitung (COM_CLOCK) wird auch etwas kürzer. Was noch auffällt ist folgendes. Du hast sehr viele Kreuzungen von Signalleitungen auf ober und Unterseite. Das Problem hierbei ist, dass Dein Rückstrom z.B. der Clockleitung (COM_CLOCK) von mehr als 10 Leitungen in seinem Fluss behindert wird. Der Rückstrom bei hohen Frequenzen folgt nämlich ziemlich genau dem Hinstrom. D.h. bei der Clockleitung (COM_CLOCK) läuft der Rückstrom auf der Unterseite der Platine der Leiterbahn nach (je höher die Frequenz desto prägnanter wird das). Ähnliches gilt für Deine 3 Datenleitungen die auf der Oberseite durch DECODER_CLOCK gekreuzt werden. Das ist zwar nicht einfach umzusetzen (ausser vielleicht mit einer 4-lagen Platine) aber bei kritischen Signalen sollte man das bedenken. Solltest Du mal die Gelegenheit haben dir eine Feldsimulation auf Leiterplatten anschauen zu können, dann mach das. Da kommt man ab und an ins staunen. Aber wie schon gesagt. Man sollte erstmal suchen wo genau der Fehler liegt. Und das ist im Bastelkeller oft nicht ganz so einfach. Gruß und viel Erfolg Olaf
hmmh. Vielen dank für die Antwort :-) Ich kann den einen Chip nicht drehen, da sonst die 60MHz-SPI zu lang wird und das is definitiv das empfindlichste. ;-) Ich habe schon versucht, das ganze nach Prioritäten zu routen. Der Punkt mit der DECODER_CLOCK.. das ist eine Leitung auf der ständig 4MHz anliegen werden. Wobei die letzlich nicht sonderlich fehleranfällig sind.. meinst du, ich sollte das nocheinmal ändern? Die Kommunikatoin läuft ja auch nur im Worst-Case auf 15Mhz normalerweise bei 2-8Mhz. Aber auch bei 15MHz sollte die funktionieren. Du meinst also, dass ich quasi an jedes Via einer gefährdeten leitung ringsrum GND-Viad lege, damit der Strom besser fließen kann? Das ist kein Problem :-) Wo der wirkliche Fehler liegt, kann ich leider nicht sagen. Er tritt einfach zu selten auf. ICh will eifach nur Platinenprobleme ausschließen... MFG
Du kannst die Schlaufen mal komplett vergessen, bei der niedrigen Taktrate macht das abolut nichts aus. Guck dir das Timingdiagramm an und überlege dir mal, ob da wirklich ein Problem besteht. Ich sehe keines, Schlaufen bei diesem Design sind eigentlich nur der Beweis für das Vortäuschen von kompetentem Fachwissen.
Und generell...abgerundete Leiterbahnen, mache dich bitte nicht lächerlich.
Och junge... nich so rumtrollen... ich wollte extra kompetente hilfe ;-) Sowas suche ich mir ja nicht, wenn ich selber die Kompetenz habe.. schlaumeier.. ätsch. 15MHz ist meines Erachtens schon eine empfindliche Frequenz.. das ist keine 500kHz SPI, die da laufen soll. Ein fehler auf der Leitung und das Teil wird sich aufhängen. Meine CLK-leitung ist immerhin doppelt so lang, wie die Datenleitungen. Jetzt sind alle im 4cm-Bereich. Keine Ahnung, ob das ein Vorteil ist.. deswegen erfrage ich das ja. Runde leitungen: lassen sich komischer weise besser verlegen und brauche insgesamt weniger platz. Keine Ahnung, warum das so ist.. kann auch sein, dass ich mir das einbilde, aber es klappt super :-P Das nennenswerte Reflexionen auftreten denke ich eher nicht. Selbst bei den 60MHz solten das keine Probleme geben. die Leitung wird insgesamt 3cm lang. Es wäre cool, wenns noch weitere Meinungen gibt.. aber bitte mit anderem Ton :-)
>kann auch sein, dass ich mir das einbilde Die kürzeste Verbindung zwischen zwei Punkten ist leider kein Bogen, daher tippe ich auch auf Einbildung. Im übrigen ist die Frequenz völlig egal, ausschließlich die Flankensteilheit ist relevant. >die Leitung wird insgesamt 3cm lang. Vielleicht nur so als Info, ich habe mein MP3-Player auf Lochraster gelötet. Waren zwar nur 8MHz SPI, aber die die Leitungsverlegung war halt lochrastermäßig. Funzte einwandfrei und die Datenintegrität war immer gegeben.
Jo, das kann sein, mein alter funktionierte auch wunderbar... Aber die 60MHZ SPI wird von einem CPLD empfangen.. und der ist, so wie es aussieht herzlich epflindlich, was störungen angeht. zur Zeit kann ich mit 3MHz nichtmal 5cm übertragen.Ich vermute das leigt an den Oberwellen der Flanke.. die werden scheibar auch als Impuls erkannt (der CPLD kann 200MHz) ICh will halt jede möglichkeit äußerer störungen ausschließen.. dazu gehört es auch niederfrequente signale ordentlich zu routen. ICh selber wäre auch dafür die Schlängel wieder weg zu machen. Wie gesagt.. keine Ahnung om das bei 15MHz und 4cm bzw 2cm unterschied schon kritisch ist..
> 15MHz ist meines Erachtens schon eine empfindliche Frequenz.. das ist > keine 500kHz SPI, die da laufen soll. Das sieht man mal das Analogtechnik doch wichtiger ist als Digitaltechnik und das abmalen von anderen Platinen nichts bringt wenn man die Hintergruende nicht versteht. :-D Das verlaengern einer Leitung kannst du dir sparen. Es ist Aufgabe des Clocks deine Daten zu syncronisieren. Wenn du aber nur eine Datenleitung und eine Clockleitung hast kann das nichts schiefgehen. Es ist ausserdem vollkommen egal ob dein Bus mit 15Mhz oder 15Hz laeuft, die Stoerungen kommen durch die Anstiegsgeschwindigkeit der Flanken, beziehungsweise Reflexionen an den Leitungsenden. Ein Indiz ist dafuer auch dein CPLD, die wollen naemlich sehr schnelle Eingangsflanken sehen und reagieren auch sofort wenn es nur eine winzig kurze Reflexion gibt die langsamere ICs nichtmal bemerken. Die Loesung sieht normalerweise so aus das man die Leitung terminiert. Allerdings wundert es mich das du bereits bei nur 4cm Leitungslaenge damit ein Problem hast. Falls dein Ausgang aus irgendwelchen Gruenden zu langsam ist, z.B weil dein IC mit Unterspannung laeuft, so koenntest du am CPLD den Eingang auf Schmitt-trigger umschalten, oder einen davor bauen wenn der das nicht kann. Olaf
Gut.. also nehme ich die Schlängel wieder raus. Was das terminieren angeht: das wollte ich eigentlich vermeiden.. das zieht ganz schön strom. Ích sehe einfach ein paar widerständ evor uns gut. muss man ja nicht bestücken. Ich geb zu das wildes gekabel meines jeztigen CPLD-Aufbaus vielleicht nicht das Wahre ist. Ich hoffe, das läuft irgendwann einfach stabil, wenns auf Platte ist. ..es wäre bloß schön das auch vorher zuu wissen ;-) Ivh setz noch ein paar Masse-Vias und gut :-)
"Masse" ist so nen ganz gutes Stichwort. Durch deine wild verlegten Traces hast du dir eine recht unklare Grunding-Situation geschaffen. Überlege dir mal, wie der Strom von deinen ICs zur Stromversorgung zurück fließt. Ich würde an deiner Stelle auf 4 Lagen gehen, und eine Lage für Masse vorsehen. Route auf einem Grid, und mit 45° Knicken. Dann sieht's auch nicht so grausig aus.
Hi Wenn du den Rat von Roland (2. Beitrag) berücksichtigt hättest, würdest du vielleicht noch mehr Hilfe bekommen. Oder erwartest du, das sich wegen dir jemand EAGLE installiert. MfG Spess
Nix is. Eagle rulez :-P So aber mal ernst: Multilayer kostet einfach zu viel. das kann ich nicht mehr bezahlen...Ich würde viel mehr einfach mehrere Masseleitungen legen.. An sonen Akku kann man ja mehr als nur ein Minuskabel löten ;-) Die Masse macht mir sowieso sorgen. ICh habe ja 2 Platinen, die später ünbereinander liegen. die zweite Platine (auf der sind dann Display und SD-Karten) hat nur 2 Masseberbindungen ach unten. mal sehen, wuie ich das geregelt bekomme... Ich denke an meiner Masse kann ich nicht mehr vie ändern.. außer dass ich sie noch mehr durchlöchere. ICh werde die Platine morgen Schlängefrei rauschschicken zum fertigen.mal sehen, wie dann das ergebnis aussieht. Der jetzige Player funktioniert ja auch... und da drauf siehts wirklich grußelig aus ;-)
> Was das terminieren angeht: das wollte ich eigentlich vermeiden.. > das zieht ganz schön strom. Ich terminiere immer mit 100R+100pF, zieht nur Strom wenn Bewegung auf dem Bus ist. Passt dir das nicht, so lernst du jetzt warum schnelle Sachen immer viel Strom ziehen. :-) Ansonsten empfehle ich dir mal dir das Signal mit einem schnellen Oszi, mindestens 100Mhz oder besser einmal mit und einmal ohne Terminierung anzusehen. Danach nimmst terminierst du dann immer... Willst du Strom sparen dann koenntest du den Wert des Kondensators verkleinern. Aber dabei solltest du dir halt dein Signal auf dem Bus ansehen. Wichtig ist das eigentlich nur beim Clock-Signal. Die Datenleitung sollte schon stabil sein wenn die Clockflanke kommt. Olaf
So. Ich klinke mich jetzt hier aus aus der Diskussion. a) Du willst offenbar nichts lernen sondern lieber ewig diskutieren - die ganzen Tips gehen ins Leere b) Wenn dir eine seine Hilfe anbietet, und mit Eagle-Files nichts anfangen kann, dann ist es schon ziemlich arrogant zu sagen "Nix is. Eagle rulez :-P". Ich benutze auch gerne Eagle, aber kann mir auch vorstellen, dass andere Leute andere Systeme gut finden und mir trotzdem helfen können. Ich stelle jetzt für dich dein Design als PNG rein, damit sich jeder mal ein Bild machen kann :-P :-P :-P c) Ich wünsche viel Spaß beim Kabel verlegen und hoffe du hast eine gute Abisolierzange, damit deine Fingernägel nicht zu sehr beansprucht werden.
ich glaub, er will weniger tipps, sondern nur hörn, nur toll sein projekt und natürlich er ist. v.a. die leiterbahnführung hats ihm scheinbar angetan...
Hallo Albi, bei schnellen Flanken ist ein konstanter Wellenwiderstand über die gesammte Leitungslänge wichtig. In Verbindung mit einer einfachen Serienterminierung direkt an der Quelle brauchst du dann auch keinen extra Strom.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.