MEXLE2020 Modul : MCB_1x1_Basis_Hookup

ModultypMCB - MEXLE Basis Circuits)
Versionierung1.0
ErstellerTim Fischer
letzte Änderung2020-08-28
KurzbeschreibungBasis Element für ein Hookup

Hardwareübersicht

Abb. 1: fertige MMC 1x1 328PB Platine

Das Basis-Hookup dient als Grundlage, um Platinen zu entwickeln, welche auf die beiden 2×8 Buchsen der Microcontrollerplatine (links und rechts in Abbildung 1) 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 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.

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.

Abb. 2: Interfacebeschreibung MCB 1x1 Basis Hookup (Version 0.1 für 328PB / 32U4)
mexle2020:if_mxx_1x1_basisplatine.png

Für die Verknüpfung zwischen mehreren Platinen gibt es verschiedene Schnittstellen (siehe Abbildung 2). Die Schnittstellen des Hookups ähneln der der 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 Atmega328PB):

  • Hookup mit Eingangsfilter:
    • Ausgabe des gefilteren Signals an einen der ADC Eingänge (ADC0…ADC7). Diese sind bei 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).

FunctionsPinPinFunctions
PTC X0 Y8, OC3A, RXD0Pin3031PTC X1 Y9, OC4A, TXD0
PTC X2 Y10, INT0, OC3B / OC4BPin321PTC X2 Y11, INT1, OC2B
PTC X4 Y12, T0, XCK0Pin29PTC X5 Y13, OC0B,T1
PTC X6 Y14, AIN0, OC0APin1011PTC X7 Y15, AIN1
PTC X10 Y18, CLKO, ICP1Pin1213PTC X11 Y19, OC1A
PTC X12 Y20, OC1B, SS0Pin1415PTC X13 Y21, OC2A, TXD1, MOSI0
PTC X14 Y22, RXD1, MISO0Pin1617PTC X15 Y23, XCK1, SCK0
PTC X8 Y16, ACO, ICP4, SDA1

Belegung Buchse K2 (rechts)

FunctionsPinPinFunctions
VCCPin421AGND
GNDPin520AREF
-NC18AVCC
-NC29RESET
PTC Y5, ADC5, SCL0Pin2827PTC Y4, ADC4, SCL1
PTC Y3, ADC3Pin2625PTC Y2, ADC2
PTC Y1, ADC1, SCK1Pin2423PTC Y0, ADC0, MISO1
PTC Y7, T3, MOSI1Pin2219PTC Y6, ADC6, ICP3, SS1

Abb. 3: Interfacebeschreibung MCB 1x1 Basis Hookup (Version 1.0 für AVR32DB)
mexle2020:if_mxx_1x1_basisplatine_v1_11.png

Für die neuen Boards wird der Chip AVR32DB und eine geänderte Pin-Konfiguration (siehe Abbildung 3) verwendet. Hierbei sind folgende Design-Prinzipien genutzt worden:

  1. Trennung von digitaler Ein-/Ausgabe von analoger Ein-/Ausgabe und Spannungsversorgung.
  2. Auf der Buchse K1 sind nur digitale Ein-/Ausgabe-Pins (sowie VCC und GND) zu finden.
    1. 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.
    2. Die Pins 9…12 (PC0…3) entsprechen dem unteren Nibble des Ports C. Zusätzlich bieten diese Pins eine zweite SPI und UART Schnittstelle.
    3. 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).
    4. Alle Digitalpins haben mindestens den Zugriff auf einen Timer/Counter. Der Timer/Counter A ist nicht eingezeichnet aber bei fast jedem Pin verfügbar.
    5. Die untersten beiden Pins erlauben Zugriff auf die Spannungsversorgung.
  3. Auf der Buchse K2 sind Spannungsversorgungsanschlüsse, sowie analoge Ein-/Ausgabe-Pins
    1. 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.
    2. 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.
    3. Die Pins 9…14 und 16 stellen die verschiedenen Spannungsniveaus dar.
    4. 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.

Die aktuellen Eagledateien und Vorversionen sind hier in Redmine zu finden.