Das PM-Uni ist ein Universalperipheriemodul für die MoBaSbS. Der 
	   Grundgedanke für die schon lange geplante Umsetzung, ist die 
	   gleichzeitige Verwendung 
	   von Servodekoderausgängen, Dekoderausgängen und Encodereingängen in einem 
	   Modul. Dies macht sich besonders bei Modul- und Segmentanlagen positiv 
	   bemerkbar, da nicht für jeden Anwendungsfall ein eigenes Peripheriemodul 
	   verwendet werden muss. Außerdem verringert sich die Lagerhaltung für 
	   Servo, Encoder und Dekoder auf eine 
	   Platine.
	   Für dieses Modul habe ich unter teilweiser Verwendung der bisherigen 
	   Routinen einen Universalcode entwickelt. Diesen möchte ich hier 
	   vorstellen und Tipps für den Aufbau und die Verwendung geben.
Mit dem neuen Code ergeben sich folgende Konfigurationsmöglichkeiten. Im 
	   Normalfall wird nur eine Adresse verwendet und damit kann dann das PM-Uni 
	   als 
	   
	   verwendet werden. Dabei können in der Einstellung En-/Dekoder die Ein- 
	   bzw. Ausgänge des Modules paarweise gemischt werden. Bei der Verwendung 
	   eines ULN2803 als Treiber ist das Mischen bauteilebedingt auf jeweils 4 
	   zusammenhängende Ein- bzw. Ausgänge beschränkt.
	   
	   Bei der Verwendung als 4-fach Servo gibt es die zuschaltbare Möglichkeit, 
	   eine Rückmeldung bei Erreichen der Endstellung auszulösen und die 
	   Möglichkeit festgelegte Ausgänge des PM für die Herzstückpolarisation zu 
	   verwenden. Mehr darüber bei der Beschreibung zur Servokonfiguration.
	   
	   Für den Fall das noch weitere Servo-, Dekoder- oder Encoderfunktionen 
	   benötigt werden, hat man die Möglichkeit eine zweite Adresse in diesem PM 
	   zu aktivieren. Dann stehen noch einmal zusätzlich ein
zur Verfügung.
	   Übrigens die optimale Ausnutzung des PM-Uni erhält man bei Verwendung der 
	   Servofunktion auf Adresse 2 und der En/Dekoderfunktion auf Adresse 1.
	   Was ich leider nicht realisieren konnte, war die Einbindung der komplexen 
	   Routinen des LDEC in den Universalcode. Es besteht aber die Möglichkeit 
	   den Universalcode gegen den LDEC Code und auch umgekehrt über eine 
	   Bootladerfunktion auszutauschen.
Die Hardware für das PM Uni wurde parallel zur Software entwickelt, so 
	   dass viele Ideen auf beiden Seiten sofort umgesetzt werden konnten. Mein 
	   besonderer Dank gilt Uli, ohne den dieses Projekt noch viele Jahre in der 
	   Schublade geschlummert hätte. 
	   Von der Universalplatine gibt es zwei Ausführungen, einmal die 
	   professionell hergestellte doppelseitige und zum selber Ätzen die 
	   einseitige Platine. 
	   Die erforderlichen Unterlagen und die Beschreibung der Hardware kann man 
	   auf der 
	   MoBaSbS Homepage anschauen und herunterladen.
	   
	   Im Folgenden gehe ich nur auf Besonderheiten in Bezug auf den 
	   Universalcode ein. Dabei beziehen sich die Ausführungen auf die 
	   doppelseitige Platine.
Da der tatsächlische Verwendungszweck erst kurz vor dem Einbau festgelegt wird, habe 
	   ich meine PM-Uni Platinen mit den Grundbauelementen versehen. 
	   Auf den Fotos ist das Herzstück des PM-Uni, der Atmega8, die Komponenten 
	   für die Kommunikation mit dem PMC und schon erste Bauteile für die 
	   Spannungsversorgung zu sehen. Soll das komplette PM-Uni nur als Encoder 
	   verwendet werden, können die Bauteile auf der linken Seite für die 
	   Spannungsversorgung weggelassen werden. Auf dem rechten Foto ist die 
	   Anordnung der SMD Bausteine auf der Unterseite zu sehen.
	   
Die Grundeinstellung für das Universalmodul ist Moduladresse 255. Diese sollte man gleich mit Inbetriebnahme des Modules ändern, um später nicht in Konflikt mit neu hinzugefügten Modulen zu kommen. Dies geschieht mit dem Menüpunkt PM Adresse ändern im Konfigurationstool. Nach dem anschließenden Rescan, der Aktualisierung und der Übernahme, steht das Modul jetzt im Konfigtool zur Verfügung.
Kommen wir nun zur Auswahl der Aus- bzw. Eingänge des Modules.
Wie bereits weiter oben erwähnt, können die Anschlüsse des Modules sowohl als Ein- bzw. Ausgänge oder Servo verwendet werden. Die Konfiguration wird über den Menüpunkt Werkzeuge, MFM-1 konfigurieren ausgewählt.
		Bei der nun erscheinenden Maske, gibt man oben die Adresse 1 (Hauptadresse) an und klickt auf das Fragezeichen. Ist die ausgewählte Adresse ein Universalmodul, kann man nun die Einstellungen dafür vornehmen. Sollte man versehentlich die Adresse 2 des PM ausgewählt haben, erscheint eine Fehlermeldung und die Adresse 1 wird vorgeschlagen. Bei Modultyp stehen zur Auwahl
Wählt man 8-fach Std. Enkoder / Dekoder können jetzt noch die Ausgänge für die zukünftige Verwendung entweder auf Eingang (Enkoder) oder auf Ausgang (Dekoder) gesetzt 
	   werden. 
	   Anschließend die Auswahl noch speichern und nach Aufforderung den RESCAN durchführen. Bei der anschließenden Aktualisierung des PMC und der Übernahme der neuen Daten steht nach der Auswahl des Universalmodules die Maske mit den zuvor gewählten Ausgängen zur Verfügung.
Dort werden dann die gewünschten Einstellungen für den jeweiligen Ausgang, so wie bisher schon von den Encoder- bzw. Dekodermodulen bekannt, durchgeführt.
	   Mehr darüber in den Seiten über En/ Dekoder oder Servo.
Reichen 4 Servo oder 8 Ausgänge nicht aus, so kann in diesem Menüpunkt die zweite Adresse aktiviert werden. Die Einstellungen dafür sind die Selben, wie bisher für die erste Adresse beschrieben. Einziger Unterschied ist, dass für die Einstellung im oben gezeigten Menü die Adresse von der zuerst geänderten Adresse (Hauptadresse) verwendet werden muss. Bei einer Fehleingabe wird dies vom Konfigtool mit einer Fehlermeldung quittiert und die richtige Adresse vorgeschlagen.
Das PM-Uni ist mit einer Bootladerfunktion ausgestattet. Somit ist es 
		möglich, evtl Updates des Programmcodes ohne Ausbau des Modules aus der 
		Anlage durchzuführen.
		Desweiteren kann ohne Neuprogrammierung des 
		Prozessors, der nicht mehr im Universalcode untergebrachte LDEC Code 
		eingespielt werden. Auch der LDEC Code kann ohne Neuprogrammierung mit 
		dem Bootlader wieder mit dem Universalcode überschrieben werden.
		Einzelheiten sind in der Beschreibung des Konfigurationstools 
		nachzulesen.
ACHTUNG - Die Nutzung 
	   der Bootladerfunktion ist nur mit dem neuen LDEC-T Code 
	   und dem Universalcode möglich. 
                      
	   Alle bisherigen Codeversionen mit Bootladerfunktion funktionieren nicht.
ACHTUNG - Im Gegensatz 
	   zur bisherigen Bootladerfunktion, darf das Fusebit
                     
	   BOOTRST - nicht
	   gesetzt sein.
Dies ist bedingt durch die Neuprogrammierung der Bootladerfunktion, da die bisher verwendete Version nicht kompatibel zur Größe des neuen Codes ist.
ACHTUNG - Nach der Programmierung muss kurz die Spannung zum Universalperipheriemodul getrennt werden.
.
Hier geht es zur Beschreibung beim Einsatz des Universalcodes als
Hier kann der Universalcode aus dem geschützten Bereich der MoBaSbS heruntergeladen werden.
© by Uwe Mäusezahl 24 Juli, 2013