Hallo liebe Hardware Expertinnen und Experten, ich bin neu hier im Forum und hätte ein paar Fragen zum Schaltungsentwurf eines Mikrocontrollerboards. Ich habe mich durch verschiedene Tutorials durchgekämpft und einen Schaltplan(im Dateianhang)für einen Atmega8-16PU Mikrocontroller entworfen, mit dem Ziel, eine entspechende Platine selber zu ätzen. Da ich noch nicht viel praktische Erfahrung mit solchen Schaltungen habe hoffe ich, dass ihr mir etwas helfen könnt und mich verbessert oder auf Fehler aufmerksam macht. Dabei hoffe ich auch, dass ich nicht nur besser verstehe, wie man etwas verschaltet, sondern auch warum man es so macht. Es wäre nett, wenn ihr einen kurzen Blick auf meinen Schaltplan werft. Zuerst zu meiner Schaltung. Ich möchste ein einfaches Mikrocontrollerboard entwerfen, mit dessen Hilfe ich die ganzen Standardtutorials durcharbeiten kann. Dazu gehört die Nutzung des ADCs, der UART, Analogkomperator, Timer usw... Meine erste Frage betrifft die Abblockkondensatoren. Wie ich gelesen habe, dienen sie dazu, bei den digitalen Schaltvorgängen eines ICs die Spannungsversorgung vor Spannungseinbrüchen zu schützen, also setzt man diese Kondensatoren immer möglichst nah an die Versorgungspinns eines ICs, oder? Als Wert wird meistens 100 nF angegeben. Wie kommt man auf den Wert? Ist das eine Näherung, für die man ermittelt hat dass es meistens gut funktioniert oder kann man das konkret ausrechnen? Ganz allgemein frage ich mich auch, wann es besser ist Keramik Kondensatoren zu verwenden und wann ELKO's besser geeignet sind. Meine zweite Frage betrifft die Serielle Schnittstelle. Ich habe mir überlegt, einen D-Sub Stecker zu verwenden und hoffe, dass ich die Pins richtig belegt habe in der Schaltung. Soweit ich das mitgekriegt habe, hängt das davon ab, welche Art von Kabel man verwendet (Null-Modem kabel vertauscht irgendwie Pin 2 und Pin 3, stimmt das?). Welche Kabel werden heute standardmäßig verwendet? Kenne mich da leider nicht so aus. Vielen Dank schonmal, ich hoffe die Fragen sind nicht allzu blöd für euch. Liebe Grüße, Flo
Florian L. schrieb: > Welche Kabel werden > heute standardmäßig verwendet? Kenne mich da leider nicht so aus. Serielle Kabel werden standartmäßig gar nicht mehr verwendet. Ist alles USB heutzutage. Ich würde die Geräteseite implementieren (also TX/RX genau andersherum als am PC), damit man einen USBtoRS232 Stecker direkt anstecken kann. Nein, ich schaue jetzt nicht nach ob Du da oben TX und RX im Schaltplan tauschen musst.
Florian L. schrieb: > . Zur ersten Frage: Elkos haben hohe Kapazität aber auch hohen ESR (Innenwiderstand) und hohe Induktivität. Sind daher für hohe Frequenzen ungeeignet. Eine Schaltflanke von 100ns hat (Kehrwert) 10MHz. Ergo: Wenn du ne PWM mit 500Hz machst, hast du da aber auch 10MHz mit drin (Daher kommen die EM-Emissionen die einem gern mal das Leben schwer machen, vor allem wenn man auf einem Board analog und digital gemischt hat). Der Strom dafür muss aus der Versorgung kommen, ergo wird die Versorgung auch mit nem 10MHz Ripplestrom belastet. Durch die hohe Induktivität+ESR fließt der praktisch gar nicht durch einen 1uF Elko, durch einen 100nF Keramikkondensator aber schon. Der Elko (meist so 1..20uF) ist dann dafür da, den 500Hz Teil deiner PWM abzupuffern. Da ist der Strom größer, also braucht man mehr Kapazität (mehr Ladung). Du dem Ripplestrom von sowas wie einer PWM kommt noch das, was Timer, CPU etc. fabrizieren. 20MHz kann son AVR. Das ist aber nur die Grundschwingung, da kommen noch Oberschwingungen drauf. Ich hab mich damit nie beschäftigt, aber so 100MHz Oberwellen werden drin sein. Ab spätestens 50MHz verhält sich ein üblicher Elko wie eine ideale Spule.
Du hast den Reset Pin fest gegen Masse gelegt. An den Pinheadern würde ich auch jeweils noch GND und VCC mit anbringen.
Ich setze da auch hinter den Regler nen Elko (100µF), dessen Trägheit verhindert das Durchgreifen kurzer Störimpulse. Und noch ne Transzorb (SMBJ5,0A) zum Schutz.
Florian L. schrieb: > ..... > Meine zweite Frage betrifft die Serielle Schnittstelle. Ich habe mir > überlegt, einen D-Sub Stecker zu verwenden und hoffe, dass ich die Pins > richtig belegt habe in der Schaltung. Soweit ich das mitgekriegt habe, > hängt das davon ab, welche Art von Kabel man verwendet (Null-Modem kabel > vertauscht irgendwie Pin 2 und Pin 3, stimmt das?). ..... Wenn Du da flexibel sein willst, kannst Du die Pins 2 und drei des Sub-D-Steckers per Steckbrücken umschlatbar machen. Das erspart Dir dann sowas wie Nullmodem-Kabel. Sonst sieht die Schaltung (bis auf die schon angesprochenen Änderungen/Ergänzungen) schon brauchbar aus (für den ersten Versuch sogar recht gut). Grüße Hoschti
holger schrieb: > Du hast den Reset Pin fest gegen Masse gelegt. Diesen "Kurzschluss" musst du (nicht holger) natürlich entfernen, ein Kondensator 10nF als Ersatz dafür wäre nützlich für die Stabilität des Reset Pins, inbesondere wenn der ISP Programmer dran hängt und die Reset Leitung leichter etwas auffängt. Für die SPI Leitungen zum ISP Header würde ich 3 Längswider- stände 100 Ohm als Schutz vorschlagen. C1 und C2 sollten für 4 Mhz mindestens 22-27pF haben. Ja, +5V und GND an jedem herausgeführten Port sind auch sehr nützlich, nur weisst du es heute noch nicht. Ansonsten hast du das für einen Anfänger ganz gut gemacht!
Erstmal vielen Dank an alle für die sehr schnellen Antworten. Jim M. schrieb: > Ich würde die Geräteseite implementieren (also TX/RX genau andersherum > als am PC), damit man einen USBtoRS232 Stecker direkt anstecken kann. Danke dir für die Antwort, das werde ich dann wohl auch so machen. @THOR Vielen Dank für die Erklärung, das ergibt einen Sinn für mich und ich denke, dass ich das in zukünftigen Schaltungen berücksichtigen kann :-) holger schrieb: > Du hast den Reset Pin fest gegen Masse gelegt. > An den Pinheadern würde ich auch jeweils noch GND und VCC > mit anbringen. Danke für die Info, da wir mir wohl ein Kondensator abhanden gekommen sein :-/. Welche Pinheader meinst du genau? Meinst du die offenen Pins meines D-SUB Steckers? Peter D. schrieb: > Ich setze da auch hinter den Regler nen Elko (100µF), dessen Trägheit > verhindert das Durchgreifen kurzer Störimpulse. > Und noch ne Transzorb (SMBJ5,0A) zum Schutz. Danke auch für den Tipp, das klingt sehr sinnvoll. Die Diode schalte ich quasi parallel zum Rest der Schaltung, um die Schaltung vor Spannungsimpulsen zu schützen, während die Stromimpulse durch den ELKO geschützt sind, richtig? So dann werde ich jetzt noch eure Tipps berücksichtigen und dann kommt die große Herausforderung, ein ordentliches Layout zu designen. Vielen Dank euch allen für eure Unterstützung. Bei weiteren Vorschlägen gerne schreiben :-)
Florian L. schrieb: > Meine zweite Frage betrifft die Serielle Schnittstelle. Ich habe mir > überlegt, einen D-Sub Stecker zu verwenden und hoffe, dass ich die Pins > richtig belegt habe in der Schaltung. Soweit ich das mitgekriegt habe, > hängt das davon ab, welche Art von Kabel man verwendet (Null-Modem kabel > vertauscht irgendwie Pin 2 und Pin 3, stimmt das?). Ich würde einen männlichen Stecker verwenden und RxD und TxD vertauschen. Dann brauchst Du zur Verbindung mit dem PC *) ein Null-Modem-Kabel mit Weibchen auf beiden Seiten (das war bei Null-Modem-Kabeln der Standard). Siehe hierzu auch den Kommentar in meiner Schaltung: https://www.mikrocontroller.net/attachment/140573/Cinni-Regler_V1.1_S4_sch.png Wie Du es gemacht hast, brauchst Du ein 1:1-Kabel ("Verlängerungskabel") mit Männchen an einer Seite und Weibchen an der andern. *) auch wenn PCs normalerweise keine RS232-Schnittstelle mehr haben; aber ich hoffe, dass die USB-RS232-Adapter sich noch an die alten Konventionen halten...
Horst V. schrieb: > Wenn Du da flexibel sein willst, kannst Du die Pins 2 und drei des > Sub-D-Steckers per Steckbrücken umschlatbar machen. Das erspart Dir dann > sowas wie Nullmodem-Kabel. Danke Horst, auf die Idee hätte ich auch kommen können. Des wäre natürlich am praktischten :-) Frickelfritze schrieb: > ein Kondensator 10nF als Ersatz dafür wäre > nützlich für die Stabilität des Reset Pins, inbesondere > wenn der ISP Programmer dran hängt und die Reset Leitung > leichter etwas auffängt Danke Frickelfritz für die vielen Hinweise:-) Ja, ich habe da tatsächlich einen Kondensator vergessen. Wie kommst du hier auf die 10 nF, sonst habe ich ja meistens 100nF verwendet? Frickelfritze schrieb: > C1 und C2 sollten für 4 Mhz mindestens 22-27pF haben. Auch hier würde mich interessieren wie du auf die 22-27pF kommst? Frickelfritze schrieb: > Für die SPI Leitungen zum ISP Header würde ich 3 Längswider- > stände 100 Ohm als Schutz vorschlagen. Da meinst du sicher die MOSI/MISO/SCK leitungen, oder? Also nicht die reset Leitung. Was schütze ich hier vor wem? :-D Frickelfritze schrieb: > Ja, +5V und GND an jedem herausgeführten Port sind auch > sehr nützlich, nur weisst du es heute noch nicht. Dient das dazu, jedem Port einen klar definierten Zustand zu geben? Oder gibt es einen anderen Sinn dahinter?
Dietrich L. schrieb: > Ich würde einen männlichen Stecker verwenden und RxD und TxD > vertauschen. Dann brauchst Du zur Verbindung mit dem PC *) ein > Null-Modem-Kabel mit Weibchen auf beiden Seiten (das war bei > Null-Modem-Kabeln der Standard) Klingt auch vernünftig. Also ich denk ich werde es mit einer Steckbrücke realisieren, so wie es Horst V. vorgeschlagen hat, dann bin ich flexibel. Aber einen männlichen Stecker zu verwenden klingt für mich gut, vorallem wenn die besagten Kabel standard sind. Danke dir :-)
Kann ich die nicht verwendeten IC Pins(z.B. IC2) einfach offen lassen oder sollte ich die auch auf definierte Werte setzen?
Florian L. schrieb: > Kann ich die nicht verwendeten IC Pins(z.B. IC2) einfach offen lassen > oder sollte ich die auch auf definierte Werte setzen? Die Eingänge würde ich auf definierten Pegel legen, die Ausgänge bleiben frei. Was Du aber auch machen kannst: Die ungenutzten Eingänge über Ziehwiderstände (sog. Pull-up) auf die Betriebsspannung legen und sie aber auch auf Steckkontakte führen. Du kannst dann nämlich auch mal einen MOSFET, der nicht explizit für low-Level Ansteuerung gedacht ist, mit der "hohen" Spannung des Schittstellentreibers ansteuern. So tat ich es auf meinem Experimentier-Platinchen. MfG Paul
Florian L. schrieb: > Ja, ich habe da tatsächlich einen Kondensator vergessen. Wie kommst du > hier auf die 10 nF, sonst habe ich ja meistens 100nF verwendet? Da streiten sich die Gelehrten ewig, meiner Meinung nach ergibt 100nF eine etwas zu lange Zeitkonstante, kann aber auch meistens gut gehen. Florian L. schrieb: > Auch hier würde mich interessieren wie du auf die 22-27pF kommst? Erfahrungswerte. Ein 20 MHz Quarz bekommt bei mir 2x18pF Florian L. schrieb: > Da meinst du sicher die MOSI/MISO/SCK leitungen, oder? Ja. Florian L. schrieb: > Was schütze ich hier vor wem? Den Prozessor vor zuviel falschen Strom bei Fehlern. Nein, ich weiss, du machst keine Fehler. Florian L. schrieb: > Dient das dazu, jedem Port einen klar definierten Zustand zu geben? Nein, der dranhängenen Peripherie ein Bezugspotential zu geben (GND) und ggf einem Verbraucher die Chance zu geben Versorgung (Vcc)zu bekommen.
Florian L. schrieb: > Schaltplan(im Dateianhang)für einen Atmega8-16PU Mikrocontroller > entworfen, Magst du nicht lieber einen neueren Prozessor nehmen der das gleiche Gehäuse hat und praktisch funktionskompatibel ist? Mehr RAM und Mehr Flash, das wird dir bei zukünftigen Projekten gut tun. Also spricht eigentlich alles für den ATMega328, das ist der Arduino-ATMega. und du könntest ihn auch mit 16 MHz laufen lassen. Ja du wirst es nie brauchen in der Zukunft. Oder doch vielleicht?
Florian L. schrieb: > Als Wert wird meistens 100 nF angegeben. Wie kommt man auf > den Wert? Ist das eine Näherung, für die man ermittelt hat dass es > meistens gut funktioniert oder kann man das konkret ausrechnen? Ganz > allgemein frage ich mich auch, wann es besser ist Keramik Kondensatoren > zu verwenden und wann ELKO's besser geeignet sind. Die hundert nF sind ein Erfahrungswert, der auch berücksichtigt, dass die Kapazität der SMD-Keramikondensatoren kaum eine Konstante genannt werden kann: Temperaturabhängigkeit: an den Grenzen des Temp-Bereichs nimmt C stark ab. Spannungsabhängigkeit: wenn auch höhere Spannung anliegt nimmt C auch stark ab. Beides zusammen kann C auf ein Viertel seines Nennwerts bringen. Bei Bestückung mit hochwertigen Stützkondensatoren könnten auch 10nF ausreichen oder auch 4,7nF, nur ist man mit 100nF allemal auf der sicheren Seite und kleinere Cs sind eher teurer, da sie seltener gebraucht werden und dann wesentlich konstanter in bezug auf Temp und U sein müssen. Der Stütz-C soll vor Allem den Spannungsabfall auf den Zuleitungen verhindern. Beim Umschalten der Logikgatter fließen für einige -zig ns Querströme, die in die hunderte mA gehen. Da würden schon bei mehr als 5cm Zuleitung zum nächsten Stützkondensator die Spannung am IC zusammenbrechen und die Logik ins Stolpern bringen. Das verhindert der direkt am IC liegende Stützkondensator zuverlässig. Ein Elko wäre unnötig groß, außerdem ist sein HF-Widerstand bei diesen sehr kurzen Impulsen viel höher als der eines Keramikkondensators.
:
Bearbeitet durch User
Florian L. schrieb: > Meine erste Frage betrifft die Abblockkondensatoren. > Meine zweite Frage betrifft die Serielle Schnittstelle. Beide sind eigentlich eindeutig. Meine erste Fraghe wäre: Wozu so ein Board, auf dem doch nichts drauf ist, ausser dem uC ? Wenn man Programme ausprobieren will, braucht man doch Peripherie, so ein uC an sich ist doch ziemlich nutzlos, man braucht Tasten, Anzeigen, du willst Analogsignale und vermutlich einige I2C/SPI Peripherie. Und die Bauteile willst du alle dranstöpseln ? Braucht man nicht gearde dafür eine Platine, nicht um den 1 uC, sondern um die dutzenden von Zubehörbauteilen unter zu bringen ? Ich an deiner Stelle würde versuchen die für dich interessantesten Experimente/Tutorials zusammenzusuchen, das nötige Drumrum zu ermitteln und alles auf die Platine packen was man zur Umsetzung der Experimente braucht, an den Stellen an denen die Pins kollidieren eben per Jumper umschaltbar. Und wenn du merkst, daß dich 2 oder 3 vöölig unterschiedliche Anwendungen interessieren, z.B. Multiplex mit LEDs und Tasten vs. Anwendungen mit LCD-Modul und Analogeingängen, dann entwirfst du halt 2 oder 3 Boards. So ein Board auf dem nichts drauf ist braucht kein Mensch, dann kaufe lieber eine Arduino (der lebt auch nur von seinen Shields).
Wenn du meinst, mit so einem Experimentier-Bord was anfangen zu köönen, habe ich nur wenige Änderungsvorschläge: Die RS232-Umsetzung ist seit WIN10 in Richtung PC kaum noch sinnvoll: Ich suche schon seit Monaten nach einer PCI-RS232- Karte die auch WIN10-kompatible Treiber hat... Da würde ich RxD, TxD und GND auf einen 3-poligen Anschluss-Port führen, die Umsetzung auf +/-12 V kann ein Mini-Bord von Pollin machen. Für eine kurze Verbindung µC-µC reichen die 3 Anschlüsse, wobei das 3-polige Verbindungskabel Rx und Tx kreuzen muss. Der Quarz kommt meist mit 2 x 27...33 pF näher an die Sollfrequenz und RESET an GND heißt: GEHT NIE! Nimm dort eher 27..47 k als PullUp und 10...100 nF als zeitliche Dämpfung. Vielleicht ist es auch noch sinnvoll, AVCC über eine Mini-Drossel 100 µH...1 mH an VCC zu schalten, C16 muss aber direkt an AVCC bleiben. - und AREF und AGND mit 2-poligem Anschluss von außen "zugänglich" zu machen, C11 muss aber direkt an AREF bleiben.
@Frickelfritze Danke erneut für deine Erklärungen. Vielen Dank. Frickelfritze schrieb: > Magst du nicht lieber einen neueren Prozessor nehmen der das > gleiche Gehäuse hat und praktisch funktionskompatibel ist? Ich habe hier noch drei Atmega8 rumliegen, deswegen nutze ich die jetzt. Aber klar, für spätere Projekte werden dann vermutlich andere Mikrocontroller verwendet. Ich denke, zum Lernen wie man ein Board designed und wie man mit Mikrocontrollern umgeht tut's der Atmega8 am Anfang auch. Peter R. schrieb: > Die hundert nF sind ein Erfahrungswert, der auch berücksichtigt, dass > die Kapazität der SMD-Keramikondensatoren kaum eine Konstante genannt > werden kann: > Temperaturabhängigkeit: an den Grenzen des Temp-Bereichs nimmt C stark > ab. > Spannungsabhängigkeit: wenn auch höhere Spannung anliegt nimmt C auch > stark ab. > Beides zusammen kann C auf ein Viertel seines Nennwerts bringen. Danke auch für diese Informationen, wider etwas gelernt. Tja, da sieht man den Unterschied zwischen einem Kondensator in der Theorie und in der Praxis. Michael B. schrieb: > Meine erste Fraghe wäre: Wozu so ein Board, auf dem doch nichts drauf > ist, ausser dem uC ? Ich denke ich finde einen Weg, das Board zu nutzen. Ich mag trotzdem nicht alles fest auf dem Board haben. Danke trotzdem für den Hinweis. Jacko schrieb: > Der Quarz kommt meist mit 2 x 27...33 pF näher an die Sollfrequenz > und RESET an GND heißt: GEHT NIE! Nimm dort eher 27..47 k als > PullUp und 10...100 nF als zeitliche Dämpfung. Danke für die Tipps Jacko schrieb: > Vielleicht ist es auch noch sinnvoll, AVCC über eine Mini-Drossel > 100 µH...1 mH an VCC zu schalten, C16 muss aber direkt an AVCC > bleiben. - und > AREF und AGND mit 2-poligem Anschluss von außen "zugänglich" zu > machen, C11 muss aber direkt an AREF bleiben. Wozu dient diese Drossel dann?
Mache die Portanschlüsse alle 10-polig mit GND und VCC. Dann kannst du später die Ports nach belieben austauschen und auch externe Elemente wie LCD oder auch I2C-Module anschließen.
Hallo Eine kleine Anmerkung noch zum Spannungsregler: Nimm einen, der selber schon einen kleinen "Eigenverbrauch" hat, wie z.B. den LP2950. Die gängigen 78xx brauchen allein schon mehr Strom als ein ATMEGA der zeitweise im sleep-mode ist. Gruß Ulf
Nur so: Ich verwende seit Jahren dieses Board: http://www.kreatives-chaos.com/artikel/atmega168-testboard-v2 Lediglich den MAX233 und die D-Sub habe ich gegen einen FTDI Chip und entsprechend eine micro-USB Buchse getauscht. Ich habe das Board einmal mit 5V und einmal mit einem 3.3V Spannungsregler aufgebaut . Beide haben definitiv ihr Geld verdient.
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.