Hallo. Könntet ihr euch bitte diesen Schaltplan etwas anschauen ? Ist mein erstes Projekt dieser etwas komplexeren Art und ich möchte einfach nur auf Nummer sicher gehen, bevor ich das Ding aufbaue. Das ist ein Webserver, der zugleich ein IDE und SD-Interface bieten soll. Weiter Features sind 128KB Banked RAM, der auf den Addressen 8000-FFFF des Ext. Busses liegt, ein LCD und eine kleine Tastermatrix, die auf dem LCD integriert sind und ein RS232-Interface. Die Netzwerkkarte soll mit dieser Logik über die Addressen 4000-5FFF angesprochen werden, die Festplatte von 2000-3FFF. Der Bereich 6000-7FFF würde sowohl Festplatte als auch Netzwerkkarte addressieren, daher möchte ich diesen der Einfachheit halber als "Reserved" lassen. Die Platine geht erst an eine Adapterplatine, sodass das Pinout des 31 pol. Verbinders oben links NICHT das einer ISA-Netzwerkkarte ist. R1-R8 (unten links) haben einen Wert von 10K-Ohm. Worauf müsste ich beim Layout (zweiseitige Epoxyd-Platine, 80x100)besonders achten ? Vielen Dank für alle Verbesserungsvorschläge !
Hab mich weder mit IDE noch Netzwerkkarten beschäftigt, von daher kann ich nicht viel nachvollziehen. Nur paar Gedanken: -Kann es Probleme mit der SCK-Leitung geben, wenn der AVR mit der SD-Karte spricht und der ISP-Adapter konkurrierend SCK-Signale ausgibt? -Kann der AVR via 10k die IDE-Eingänge (keine Ahnung, wie die elektrisch aussehen) sicher/schnell genug auf gewünschten Pegel ziehen? -Wozu ist die Verknüpfung AVR(WR and RD) = RAM(/OE) gut? Wenn Du auf RAM schreibst und AVR(WR) losgelassen wird (hi geht), ist RAM(/OE) noch für einige ns aktiv=low. Warum also nicht direkt AVR(WR)=RAM(/WE) und AVR(RD)=RAM(/OE)?
Vielen Dank für deine Gedanken ! Hier meine :) - Da ich den ISP-Adapter selbst gebaut habe, kann ich mit 100%-iger Sicherheit davon ausgehen, dass SCK nicht bedient wird, wenn RESET high ist. (der AVR im Betrieb ist) - muss ich selbst nochmal nachsehen. Der Latch IC3 soll nur D8..15 von der Festplatte über den Read- Vorgang hinaus puffern. (da die Daten sonst verfallen, bevor ich sie lesen kann) Beim Schreiben wird er deaktivert, und vom PortF wird D8..15 direkt angesteuert. Die Widerstände sollten nur einem Vorbeugen von Kurzschlüssen dienen. Villeicht ist die Größe etwas groß. Eigentlich müssten unter 1K auch noch OK sein. Korregiert mich bitte, wenn ich mich irre ! - Ich muss dir sehr herzlich danken ! Du hast mir soeben Schweinerei beim Routen gespart, indem du das einzige AND Gatter ratzfatz über- flüssig gemacht hast ! Tausend Dank !
Hast Du die Entkoppel- / Stützkondensatoren für die Spannungsversorgung der IC nicht mit eingezeichnet oder gar nicht vorgesehen? So 100 nF solltest Du schon jedem IC spendieren. Arno
Was die Wiederstände beim Festplatteninterface betrifft musst du beachten, dass das HDD Interface TTL Eingänge hat. (Zumindest die alten Festplatten haben das. Heute wird´s auch schon CMOS sein.) Also schön niederohmig bleiben. Wiesi
@Wiesi : Wie niederohmig ? @Arco H. : Die Spannungsversorgung ist separat (und mit mehreren schönen 1000µF ausgestattet ;-), die Pufferkondensatoren für die Chips hab ich wirklich vergessen hüstel. Brauchen Logik(en) und Latch(es) (verdammt, wie bildet man da die Mehrzahl ???) eigentlich auch 100nF ? Ich dachte eigentlich nur Prozessoren (oder vergleichbares) täten die benötigen ?
"die Pufferkondensatoren für die Chips hab ich wirklich vergessen" Angesichts von reichlich 74AC lässt das interessante Erfahrungen erwarten.
"Wie niederohmig" Zur Orientierung: Grössenordnung t=R*C bei RC-Glied: Bei 10KOhm und sagen wir mal 20pF für Pin/Fassung/Leitung/... gibt das 200ns.
An alle schaltenden IC gehört ein C möglichst kurz von Plus nach GND. Ausserdem lasse ich lieber ein paar Löcher oder Pads auf dem Print frei, als nachher noch auf der Platine rumzuflicken. Arno
An allen Logikchips werde ich dann die Pufferkondensatoren in die Durchkontaktierungen an GND und Vcc einlöten. Das ist sogar noch besser, als die separat unterzubringen (dichter dran) Am AVR hab ich das ganze als SMD in ca. 1cm Abstand (Leiterbahnlänge) untergebracht. @A.K. : Wie rechnet man eigentlich die Kapazität einer Leiterbahn aus ? Außerdem : du schriebst : "Pin/Fassung/Leitung", wie sieht das für SMDs aus ? (Position der Widerstände : Leiterbahnlänge zu beiden Seiten 1-1,5cm, Dicke 4mm, 35µ)
"die Pufferkondensatoren für die Chips hab ich wirklich vergessen" Direkt an den Chips sind die 100nF nicht zur "Pufferung", sondern zur Entstörung. Man fährt immer sicher, wenn man, wie Arno schon sagte, jede IC-Versorung mit einem C ausrüstet; und zwar so nah wie möglich am VCC Pin auf Masse. Also Puffer-C und Entstör-C verhalten sich wie Birne und Apfel... nur zur Verständnis :)
Jetzt wo ich das nochmal lese, fällts mir auch auf. schäm Das erste muss wohl vertippt gewesen sein und beim zweiten wars wohl schon zu spät. Ich hau mich jetz auch in die "Furzmulle" wie Klink sagen würde ;-D ("Schuuuuulz !" ;) Pufferkondensatoren waren ja die fetten, die vor Spannungseinbrüchen stützen. *merk**merk**merk*
Die fehlenden Entkoppelkondensatoren an den ICs(Vcc-GND)(So nenn ich jetzt mal die Mischung aus Puffer- u. Entstörkondensatoren;-) hatte ich auch glatt übersehen. Hatte links oben im Schaltbild die Versorgungspins durch freudschen Fehler als solche interpretiert und nicht länger hingeschaut, da ich die selbst im Schaltbild meist zentral anordne. Bei längerer Zuleitung von Netzteil zu IC machen die 100nF durchaus Sinn als Pufferfunktion, da beim Umschalten der IC-Ausgangsstufen kurzzeitig Stromspitzen auftreten, die schon wegen der Induktivität der Versorgungszuleitung zu Spannungseinbrüchen führen. Falls Du mal Muße hast, schau Dir mal CPLDs an. Mit ihnen kannst Du sowohl kombinatorisch Verknüpfen (AND, NOT etc.) als auch sequentiell (Taktgesteuert/Latches etc.). Damit könntest Du all Deine TTL-"Gluelogik" ersetzen, wahrscheinlich auch R1..R8 rauschmeißen und trotzdem dafür sorgen, daß es nicht zu Kurzschlüssen AVR<->IDE kommt. Da die Pinzuordnung an solch einem CPLD beliebig konfigurierbar ist, gewinnst Du beim Routing der Platine und "Änderungen der Hardware" lassen sich als Update einspielen. Z.B. Xilinx-CPLDs sind leicht zu beschaffen (Reichelt, Segor), VHDL-Entwicklungsumgebung ist beim Hersteller downloadbar, Chips lassen sich sockeln und das Timing Eingang->Verknüpfung->Ausgang ist (im Gegensatz zu FPGA) immer konstant. Beispiellink: http://www.holger-klabunde.de/projects/Xilinx.htm . Programmieren vorzugsweise in VHDL, geht aber auch grafisch - ähnlich wie Schaltbild zeichnen. Bis die erste "Hello-World"-LED blinkt, wirst Du etwas Zeit brauchen, aber ab dann sind kleinere Designs fix realisiert.
CPLD wurde mir in einem früheren Thread für das Projekt ausgeredet, da (Zitat) "du eh nur 1/34 eines CPLDs brauchst !". Villeicht später einmal. Ich hab schließlich so und so vor, in das Thema einzusteigen. Ich habe in den letzten Tagen einmal das Layout für die Platine gemacht. Könntet ihr mir dazu bitte auch eure Meinungen sagen ? Wie gesagt : Bei so komplexen Dingen gehe ich lieber auf nummer sicher und 4 Augen sehen mehr als 2. Maximalfrequenzen sind 14,??? MHz für den Quarz, 5 MHz für die Busleitungen. Anstiegszeiten für den Bus sind typ. 5ns, für die Logiken teils etwas schneller. Typische Leiterbahnbreite sind 4mm. Kann es bei diesem Design zu interferenzen kommen ? Vielen Dank für eure Bemühungen !
Hier das Layout nochmal als Bild. Was sagt ihr denn dazu ? Kann es da Probleme geben ?
Die Entkoppelkondensatoren vermisse ich immer noch, und wenn Du die Möglichkeit hast, das Quarzgehäuse leitend mit Masse zu verbinden, nutze sie. Arno
Das mit den Masseflächen ist im Platinenteil des Forums schön beschrieben. Habe sogar ich kapiert. Finde es nur im Moment nicht. Hast Du eigentlich schon einmal daran gedacht, das es sowas, wie Dein Webserver schon (fast) fertig gibt ? Das Teil heißt Ethernut und hat schon eine Ethernetschnittstelle drauf. (Allerdings habe ich sehr großen Respekt vor Deiner Leistung, weil ich mir so ein Projekt nicht zutrauen würde.) Viel Erfolg. Michael
@Arno H. : Danke für den Tipp mit dem Quarzoszillator. Werd ich über die Massefläche machen. Die Entkoppelkondensatoren werd ich übrigens wie schon erwähnt durch den (SMD) ICs benachbarte Vias einlöten. Das spart die extra Einplanung dieser und vermeidet das umrouten der ganzen Platine. Die ICs, bei denen das nicht möglich war, habe ich sofort mit Kondensatoren versehen (z.B. der AVR) @Michael Kirsten : Danke für den Hinweis, dass es auch ein Platinenforum gibt (hab ich noch gar nicht entdeckt) oha Hab gleich den pasenden Beitrag gefunden und schon umgesetzt. Ja, ich bin bei den Recherchen auch auf das Ethernut Projekt gestoßen, möchte jedoch ein schönes Projekt haben, um meine Elektro-AG ein Schulhalbjahr zu beschäftigen. ;-) Trotzdem : Würde das Platinchen auch funktionieren (von Layout und Schaltung her) ?
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.