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