====== MEXLE2020 Modul : MCB_1x1_Basis_Hookup ====== ^Modultyp|MCB - MEXLE Basis Circuits)| ^Versionierung|1.0| ^Ersteller|Tim Fischer| ^letzte Änderung|2020-08-28| ^Kurzbeschreibung|Basis Element für ein Hookup| ====== Hardwareübersicht ====== {{mexle2020:uc_platine_mmc_1x1_328pb.png?200}} Das Basis-Hookup dient als Grundlage, um Platinen zu entwickeln, welche auf die beiden 2x8 Buchsen der Microcontrollerplatine (links und rechts in ) aufgesteckt werden können. Damit ist es u.a. möglich 2 I2C-, 2 SPI und 8 Analog-Digital-Converter genutzt werden. Details zur Pin-Konfiguration ist unter der Platine [[mexle2020:mmc_1x1_328pb#inter-platinen_interfaces|MMC 1x1 328PB]] beschrieben. Die 1×1 Platine kann als Grundlage für weitere Projekte dienen. Dazu ist sie mit verschiedenen Schnittstellen ausgestattet, die im Folgenden nur kurz beschrieben werden. ~~PAGEBREAK~~ ~~CLEARFIX~~ ===== Human-Machine-Interface ===== Auf der Basisplatine ist im Ausgangszustand kein Human-Machine-Interface (LED, Taster, etc.) vorgesehen. Für neuentwickelte Platinen basierend auf dem Basis-Hookup können diese bei Bedarf hinzugefügt werden. ~~PAGEBREAK~~ ~~CLEARFIX~~ ===== Inter-Platinen Interfaces ===== ==== Version 0.1 für ATmega328PB / ATmega32U4 ==== \\ {{drawio>IF_mxx_1x1_Basisplatine}} Für die Verknüpfung zwischen mehreren Platinen gibt es verschiedene Schnittstellen (siehe ). Die Schnittstellen des Hookups ähneln der der [[mexle2020:mmc_1x1_328pb|MMC1x1 328PB]] Platine. Die **Buchsen links (K1) und rechts (K2)** ermöglichen einen Zugriff auf (fast) alle Pins des Controllers. Bis auf die Pins 7 (XTAL1) und 8 (XTAL2) sind alle Pins verfügbar. Die untersten Pins der Buchse K1 können optional über die Jumper SJ2 und SJ3 auf der Rückseite der Platine entweder auf V+ und GND oder auf Pin 3 und 6 gelegt werden. Ersteres ist für die Kompatibilität der verschiedenen Controllerplatinen notwendig. Letzteres bietet die Möglichkeit die letzten beiden Pins - und damit die I2C-Schnittstelle - anzusprechen. Im Bild ist die Anordnung der Pins auf die Buchsen zu sehen; diese sind für alle Controllerplatinen gleich. Die beiden Buchsen ermöglichen Hook-up-Platinen, welche auf den Controllerplatinen aufbauen. Eine Spannungsversorgung der Controllerplatine ist auch über die Hook-ups möglich. Soll auf Basis dieses Boards ein weiteres Hookup erstellt werden, so sollen die vorhandenen Anschlüsse genutzt werden. Die Anschlüsse einiger Anwendungen sind hier beispielhaft aufgelistet (Details zu den Anschlüssen im Datenblatt des [[http://ww1.microchip.com/downloads/en/DeviceDoc/40001906A.pdf|Atmega328PB]]): * **Hookup mit Eingangsfilter**: * Ausgabe des gefilteren Signals an einen der ADC Eingänge (ADC0...ADC7). Diese sind bei [[mexle2020:mmc_1x1_328pb|MMC1x1 328PB]] alle als 10-Bit Wandler ausgeführt. * AGND sollte auf die Bezugsspannung des eingehenden Signals gelegt werden * AVCC Ist ein Eingangs-Pin, d.h. dieser ist nicht belastbar, sondern dient als Eingang für die ADC-Stufe im Microcontroller * **Hookup mit Ausgangsfilter, Motoransteuerungen, Soundausgabe**: Vorteilhaft ist hierbei die Verwendung eines der OCxX Ausgänge zum Erstellen des PWM Signals. Wird die Ausgabe per Software umgesetzt, so sind auch die anderen digitalen Pins möglich (d.h. alle außer Pin 4, 5, 18, 20, 21, 29). Dabei ist zu beachten, dass die Auflösung der genutzten Timer unterschiedlich ist: * Timer1 ermöglicht mit einem 16-Bit breiten Timer-Input ein besser aufgelöstes Signal (OC1A, OC1B). * Timer0, Timer2 haben ein 16-Bit breiten Timer-Input und damit eine schlechtere Auflösung (OC0A, OC0B, OC2A, OC2B). ~~PAGEBREAK~~ ~~CLEARFIX~~ === Belegung Buchse K1 (links) === ^Functions^Pin^Pin^Functions| |PTC X0 Y8, OC3A, RXD0|Pin30|31|PTC X1 Y9, OC4A, TXD0| |PTC X2 Y10, INT0, OC3B / OC4B|Pin32|1|PTC X2 Y11, INT1, OC2B| |PTC X4 Y12, T0, XCK0|Pin2|9|PTC X5 Y13, OC0B,T1| |PTC X6 Y14, AIN0, OC0A|Pin10|11|PTC X7 Y15, AIN1| |PTC X10 Y18, CLKO, ICP1|Pin12|13|PTC X11 Y19, OC1A| |PTC X12 Y20, OC1B, SS0|Pin14|15|PTC X13 Y21, OC2A, TXD1, MOSI0| |PTC X14 Y22, RXD1, MISO0|Pin16|17|PTC X15 Y23, XCK1, SCK0| |PTC X8 Y16, ACO, ICP4, SDA1|optional \\ Pin3|optional \\ Pin6|PTC X9 Y17, TC4, SCL1| === Belegung Buchse K2 (rechts) === ^Functions^Pin^Pin^Functions| |VCC|Pin4|21|AGND| |GND|Pin5|20|AREF| |-|NC|18|AVCC| |-|NC|29|RESET| |PTC Y5, ADC5, SCL0|Pin28|27|PTC Y4, ADC4, SCL1| |PTC Y3, ADC3|Pin26|25|PTC Y2, ADC2| |PTC Y1, ADC1, SCK1|Pin24|23|PTC Y0, ADC0, MISO1| |PTC Y7, T3, MOSI1|Pin22|19|PTC Y6, ADC6, ICP3, SS1| ==== Version 1.0 für AVR32DB ==== \\ {{drawio>IF_mxx_1x1_Basisplatine_v1_11}} Für die neuen Boards wird der Chip [[http://ww1.microchip.com/downloads/en/DeviceDoc/40001906A.pdf|AVR32DB]] und eine geänderte Pin-Konfiguration (siehe ) verwendet. Hierbei sind folgende Design-Prinzipien genutzt worden: - Trennung von digitaler Ein-/Ausgabe von analoger Ein-/Ausgabe und Spannungsversorgung. - Auf der **Buchse K1** sind nur digitale Ein-/Ausgabe-Pins (sowie VCC und GND) zu finden. - Die Pins 1...8 (PA0...7) stellen dabei nicht nur die digitale Kommunikation mit I2C, UART und SPI zur Verfügung. Die Pins sind zudem die vollständige Ausgabe des Ports A. - Die Pins 9...12 (PC0...3) entsprechen dem unteren Nibble des Ports C. Zusätzlich bieten diese Pins eine zweite SPI und UART Schnittstelle. - Die Pins 13...14 (PF4...5) stellen eine weitere Möglichkeit einer UART-Schnittstelle bereit. Zusätzlich bieten sie den Zugriff auf zwei Timer/Counter (TCB und TCC). - Alle Digitalpins haben mindestens den Zugriff auf einen Timer/Counter. Der Timer/Counter A ist nicht eingezeichnet aber bei fast jedem Pin verfügbar. - Die untersten beiden Pins erlauben Zugriff auf die Spannungsversorgung. - Auf der **Buchse K2** sind Spannungsversorgungsanschlüsse, sowie analoge Ein-/Ausgabe-Pins - Der Pin 1 (unten rechts) ermöglicht es für die Digital-Pins des Ports C (Pins 9..12 auf Buchse K1) mit einer abweichenden Spannung zu versorgen. Damit ist für diese Pins beispielsweise eine 5V Basis möglich. - Die Pins 2...8 (PD1...7) bieten Zugriff auf 7 Kanäle des Analog-Digital-Wandlers. Diese Pins erlauben zusätzlich die Verwendung von 2 Operationsverstärkern (OP0 und OP1). Weiterhin ist ein Digital-Analog-Wandler auf Pin D6 verfügbar. Daneben sind über alle ADC-Pins auch die Verwendung von analogen Komparatoren möglich. - Die Pins 9...14 und 16 stellen die verschiedenen Spannungsniveaus dar. - Der Pin 15 ist nicht belegt und hat keinen physikalischen Stecker / Buchse. Damit wird ein Verdrehen des Hookup um 180° vermieden. Nur wenn Pin 15 auf dem Hookup und dem Basisboard übereinstimmen, kann die Buchse K2 eingesteckt werden. ~~PAGEBREAK~~ ~~CLEARFIX~~ ===== Eagle-Dateien ===== Die aktuellen Eagledateien und Vorversionen sind [[https://redmine.hs-heilbronn.de/projects/microcontroller-grundplatinen/repository/2145/show/010.%20MEXLE%20blanco%20PCBs/MhB1x1%20blanco%20HookUp|hier in Redmine]] zu finden.