Forum: Mikrocontroller und Digitale Elektronik Schaltplan in Ordnung ?


von Christoph W. (christoph)


Angehängte Dateien:

Lesenswert?

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 !

von beta-frank (Gast)


Lesenswert?

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)?

von Christoph W. (christoph)


Lesenswert?

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 !

von Arno H. (Gast)


Lesenswert?

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

von Wiesi (Gast)


Lesenswert?

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

von Christoph W. (christoph)


Lesenswert?

@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 ?

von A.K. (Gast)


Lesenswert?

"die Pufferkondensatoren für die Chips hab ich wirklich vergessen"

Angesichts von reichlich 74AC lässt das interessante Erfahrungen
erwarten.

von A.K. (Gast)


Lesenswert?

"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.

von Arno H. (Gast)


Lesenswert?

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

von Christoph W. (christoph)


Lesenswert?

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µ)

von Spirit (Gast)


Lesenswert?

"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 :)

von Christoph W. (christoph)


Lesenswert?

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*

von beta-frank (Gast)


Lesenswert?

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.

von Christoph W. (christoph)


Angehängte Dateien:

Lesenswert?

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 !

von Vorname N. (zoltan)


Lesenswert?

War die Pin-Belegung des AVR-ISP Steckers bei Atmel nicht anders?

von Christoph W. (christoph)


Lesenswert?

Schau auf die Pin-nummern. Das ist schon derselbe.

von Christoph W. (christoph)


Angehängte Dateien:

Lesenswert?

Hier das Layout nochmal als Bild. Was sagt ihr denn dazu ? Kann es da
Probleme geben ?

von Christoph W. (christoph)


Lesenswert?

BTW: Wie macht man ich Eagle eine Massefläche ?

von Arno H. (Gast)


Lesenswert?

Die Entkoppelkondensatoren vermisse ich immer noch, und wenn Du die
Möglichkeit hast, das Quarzgehäuse leitend mit Masse zu verbinden,
nutze sie.
Arno

von Michael K. (onkel_michi)


Lesenswert?

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

von Christoph W. (christoph)


Lesenswert?

@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
Noch kein Account? Hier anmelden.