====== MEXLE2020 Modul : MMC_1x1_328PB ======
^Modultyp|MMC - MEXLE Microcontroller CPU)|
^Versionierung|1.0|
^Ersteller|Gerhard Gruhler / Tim Fischer|
^letzte Änderung|2018-01-03|
^Kurzbeschreibung|Microcontroller Platine mit ATmega328PB Chip, Quarz, LED und 2 Taster|
====== Hardwareübersicht ======
{{mexle2020:uc_platine_mmc_1x1_328pb.png?200}}
Die Microcontrollerplatine () nutzt den Chip [[http://ww1.microchip.com/downloads/en/DeviceDoc/40001906A.pdf|ATmega328PB]]. Damit ist es u.a. möglich 2 I2C-, 2 SPI und 8 Analog-Digital-Converter genutzt werden. Details zur Pin-Konfiguration des Chips sind dem verlinkten Datenblatt zu entnehmen, die Pinbelegung des Boards ist unten beschrieben.
Die 1×1 Platine kann als Grundlage für weitere Projekte dienen. Dazu ist sie mit verschiedenen Schnittstellen ausgestattet, die im Folgenden beschrieben werden.
~~PAGEBREAK~~ ~~CLEARFIX~~
===== Human-Machine-Interface =====
{{mexle2020:mexle_328pb_hmi_01.jpg?800|mexle_328pb_hmi_01.jpg}}
Zur Eingabe sind 2 Taster verbaut (vgl. ). Diese ermöglichen das Auslösen eines Reset und das Schalten zu Masse. Letzteres bietet bei aktivierten, internen Pull-up Widerstand eine digitale Eingabe.
Weiterhin ist eine LED auf der Platine vorhanden. Diese lässt sich über den Pin 24 aktivieren.
~~PAGEBREAK~~ ~~CLEARFIX~~
===== Inter-Platinen Interfaces =====
Für die Verknüpfung zwischen mehreren Platinen gibt es verschiedene Schnittstellen (siehe ).\\
Mit der **Micromatch-Schnittstelle (X1, oben)** lässt sich das Progi verknüpfen.\\ Dieses kann über [[https://de.wikipedia.org/wiki/In-System-Programmierung|ISP]] per SPI den Chip programmieren.
{{drawio>mexle_328pb_interfaces_03.svg}}
Die **Pinheader an den Ecken** sind bei diesem Board aktuell nicht elektrisch genutzt. Bei anderen Boards sind diese mit PGND (Power Ground, Masse für Leistungskomponenten) und PVCC (Power Voltage, Spannung für Leistungskomponenten) belegt.
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) am Microcontroller sind alle Pins über K1 und K2 verfügbar. Die im Bild dargestellten Pin-Nummern entsprechen denen des Microcontrollers [[http://ww1.microchip.com/downloads/en/DeviceDoc/40001906A.pdf|Atmega328PB]]. 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.
Die **Stecker unten (JP1)** verknüpfen die Platine mit dem Modulträger. Damit ist die Spannungsversorgung über den Modulträger möglich. Die Pins V+ und GND dieses Steckers wird für die Versorgung des Controllers genuntzt. Die Spannung V- wird auf dem Board nicht direkt genutzt, aber an Hook-ups (über Buchse K2) weitergeleitet. Über diesen Stecker ist auch eine I2C-Verbindung zwischen verschiedene Platinen über den Modulträger möglich. Weiterhin gibt es einen Reset-Pin, welcher einen zentralen Reset aller Platinen auf dem Modulträger erlaubt.
==== 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|
===== Eagle-Dateien =====
Die aktuellen Eagledateien und Vorversionen sind [[https://redmine.hs-heilbronn.de/projects/microcontroller-grundplatinen/repository/2145/show/030.%20MEXLE%20microController%20PCBs/MmC1x1%20328PB_1.x%20ATmega328PB|hier in Redmine]] zu finden.
Als Ausgangspunkt können folgende Dateien genutzt werden:
* {{mexle2020:mexle328pb_1.2.brd}}
* {{mexle2020:mexle328pb_1.2.sch}}
====== Softwareübersicht ======
Die Software ist abhängig von dem gewünschten Projekt zu verwenden.
====== Projektübersicht ======
===== Aufgabenstellung/Problemstellung =====
Die Aufgabenstellung war eine kompakte Controllerplatine zu erstellen, welche als Basis für unterschiedlichste Projekte genutzt werden kann. Dabei sollte Wert auf Kompatibilität und größtmögliche Ausnutzung des verwendeten Microcontrollers werden.
===== Lösungsansatz =====
===== Erstellung der Hardware =====
- Schaltplan
- Board
- auf was wurde Wert gelegt? \\
Welche Hürden wurden genommen?
===== Überprüfung/Test =====
- [[:mexle:inbetriebnahme-dokumentation|Inbetriebnahme-Dokumentation]]
- [[:mexle:inbetriebnahme-dokumentation|Aufbau vom Board]]
===== Resumee =====
- Fazit
- Verbesserungsvorschläge (Ausblick)
\\