ftRoboExt: Entwurf

…und am Anfang war der Entwurf. Ein eigenes Erweiterungsmodul für das Robo Interface soll es also werden. (Siehe hier für mehr Infos)

Grundlage sollte natürlich ein AVR sein, weil ich die am Besten kenne, und man dann auch immer gleich die Arduino Bibliotheken mitbenutzen kann 😉 Das Protokoll ist im Wesentlichen ein SPI Bus mit einer speziellen Bestätigungsleitung, das sollte sich also auch problemlos umsetzen lassen. Da die Schnittstelle mit 3,3V betrieben wird sollte auch das gesamte Modul mit dieser Spannung laufen. Die Motoren müssen aber natürlich mit 9V betrieben werden, so dass ein Spannungsregler nötig ist. Für die Motoren sind auch Treiber nötig, da habe ich den TLE4207 eingesetzt, mit dem anderen schon gute Erfahrungen gemacht haben.

2016-03-13 21_10_03-1 Board - C__Users_Niklas_Documents_eagle_ftRoboExt_ftRoboExt.brd - EAGLE 7.5.0Die nächste spannende Frage: In was für ein Gehäuse soll das Modul eingebaut werden? Ein Gehäuse wollte ich auf jeden Fall haben, einfach damit sich das ganze gut im Modell unterbringen lässt. Nach ein wenig Suche bin ich auf die Kassetten gestoßen, die gerade dazu einladen, Dinge dort hineinzubauen. Mit 60x60mm Grundfläche ist dort aber natürlich nicht viel Platz drin, die originalen Module haben etwa die doppelte Fläche. Nach ein wenig Überlegung kam ich dann zu dem Schluss, das gesamte Modul in SMD-Technik zu bauen, auf diese Weise kann ich die Platine zweiseitig bestücken; anders ist es kaum möglich, alles in der kleinen Box unter zu bringen.

Nach dem die grundlegenden Parameter abgesteckt waren, ging es also an den Entwurf. Leider findet man im Netz weder einen Schaltplan eines originalen Erweiterungsmoduls, noch den des Robo Interfaces, daher musste ich ziemlich improvisieren. Ich habe mit dabei beim dem 9V Teil beim dem E-Tec-Modul bedient, dessen Schaltplan unter dem Link oben von „donaupeter“ abgezeichnet wurde.

Der ganze Entwurf hat dann länger gedauert, als ich gedacht hätte, und es waren eine ganze Menge Kompromisse notwendig. Das erste Problem ist, dass nicht wirklich die Platz da ist, und die Bundhülsen als Through-Hole-Komponenten natürlich gleich den Platz auf beiden Seiten blockieren. Zudem wollte ich alle Motor-Treiber auf der Oberseite haben, damit es nicht zu einem Hitzestau kommt. Schlussendlich musste ich dann von meinem Plan abrücken, 4 Motorausgänge und 8 Tastereingänge zu haben, ich habe mich dann auf 4 Eingänge beschränkt. Wie ich später bemerkt habe, wären für mehr auch gar keine Pins mehr frei gewesen, und ein Port-Expander hat nun wirklich nicht mehr auf die Platine gepasst.

Auch so musste ich schon ziemlich tricksen, was die Pins des ATmega angeht. Schlussendlich hat es nicht gereicht, um alle drei Adressleitungen anzuschließen, daher wird die höchste Bit einfach ignoriert. Da die Software aber auch offiziell nur drei Erweiterungsmodule unterstützt, sollte das kein Problem sein. Ein Verkettung von Modulen ist natürlich auch nicht möglich. Dafür kann mein Modul aber jetzt drei einzelne Module emulieren, dazu später mehr.2016-03-13 21_09_12-2 Schaltplan - C__Users_Niklas_Documents_eagle_ftRoboExt_ftRoboExt.sch - EAGLE 7Leider habe ich keine fertigen Footprints für die Motortreiber für EAGLE gefunden, so dass ich mich tatsächlich mal damit beschäftigen musste, wie man selber welche macht. Ergebnis: Das ist total einfach! Man klaut sich einfach aus der Library „ref-packages“ ein Symbol und ein Package, das ungefähr passt, ändert es und fertig. Ich kann diese Anleitung nur empfehlen. Für die Bundhülsen habe ich Befestigungslöcher mit 3.2mm Durchmesser verwendet, die ich in den Librarys gefunden hatte, das war nur eine mäßig gute Idee. Dazu auch später mehr.

Nach dem Schaltplan kommt das Board. Es war im ersten Ansatz schon eine ziemliche Aktion, überhaupt alles halbwegs sinnvoll auf dem kleinen Board unterzubringen, und dann muss man ja auch noch alles routen. Ich habe ziemlich lange daran rumprobiert, und dann aber schließlich mehr oder weniger aufgegeben und aus Verzweiflung mal den Auto-Router ausprobiert. Und was soll ich sagen? Es hat ganz wunderbar funktioniert! Der hat ca. 15min an dem Board rumgerechnet und dann ein Routing produziert, an dem eigentlich nichts auszusetzen war. Ich habe noch an ein paar Stellen ein paar Abstände verbessert, aber ansonsten war das wirklich nicht schlecht. Natürlich ist das Routing nicht besonders schön, aber dafür ist auch einfach kein Platz…

Schlussendlich habe ich das Board dann bei OSH Park fertigen lassen. Inzwischen habe ich das Board bekommen und auch schon bestückt, und dabei sind mir ein paar Fehler aufgefallen:

C2 ist irgendwie kleiner als gedacht
C2 ist irgendwie kleiner als gedacht
  • Der EXT-Konnektor ist gespiegelt, gerade und ungerade Pins sind jeweils genau getauscht. Das wird noch interessant, wenn man da ein Kabel anschließen will.
  • Der Footprint für C2 ist viel zu groß, da muss ich mich vertan haben. Zum Glück passt mein Kondensator aber gerade noch so in die Mitte.
  • Die Lötflächen für die Bundhülsen sind eigentlich ein bisschen zu groß, die haben einen viel kleineren Überstand als die Schraubenköpfe, für die das gedacht ist. Hier hätte man also noch ein bisschen Platz sparen können.

Wenn Interesse besteht, sind hier die originalen EAGLE-Dateien, inklusive der Fehler! Ich habe auch noch zwei Boards hier (OSH Park liefert ja immer drei), die kann ich bei Bedarf gerne abgeben, eventuell auch bestückt.

2 Gedanken zu „ftRoboExt: Entwurf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.