Hallo zusammen,
ich stelle gerade ein paar Überlegungen an, wie ich Ethernet, USB (UART)
und eine MikroSD-Karte am besten an den ATMega128 anschließe. Dazu habe
ich mich bereits durch ein paar Seiten im Internet gearbeitet und habe
einen Schaltplan zusammengestellt. Ich bin der Meinung, dass der so
richtig sein sollte, aber bevor ich mir ein paar teure Bauteile
zerschieße, wollte ich das geballte Wissen dieses Forums anzapfen. So
hoffe ich, dass die gröbsten Fehler vorher entdeckt werden.
Es wäre super, wenn ihr mal den Schaltplan kontrollieren könntet. Ach
ja, der ATMega und die Spannungsversorgung sind nicht drauf um es
übersichtlicher zu halten, aber ich glaube, dass der Plan noch
verständlich genug ist. Ansonsten poste ich diese Details gerne noch im
Nachgang ;)
LG, Timo
PS: Die Preisdifferenz für SD-Kartenhalter bei R..chelt (>5€) und bei
Po..in (1,5€) sind ja gigantisch. Und der Billigere ist der Bessere :/
Statt Pegelwandler zu benutzen, die bei SD Karten übrigens warscheinlich
eher schlecht als recht funktionieren werden, würde ich eher den AVR mit
3,3V betreiben. Das wird Dir eine Menge Stress ersparen.
Wenn Dir die 16Mhz Taltfrequenz nicht ausreichen, steig auf einen Xega
um.
Bei SD Karte und Ethernet Controller fehlen Abblock-Kondensatoren.
Braucht der USB-UART wirklich einen Quarz? Der Silabs CP2201 kommt ohne
aus, und die Chips von FDI ebenfalls, soweit ich mich erinnere.
Ich habe irgendwo gelesen, dass man SD Karten im Standard-Format
zwischen die Pins von Pfostensteckern Klemmen kann. Das wäre noch
billiger.
Der MCP2200 ist eigentlich ein PIC-Controller, der die USB-Kommunikation
übernimmt. Daher braucht es einen Quarz. Das schöne ist, dass es ein
SOIC20 Gehäuse hat und damit besser zu löten ist, als ein SSOP28
(FT232).
Was die 3,3V angeht, wäre es sicher einfacher direkt auf 3,3V zu gehen.
Dann würde ich den Controller mit 12-14 MHz laufen lassen. Das ist
eigentlich kein großes Problem.
Wenn ich bei Google "Level shifting" eingebe, dann sehe ich die
Schaltung mit dem 2N7000 das ein oder andere Mal. Die Spannungsteiler-
oder Z-Dioden-Lösung wollte ich vermeiden.
Aber warum ist der 2N7000-Pegelkonverter deiner Meinung nach nicht für
die SD-Karte geeignet?
Die Pegelwandlung per FET ist reichlich langsam vor allem mit so
hochohmigen Widerständen.
Damit dürften auf dem SPI kaum noch 2 MHz drin sein.
Dieser Level-Shifter kommt aus einer Phillips Application-Note zu I2C.
Sowas wie 74LVC1G125GV funktioniert da auch noch deutlich flinker.
Für die Chip-Select würde es aber auch ein einfacher Inverter-Transistor
mit Pullup tun.
Hmm, zwei Quarze und an beiden die "Standard" 22pF dran, wenn die nicht
zufällig zu den Quarzen passen funktioniert weder USB noch Ethernet
richtig.
Denn 22pF und Quarz zusammen ist eben nicht Standard...
Timo schrieb:> Der MCP2200 ist eigentlich ein PIC-Controller, der die USB-Kommunikation> übernimmt. Daher braucht es einen Quarz. Das schöne ist, dass es ein> SOIC20 Gehäuse hat und damit besser zu löten ist, als ein SSOP28> (FT232).
Die FT230XS sehen nett aus, SSOP16 und wie der FT232RL ohne Quarz.
Hab die schon ne Weile hier, braucht aber nicht wirklich was mit USB.
Nimm doch gleich einen PIC32MX695F512L. Der hat 100MBit Ethernet und USB
OTG gleich eingebaut und dazu noch ein Vielfaches an Rechenleistung und
Speicher. Von der Hardware her ist der auch nicht komplizierter zu
handhaben als ein Mega 128 (außer dass es ein 3.3V-Chip ist), und
IP-Stack und USB-Stack hat Microchip für Dich schon entwickelt.
fchk
Rudolph schrieb:> Hmm, zwei Quarze und an beiden die "Standard" 22pF dran, wenn die nicht> zufällig zu den Quarzen passen funktioniert weder USB noch Ethernet> richtig.> Denn 22pF und Quarz zusammen ist eben nicht Standard...
Beim ENC28J60, wie auch beim MCP2200 sind sehr häufig die 22PF
Kondensatoren verwendet, wenn man nach entsprechenden Schaltungen bei
Google sucht. Aber gerade beim MCP werden auch hin und wieder 18pF oder
27pF benutzt.
Wie würdest Du die richtigen Kondensatoren ausrechnen? Da wäre ich über
Hilfe sehr dankbar, da ich mir darüber tatsächlich noch nie Gedanken
gemacht habe.
Was die Pegelanpassung angeht, werde ich die wohl weglassen und den
Mikrocontroller mit 3,3V versorgen. Da spare ich mir die ganzen Bauteile
und mit 12-14MHz ist der µC noch schnell genug.
LG, Timo
>Wie würdest Du die richtigen Kondensatoren ausrechnen? Da wäre ich über>Hilfe sehr dankbar, da ich mir darüber tatsächlich noch nie Gedanken>gemacht habe.
Ich habe mir darüber auch noch nie Gedanken gemacht.
Ich schaue ins Datenblatt zum Chip.
Da stehts drin.
Und so wirds dann auch gemacht.
Ganz ohne denken oder gar rechnen.
Auch würde ich evtl. einen anderen Ethernetchip wählen.
Der ENC28J60 ist, glaube ich, etwas doof. Also evtl. zu viel Arbeit für
den AtMega. Auch ist die Begrenzung auf 10 Base-T kaum noch zeitgemäß,
wenn auch wohl ausreichend.
Und überhaupt:
Man kann sich schön die Schaltbilder für die Arduino R3 Generation
anschauen. Deren R3 Ethernet Shield tuts mit 3,3V und 5V. Ebenso der SD
Slot.
Ulrich F. schrieb:> Ich schaue ins Datenblatt zum Chip.> Da stehts drin.> Und so wirds dann auch gemacht.> Ganz ohne denken oder gar rechnen.
Im Datenblatt der Chips steht eben nicht drin, welche Lastkapazität der
eingesetzte Quarz hat und mit welchen Kondensatoren den man folglich
versehen sollte.
Für viele Anwendungen ist es ja egal, ob der Quarz nun auf 12,005 oder
11,995 MHz schwingt, solange er überhaupt schwingt, für einige
Anwendungen aber eben nicht.