GREETBoard ATMega128 (Version 1) – Die Weiterentwicklung

Im April wird es definitiv nicht so viele Artikel geben, wie in den anderen Monaten zuvor. Ich bin mit der Verbesserung der bisherigen GREETBoard Module beschäftigt und löte diese zur Zeit zusammen. Daher möchte ich gerne vom aktuellen Stand des wichtigsten, neuen Moduls schreiben.

Das GREETBoard ATMega32 hat mir bislang viel Spaß bereitet während ich schon das Ein oder Andere programmiertechnische Probleme lösen durfte. Das modulare Konzept hat sich wirklich bewährt, so dass nicht alle Funktionen auf dem Hauptmodul vorhanden sein müssen. Je nach Anforderung ist es mir möglich die Fähigkeiten des GREETBoard ATMega32 zu erweitern um so mehr und mehr Dinge ausprobieren zu können. Hier spielt der I²C-Bus eine ganz besondere Rolle. Durch ihn ist es möglich Erweiterungen anbinden zu können, ohne auf die Ein- und Ausgänge des Mikrocontrollers zurückgreifen zu müssen. Unabhängig von den Funktionalität der Erweiterung ist eine Anbindung möglich. Lediglich die Kommunikation muss programmiert werden und schon sind Dinge möglich, die vorher unwahrscheinlich schienen.

Schon zu Beginn des Projekts hatte ich, beispielsweise, das Ziel die Ansteuerung eines LCD Displays über I²C zu bewerkstelligen. Nach anfänglichen Schwierigkeiten und Einarbeitung funktioniert dieses Modul  nun ganz hervorragend. Somit hat das GREETBoard ATMega32 eine Zusatzfunktion, die nicht zum Umfang des eigentlichen Hauptmoduls gehört. Es könnten nun beliebig viele neue Funktionen hinzukommen.

GREETBoard ATMega32 (ohne Mikrocontroller)

GREETBoard ATMega32 (ohne Mikrocontroller)

Die Gründe

Aber gerade die Modularität hat mir gezeigt, dass einige Dinge auf dem Board gibt, die noch ausgelagert werden könnten. In den Programmierbeispielen habe ich sogar Taster und LEDs ganz gerne als Modul hinzugefügt; mal als direkt angeschlossene Module, mal als I²C-Module. Die Schraubklemmen habe ich sogar noch nie benutzt (OK, ich habe bislang auch nur die GREETBoard Module verwendet, die brauchen die Einzelverdrahtung nicht). Der Summer und die vielen Taster sind auch eher stiefmütterlich behandelt worden.

Eine Besonderheit am GREETBoard-Projekt ist aber die Verwendung der RJ12-Verbindungen von und zu den Modulen. Dieses Verbindungskonzept habe ich von Lego Mindstorms kopiert, da es mir dort unglaublich gut gefallen hat. Außerdem hat es in meinen Augen den Vorteil, dass nur jeweils vier Signale in einer Leitung zusammengefasst sind (mit VCC und GND = 6 Leitungen => RJ12) und somit ggf. zwei Module an einem Port angeschlossen werden kann. Bei meinen Tests habe ich aber feststellen müssen, dass es durchaus sinnvoll sein kann, alle 8 Datenleitungen gleichzeitig weiterzuleiten. Bei den In-/ Output Modulen und dem kommenden Motorboard benötige ich tatsächlich alle acht Leitungen. Dort würde es nur mit zwei RJ12-Verbindungen funktionieren. Außerdem müssen die RJ12-Verbindungsleitungen zwischen den Modulen um 180° gedreht werden, damit die Steckerbelegung an beiden Modulen übereinstimmt. Diese Leitung ist aber recht starr und somit werden die leichten Module schnell „aus der Bahn geworfen“ und kippen um. Das macht die Positionierung auch auf meinem Steckbrett mühselig.

Das hat mich bewogen diese Verbindung gegen klassische 10-polige Wannenstecker auszutauschen. Die Flachbandleitungen sind viel flexibler und lassen sich daher auch leichter verlegen. Ein kleiner Nachteil ist jedoch die Weiterleitung des I²C-Busses. Das GREETBoard ATMega32 und alle anderen Module hatte zwei I²C Buchsen um das Signal weiterzuführen. Die Wannenstecker-Buchsen sind zwar niedriger aber dafür breiter, so dass nur eine Buchse auf die Boards passen werden. Daher muss hier mit längeren 10-poligen Flachbandkabeln und mehreren aufgepressten Steckern gearbeitet werden. Mal sehen, welche Erfahrungen ich damit machen werde.

Die Schaltung

Zu Erst möchte ich über den neuen Mikrocontroller schreiben. Warum ein ATMega1284P-PU in einem 40-poligen Gehäuse? Auf den ersten Blick ist das eine Verschwendung von Ressourcen, da es den 128er mit 100 I/O Pins gibt und hier werden es gerade 32 – zwei Drittel weniger! Das ist richtig, es handelt sich aber hierbei nicht um ein SMD Bauteil. Und viele Menschen können und/oder wollen so etwas nun mal nicht löten. Aber der 40-Pinner hat (fast) die gleichen Features und Kapazitäten wie die SMD-Version. Damit können Programme größer und wie für den großen SMD Bruder ausgelegt werden. Ein späterer Umstieg ist dann ganz einfach, da die Features und ihre Ansprechweise bekannt sind. Außerdem ist er nicht viel teurer (ca. 2-3€) als der kleinere ATMega32; der gern genommene 32er-Ersatz, der 644er, ist sogar ein kleines Bisschen teurer.

Grundsätzlich sollen nur die Minimalfunktionen auf dem neuen ATMega128-Modul vorhanden sein. Also Spannungsversorgung, ein paar Taster und LEDs und alle Signale herausgeführt und abgreifbar, so dass auch Breadboard-Testschaltung unterstützt werden können. Und die Ports (außer Port C, wegen der Taster und LEDs) sollen über Wannenstecker-Buchsen erreichbar sein.

Die Features des neuen Moduls lauten also wie folgt.

  • AVR ATMega1284-PU Mikrocontroller
    • 128k Speicher
    • 4k EEPROM
    • 16k RAM
    • 32 IO-Pins, davon 8 Analog/Digital Anschlüsse
  • Eingangsspannung: Min. 9V, Max. 15V, verpolungssicher
  • 5V Spannungsreglung auf dem Board integriert
  • 3 LED, per Jumper zuschaltbar am Port C
  • 3 Taster, per Jumper zuschaltbar am Port C
  • Ports A, B, D über Wannenstecker verfügbar, Belegung entspricht Atmel-Standard
  • Alle Ports sind über Buchsen erreichbar und können mit Drähten z.B. an ein Breadboard geführt werden
  • Reset, Eingangsspannung, +5V und GND ebenfalls über Buchsen verfügbar
  • Reset-Taster
  • 16MHz Quarz platzsparend unter dem Mikrocontroller platziert
  • ISP Programmierschnittstelle über 10-pol. Wannenstecker verfügbar
  • I²C Bus ebenfalls über 10-pol. Wanenstecker verfügbar
  • I²C Pull Up Widerstand per Jumper aktivierbar
  • 50 x 80 mm (1/4 Modul)

Hier die entsprechende Schaltung:

GREETBoard ATMega128 - Schaltplan

GREETBoard ATMega128 – Schaltplan

Und dies der Bestückungsplan:

GREETBoard ATMega128 -  Bestückungsplan

GREETBoard ATMega128 – Bestückungsplan (Vers. 1.01)

Und hier noch die fertige Schaltung:

GREETBoard ATMega128

GREETBoard ATMega128

Erweiterbare Ausführung

Im ersten Moment wollte ich die ganzen Buchsen mit Präzisionsbuchsen realisieren. Die sind einfach super, wenn Drähte gesteckt werden müssen. Aber das habe ich aus einem ganz bestimmten Grund nicht gemacht und anstelle dessen die höchsten Buchsen ausgesucht, die ich finden konnte – ca. 8mm hoch. Die bisherigen Schraubkontakte haben den Charme, dass dort verschiedenste Dinge angeschlossen werden können ohne eine Steckerverbindung zu basteln. Draht dran, zuschrauben, Fertig! Außerdem könnten vielleicht doch mehr LEDs oder Taster benötigt werden. Und wie sieht es mit einem Poti für einen analogen Eingang aus? Das RS232-Signal wird auch nicht mehr herausgeführt…

Die Lösung ist eine Erweiterungsplatine, die, über unten-liegende Steckerleisten, in die entsprechenden Buchsen des GREETBoard ATMega128 gesteckt werden kann; sozusagen als Sandwich- oder Huckepack-Lösung. Und diese Leiterplatte wird über Abstandhalter am Hauptmodul befestigt. Dieses Sandwich ist tatsächlich als Test-Version erstellt und passt sehr gut auf das ATMega128 Modul. Es befindet sich sogar ein separater Reset-Taster darauf, da der andere durch die Huckepack-Platine nicht mehr erreichbar ist.

GREETBoard ATMega128 - Huckepackbetrieb

GREETBoard ATMega128 – Huckepackbetrieb

Verbesserungspotential der Testversion

  1. Durch die hohen Buchsenleisten sitzt der Mikrocontroller wie in einer Wanne und lässt sich schwer platzieren und herausnehmen
  2. Die geraden Wannenstecker-Buchsen für ISP und I²C müssen gewinkelt ausgeführt werden, da der Stecker, im Huckepackbetrieb, nicht passt
  3. Die Standard Elkos sind zu hoch und können an der Huckepack-Platte anstoßen
  4. Einer der Jumper stößt gegen Pins der Sandwichplatte

Die Punkte 2 bis 4 werden in der endgültigen Version verändert, womit eine optimale Passgenauigkeit gewährleistet ist. Leider habe ich in der Testversion noch einen 20MHz Quarz vorgesehen (technisch wäre der 128er dazu in der Lage). Da damit aber einige der bisherigen Programme, ohne ein Umschreiben der Taktfrequenz, nicht funktionieren würden und zukünftige Programme nicht für alle ATMega16 bis ATMega32 kompatibel wären, warte ich nun noch auf einen neuen 16MHz Quarz. Ist dieser und die gewinkelten Wannenstecker-Buchsen aufgelötet, steht ersten Tests nichts im Wege. Drückt mir die Daumen, dass ich die Fuses beim ATMega128 nicht direkt falsch setze und er hin ist!!

Bis bald,
Euer Timo

Schreibe einen Kommentar

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