Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
elektronik_labor:tipps_fuer_schaltungserstellung [2020/08/30 21:25]
tfischer
— (aktuell)
Zeile 1: Zeile 1:
-====== Generelles ====== 
- 
-  * [[http://rn-wissen.de/wiki/index.php/Abblockkondensator|Alle ICs mit Kondensatoren an den Stromversorgungspins versehen!!!]] Diese müssen nahe am IC liegen. Die Kondensatoren kompensieren Störungen auf der Versorgungsleitung. Sinnvoll sind hier Keramikkondensatoren mit 100 nF, da diese einen geringen [[https://de.wikipedia.org/wiki/Kondensator_(Elektrotechnik)#Normung_und_Ersatzschaltbild|äquivalenten Serienwiderstand]] haben. Auch bei Operationsverstärker, ADC-ICs, … sind diese vorzusehen. 
-  * Theoretisch können Sie alle Ports zu Ein/Ausgänge umkonfigurieren. In der Praxis sind die verwendeten Ports **weise** zu wählen: 
-      * Es ist umständlich, aus einem mit JTAG belegten Pin einen Ausgabe-Pin zu machen. 
-      * Es ist manchmal besser einen Analoginput zur Eingabe von mehreren Binärwerten zu nutzen (z.B. über [[https://de.wikipedia.org/wiki/R2R-Netzwerk|R-2R-Netzwerk]], [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+50+5+50%0AS+208+432+144+432+0+0+false+0+2%0A368+304+432+304+384+0+0%0A167+544+432+624+432+0+4%0AR+544+528+480+528+0+0+40+4.6+0+0+0.5%0AM+640+528+672+528+0+2.5%0AM+640+496+672+496+0+2.5%0AM+640+464+672+464+0+2.5%0AM+640+432+672+432+0+2.5%0AR+80+416+80+368+0+0+40+5+0+0+0.5%0Aw+144+416+80+416+0%0Aw+80+416+80+528+0%0Aw+144+448+96+448+0%0Aw+96+448+96+560+0%0Ar+208+432+304+432+0+2000%0Ar+304+432+304+544+0+1000%0Ar+304+544+304+656+0+1000%0Ar+208+544+304+544+0+2000%0Aw+96+560+96+672+0%0Aw+144+560+96+560+0%0Aw+80+528+80+640+0%0Aw+144+528+80+528+0%0AS+208+544+144+544+0+0+false+0+2%0Ar+304+656+304+768+0+1000%0Ar+208+656+304+656+0+2000%0Aw+96+672+96+784+0%0Aw+144+672+96+672+0%0Aw+80+640+80+752+0%0Aw+144+640+80+640+0%0AS+208+656+144+656+0+0+false+0+2%0Ar+304+768+304+880+0+2000%0Ar+208+768+304+768+0+2000%0Aw+96+784+96+896+0%0Aw+144+784+96+784+0%0Aw+144+752+80+752+0%0AS+208+768+144+768+0+0+false+0+2%0Ag+96+896+96+928+0%0Ag+304+880+304+928+0%0Aw+544+432+304+432+0%0Ab+418+352+708+600+0%0Ab+48+352+366+966+0%0Ax+475+339+635+342+4+24+Analogeingang%0Ax+112+339+296+342+4+24+Mehrere%5CsSchalter%0Ax+169+481+198+484+4+24+S3%0Ax+169+593+198+596+4+24+S2%0Ax+170+703+199+706+4+24+S1%0Ax+171+819+200+822+4+24+S0%0A|Falstad]]). 
-  * Berücksichtigen Sie bereits bei Der Schaltungserstellung das Layout. Es ist einfacher von einer vorhandenen Schematic **und Board** auszugehen und dort die nicht benötigten Komponenten zu löschen.  
-  * Falls Sie Eagle per Tastatur bedienen wollen, können Sie auf den Seiten des [[http://web.mit.edu/xavid/arch/i386_rhel4/help/24.htm|MIT]] die Editor-Commands finden 
- 
-====== 101 - Schaltplan zeichnen ====== 
- 
-===== Anlegen der Dateien ===== 
- 
-<WRAP right> 
-<imgcaption pic01|fertige MMC 1x1 328PB Platine> 
-{{elektronik_labor:enlargemexleboard4.gif}} 
-</imgcaption> 
-</WRAP> 
- 
-Eine neue Platine des Mexle-Systems sollte auf Basis einer vorhandenen Platinen erstellt werden, z.B. 
-  - Microcontroller-Platinen auf Grundlage der [[mexle2020:mmc_1x1_328pb|MMC 1x1 328PB]] Platine 
-  - Hookup-Platinen auf Grundlage der [[mexle2020:mcb_1x1_basis_hookup|MCB 1x1 Basis Hookup]] Platine 
-  - andere separate Platinen auf Grundlage der [[mexle2020:mcb_1x1_basis_hookup|MCB 1x1 Basis Platine]] 
-Nachdem die *.brd und *.sch Dateien heruntergeladen wurden, sollte wie folgt vorgegangen werden: 
-  - Zunächst sollten *.brd und *.sch Datei im gleichen Ordner vorliegen.  
-  - Anpassen der Schematic:  
-    - Die *.sch Datei kann durch einen Doppelklick im Browser geöffnet werden 
-    - Die nicht notwendigen Komponenten können durch Markieren (z.B. Ziehen einer Auswahl mit der Maus) und Löschen (z.B. drücken der %%<Entf>%%-Taste) entfernt werden 
-  - Anpassen des Boards 
-    - Für größere Boardabmaße müssen die Abstände zwischen den Modulen auf dem Modulträger berücksichtigt werden. Die Maße eines neuen Boards $l$ und $b$ sollten nach folgender Rechnung gebildet werden: $l = 1zoll + (n-1) \cdot (1,1zoll)$ \\ Das bedeutet, dass ein 2x3 großes Modul die Maße $2,1zoll$ x $3,2zoll$ besitzt. 
-    - Das Board ist leicht über ein Markieren der Seite und Abrundungen, sowie ein Verschieben des markierten Bereichs möglich (siehe <imgref pic01>). 
-    - Es sollte beachtet werden, dass die Buchsen für Hookups stets die vorgegebenen Abstand (800 mil) haben müssen. Dies kann z.B. dadurch gelöst werden, dass beim Vergrößern des Boards die markierte Buchse unmarkiert wird (%%<Strg> + linksklick%%). 
-    - Gleiches gilt für die Pinheader an den Ecken und den 6-poligen Anschluss zum Modulträger. Diese müssen in das durch den Modulträger vorgegebenen Raster passen. 
- 
-===== Beschriftung und erste Struktur ===== 
- 
-<WRAP right column 15%> <fs 70%> {{  :schlechtebeschriftung1.jpg?150|schlechtebeschriftung1.jpg}} \\ schlechte Beschriftung: übereinander und über Komponente \\ {{  :schlechtebeschriftung2.jpg?100|schlechtebeschriftung2.jpg}} \\  \\  \\  \\  \\  \\ schlechte Beschriftung: doppelte Beschriftung </fs> 
-</WRAP> 
- 
-  * Füllen Sie den Kommentarbereich in der Zeichnung aus und halten Sie ihn aktuell (Autor, Schaltungszeichnung, Version, Datum). 
-  * Legen Sie zunächst das grobe Layout auf Basis der Funktion fest. Eingänge sollten links, Ausgänge rechts zu positioniert sein. Bei kleineren Boards bietet sich die Struktur an, wie sie zukünftig auf der Platine wiederzufinden sein wird. 
-  * Der Name (unter Eigenschaften) von Bauteilen sollte möglichst kurz sein. Die Bezeichnung von Anschlüsse (z.B. Motor, RXD, ADC) und Bauteile (z.B. ATmega88) sollte sinnvoll und aussagekräftig sein. 
-  * Name und Bezeichnung sollten möglichst nahe am Bauteil positioniert sein. Vermeiden Sie Überlagerungen von Text bzw von Text und Komponenten. Falls Sie eine doppelte Beschriftung haben, entfernen Sie eine davon. 
-  * Falls Sie bei den Bezeichnern eine negierte Benennung benötigen (Z.B. Out Nicht Reset), so erhalten Sie einen Überstrich mittels Ausrufezeichen: OUT_!Reset = OUT_$\overline{\textrm{Reset}}$ 
-  * Nutzen Sie aussagekräftige Darstellungen für Bauteile, also z.B. Transistoren statt Blackboxen. 
-  * Bibliotheken können über %%Datei > Exportieren > Libraries > In eine Bibliothek integrieren%% exportiert werden.  
-  * Falls Sie eine Komponente neu anlegen: Der Ursprung ("Origin") soll mittig positioniert werden; die neue Komponente sollte möglichst kompakt gestaltet sein. 
-  * Zeichnen Sie nur Bauteile ein, welche auch auf der Platine zu finden sein werden. Also keine externen Sensoren, Motoren etc. die keinen Platz auf der Platinen benötigen. 
- 
-===== Verbindungen und Potentiale ===== 
- 
-  * Geben Sie den Verbindungen kurze und aussagekräftige Namen, bevorzugt eine Funktionsbezeichung ("MISO"). Alternativ kann auch der Pinnamen vom Mikrocontroller ("PB4") oder eine Kombination ("PB4_MISO") verwendet werden. 
-  * Nicht benötigte Verbindungen sollten entfernt werden. 
-  * Versuchen Sie Verbindungen möglichst kurz und kreuzungsfrei zu zeichnen. 
-  * Gegen zuviel Spaghetti auf der Schaltung, hilft 
-      * die "Name"-Funktion und Linien-Stummel, 
-      * die Verwendung von vorgegebenen Potentialbauteilen wie GND, -5V oder +5V (weitere in den libs supply1 und supply2) 
-  * Als Bezeichnungen für die verschiedenen Versorgungsspannungen von IC werden in der Industrie i.d.R. entweder VDD5, VDD33, VDD18 oder VDD5V, VDD3V3, VDD1V8 geschrieben. Bei älteren Schaltungen wurde VCC (Common Collector Voltage) statt VDD verwendet. 
- 
-^Symbol^Anwendung^Empfehlung| 
-|{{  :gnd.jpg?400|gnd.jpg}}|**AGND**: Analog Ground: ungestörte Masse für Analogsignale \\  **GND**: Ground: Masse für digitale und schaltende ICs \\ **GNDINT**: Masse für Bauteil-interne Logiken \\ **GNDIO**: Masse für (hochspannungs)abgeschirmte Datenübertragung, Bezug für IO-Pins \\ **GNDI** eingangsseitige Masse (Alternative für AGND falls belegt) \\ **GNDA** eingangsseitige Masse (Alternative für AGND falls belegt)|Verwendung von GND \\ und AGND| 
-|{{  :versorgung.jpg?400|versorgung.jpg}}|**+5V**: positive Spannungsversorgung (auch als 3,3V o.ä.) \\  **-5V**: negative Spannungsversorgung \\ **VCC**: Common Collector Voltage, auch als positive Versorgungsspannung nutzbar \\ **VCC/2** Mittenspannung bei unipolar versorgten Schaltungen \\ **VCCINT**: Versorgung für Bauteil-interne Logiken \\ **VCCIO**: Versorgung für IO-Pins \\ **-5V**: sollte als Pfeilsymbol wg. Verwechslungsgefahr nicht verwendet werden|Verwendung von VCC-Symbol mit Spannungsbeschriftung \\ bei unipolar gespeisten Schaltungen. \\ Verwendung von positiver und \\ negativer Spannungsversorgung bei bipolar gespeisten Schaltungen| 
- 
-===== passive Elemente ===== 
- 
-  * Verwenden Sie als Wert für Widerstände, Kondensatoren und Induktivitäten für die Größenbeschreibung folgende Symbole: f, p, n, u, m, k, M, G, T (kein µ, MEGA, o.ä.). Die physikalische Einheit wie $\Omega$, $F$, $H$ ist wegzulassen (im Gegensatz zu Rechnungen). 
- 
-===== Mikrocontroller ===== 
- 
-<WRAP right> {{  :resetpinschaltung.jpg?200|resetpinschaltung.jpg}}</WRAP> Die folgenden Tipps beziehen sich allgemein auf Schaltungen mit Mikrocontroller. 
- 
-  * Resetleitung 
-      * Der Resetpin sollte über einen Pull-up/-down Widerstand auf der nicht resetierenden Spannung gehalten werden (bei ATmega32U4 per Pull-up auf High). Weiterhin ist ein Mikrotaster von Vorteil, über welchen der Pin auf die resetierende Spannung gezogen werden kann (="Reset-Knopf", bei ATmega32U4 per Pulldown auf Low). 
-  * Taktgeber 
-      * Überlegen Sie sich, ob Ihre Anwendung eine genaue Taktfrequenz oder kompakten/kostengünstigen Aufbau benötigt 
- 
-^Eigenschaften  ^interner RC-Oszillator  ^Quarz  ^(Quarz-)Oszillator  | 
-^Genauigkeit|±1%((Datenblatt ATmega32U4))    |<0,01%(([[https://www.mouser.de/search/refine.aspx?N=11749875|https://www.mouser.de/search/refine.aspx?N=11749875]]))    |<0,01%(([[https://www.mouser.de/Passive-Components/Frequency-Control-Timing-Devices/Oscillators/_/N-7jdfi/|https://www.mouser.de/Passive-Components/Frequency-Control-Timing-Devices/Oscillators/_/N-7jdfi/]]))    | 
-^Auswahl mögl. Frequenzen|eine feste (z.B. Atmega32U4 8 MHz), die per Prescaler geteilt werden kann (CLKPR)|große Auswahl (alle Baudraten)|kleine(re) Auswahl| 
-^notwendige externe Bauteile|keine|2 weitere Kondensatoren und Quarz|nur Oszillator| 
-^Geeignet für|kostenkritische Anwendungen|zeitkritische Anwendungen: UART, USART, genaue Uhr|| 
- 
-Details sind im Data Sheet unter Kapitel "Clock Sources" (bei ATmega32U4 Kapitel 6.2) zu finden. Für energiesparende Anwendungen sollte der Takt reduziert werden (siehe Tabelle). 
- 
-^Frequenz^Anwendung| 
-|32,768 kHz|für energiesparende Schaltungen (Stimmgabelquarz)| 
-|18,432 MHz|[[https://www.mikrocontroller.net/articles/Baudratenquarz|Baudratenquarz]], notwendig um viele Schnittstellentakte zu generieren. Maximalwert für die meisten AVR-Chips| 
- 
-  * Weitere passive Komponenten 
-      * Überprüfen Sie das Data Sheet auf weitere notwendige passive Elemente, z.B. für interne Regler o.ä. \\ Diese sind unter anderem über Suchwörter wie "Design Guidelines" zu finden. 
-  * USB Anschluss / Anschluss an externe Elektronik 
-      * Bei digitalen Anschlüssen an externe Elektronik bietet es sich an ESD Schutzdioden zu verwenden, um die Komponenten zu schützen. 
- 
-===== Analoge Eingangswerte (ADC) ===== 
- 
-  * Nutzen Sie für alle analoge Komponenten (Operationsverstärker, MOSFETs, …) die Signale "Analog Vcc" (AVCC) und "Analog Ground" (AGND). Damit reduzieren sich Störungen auf der analogen Seite. 
-  * Analog Ground und Digital Ground sollten nahe am Prozessor nur an einer Stelle verbunden werden. Dazu ist am einfachsten ein kurzgeschlossener Lötjumper zwischen AGND und GND zu verwenden. 
-  * Sinnvoll beim Einlesen von Analogwerten ist es weiterhin ein Tiefpass vorzuschalten, um Spannungsspitzen abzudämpfen. Z.B. (Grenzfrequenz beachten!) 
-      * 1. Ordnung: Widerstand mit 1 kOhm und 100 nC gegen Masse, oder 
-      * 2. Ordnung: Induktivität mit 10 µH und 100 nC gegen Masse. 
- 
-===== Digitale Schnittstellen ===== 
- 
-  * Schalter als Input werden sinnvollerweise bei Schaltungen mit ATmega-Prozessoren gegen GND geschaltet. Dann können die internen Pull-up Widerstände genutzt werden. 
-  * Falls Sie einen USB-Anschluss robust auslegen wollen, so sollten Sie sich an die üblichen Design Guides richten (z.B. {{:design-guide-fuer-eingebettete-systeme.pdf|Design Guide von DataKey.com}}  ) 
-  * **Wir wollen einen RasPi über I2C anschließen ODER Wir wollen 5V und 3,3V I2C an einem Bus haben**. Es ist zu beachten, dass der I2C des RasPi für High Pegel 3,3V liefert. Die meisten älteren Schaltungen benötigen 5V. Als Lösung können Sie den Levelshifter in folgende Application Note betrachten: {{:an10441.pdf|an10441.pdf}} 
-   * **Wie kann ich einen zweiten SPI an meinen ATmega anschließen?**  Verwenden Sie dazu die USART Schnittstelle als zweite SPI. Details dazu finden Sie im Datenblatt des Prozessors unter USART. zweite Alternative: nutzen Sie einen geeigneten AVR-Chip (z.B. ATmega328PB) 
-  * **Ich will viele Schalter einlesen. Ich will einen möglichst energiesparenden Aufbau. **  dazu bietet sich ein Blick in folgende Dateien {{:01146b.pdf|PIC-Tipps}}. Einige der Tipps sind inzwischen überholt, können aber genutzt werden. 
-  * Falls Sie einen SMD Mikrocontroller verwenden, sollten Sie nicht vergessen einen Programmierport herauszuführen - am besten [[https://de.wikipedia.org/wiki/In-System-Programmierung|ISP]] über [[https://www.microchip.com/webdoc/avrone/avrone.using_ocd_physical_debugwire.html|debugWire]] (6-polige Buchse). Ansonsten wird das Programm nie den Weg auf den Chip finden. 
- 
-====== Zum Abschluss ====== 
- 
-  * **Prüfen, ob alle Teile in der Schaltung im Hauptraster liegen**: in der Kommandozeile "run snap-on-grid-sch.ulp" eingeben 
-  * **Electrical-Rule-Check durchführen**: in der Komandozeile "ERC" eingeben. 
-  * Spannungsniveaus beschreiben: Schreiben Sie, für welche Spannung(en die) Schaltung ausgelegt ist. z.B. VCC: 3.3 ... 5.0 V, V_power: 20..36 V, Vin: 1.8 V 
- 
-\\ 
-