Modulares Mikrokontroller Projekt mit dem AVR 8515

Dieses Projekt ist ausdrücklich nichtkommerziell und für Hobbyelektroniker gedacht. Trotzdem möchte ich das Ganze unter die GPL Lizenz Version 2 stellen.

Das bedeuted ungefähr:

Wer's wirklich genau wissen will, kann auf dieser Website nachsehen:
GPL Lizenz  &  Inoffizielle deutsche Übersetzung

Einleitung

Da man mit Mikrokontrollern viele tolle Sachen anstellen kann, aber nicht jedesmal eine neue Platine entwerfen will, habe ich versucht, eine flexible Hardware zu entwickeln, welche möglichst viele Anwendungen abdeckt. Herausgekommen dabei ist eine Hauptplatine mit einem Mikrokontroller (AVR 8515), einer Spannungsversorgung und einigen Steckern drauf. Über die Stecker lassen sich Ein- und Ausgabegeräte (Module) anschließen. Die Pinbelegung der dazu verwendeten Flachbandleitungen ist sinnvollerweise standardisiert.
Für ein konkretes Projekt muss man also die benötigten Module auswählen, über die Flachbandleitungen mit der Hauptplatine verbinden und durch passende Software ansteuern. Für eine Eieruhr würde man z.B. eine Tastatur, eine LC- oder LED Anzeige, ein Schallgebermodul und die Hauptplatine benötigen (oder das ganze bei ALDI kaufen). Die Modultechnik lässt sich sogar soweit treiben, dass man die Hauptplatine gegen eine andere austauscht, um z.B. den Prozessortyp zu wechseln, oder die Steuerung einem PC zu überlassen.

Bis jetzt befindet sich nur ein Tastaturmodul und die Hauptplatine auf einem zumutbaren Entwicklungsstand. Von einem DC-Motor und einem Sensormodul gibt es ebenfalls Prototypen, aber ich glaube das lässt sich noch verbessern. Die Ansteuerung von Schrittmotoren ist durch integrierte Bausteine so einfach, dass sich nicht immer ein Modul lohnt.

Leider habe ich nicht mehr viel Zeit für das Ganze, aber die fertigen Platinen reichen sicher für erste Experimente.

Software

Um die Software genauso flexibel zu halten wie die Hardware,habe ich versucht, in der Software (C für den gcc Compiler) so eine Art Treiberschicht zu realisieren, in welcher für jedes Hardware - Modul eine Sammlung standardisierter Funktionsaufrufe zur Steuerung und Abfrage zur Verfügung gestellt wird. Die Software ist noch nicht verfügbar. Ein Betriebssystem wäre natürlich eine tolle Lösung.

Layout

Schaltungsentwurf und Layout habe ich mit der freien Version von Eagle 4 gemacht. Die Padgröße wurde mit xpad angepasst. Die Schaltpläne und Layouts haben keinen professionellen Anspruch, aber fürs Ausdrucken auf Folie reichts. Manche Bauteile überschneiden sich auf der Bestückungsseite; das ist kein Fehler, sondern nennt sich alternative Bestückung. Bestimmte Komponenten sind selbst erstellt (meist SMD-ICs), weil es davon kein passendes Gehäuse in den Bauteil - Bibliotheken gab. In der neuesten EAGLE-Version gibt es diese Bauteile aber in SMD.

Die folgenden Kästchen enhalten die Links der Eagle- und Bilddateien für jeweils ein Modul:

Hauptplatine

Hauptplatine (node13)
Schaltplan
ja
Schaltplan als EAGLE 4 Datei
Layout
ja
Layout als EAGLE 4 Datei
Prototyp
ja
Layout als Bilddatei


Bestückung als Bilddatei


Foto
Software
nein


Die Spannungsversorgung wird standardmäßig an die Schraubklemme angeschlossen. Der Spannungsregler, der relativ große Kondensator und die Entkopplungsdiode erlauben den Einsatz einer anspruchslosen Spannungsversorgung. Alternativ kann die Platine auch über die PBxx Stecker mit Spannung versorgt werden. Wichtig ist in diesem Fall die Einhaltung eines zentralen Massepunkts (Brücke R24). Die Masseleitungen von Vcc und +12V sind stets getrennt geführt und dürfen nur in Brücke R24 verbunden sein. Module, die beide Spannungen benutzen, dürfen ebenfalls keine Masseverbindung zwischen +5V und +12V herstellen.

Es gibt (noch) keinen Reset Knopf und nur den on-chip Power-On Reset des 8515.

Über den 10poligen Programmierstecker lässt sich der AVR programmieren. Die Belegung entspricht dem PonyProg - Adapter (wenn ich mich recht erinnere). Parallel dazu gibt es einen 10poligen SPI Stecker für Erweiterungen (z.B. Port-Expander).

Port AH hat einen Stecker der etwas mehr Strom als die FB-Kabel Stecker vertragen sollte. An diesen Portleitungen sind auch D1 bis D4 angeschlossen, die als LEDs für erste Tests verwendet werden können. Die PBxx Stecker können ebenfalls zur Ansteuerung von Geräten mit hohem Stromverbrauch benutzt werden. Über beide Stecker kann auch die Hauptplatine mit Spannung versorgt werden (siehe oben). PD3567 besitzt einen der beiden Interrupt Leitungen. PDL_COM führt die Anschlüsse der UART nach aussen und besitzt die zweite Interrupt Leitung.

An Port C lässt sich direkt ein LCD-Modul anschliessen. IC3 wird dabei für die ausreichend steile ENABLE - Signalflanke des Moduls benötigt. Die Beleuchtung des LCD-Moduls lässt sich über T2 steuern, per Taktung auch in der Helligkeit. Diese Methode der Helligkeitsregelung kann Probleme in der Spannungsversorgung durch pulsförmige Strombelastung verursachen. In der nächsten Version der Hauptplatine wird die ganze Leistung des LED Vorwiderstands daher in einem MOSFET verbraten. Der Kontrast des LCD-Moduls lässt sich über R25 oder eine Portleitung (PWM) einstellen. Achtung beim Anschluss des LCD-Moduls: Pin 1+2 des Steckers sind nicht identisch mit Pin1+2 des Moduls! Die verwendete Belegung macht nur Sinn bei einem Modul mit Beleuchtung, dann ist Pin1+2 des Steckers der Anschluss für die Beleuchtung, sonst Pin1+2 des Steckers frei lassen und Pin3+4 des Steckers mit Pin1+2 des LCD-Moduls verbinden.

Bekannte Probleme und Fehler:

Manche Abstände zwischen Leiterbahnen und Lötpunkten sind ziemlich gering

Abhilfe: genau arbeiten bei der Platinenherstellung und beim Bestücken

Dem Stecker PBL_1 fehlt der GND - Anschluss

Abhilfe: Drahtbrücke einlöten, falls der Stecker benötigt wird

Es gibt kein Reset Knopf und kein Power-On Reset

Abhilfe: an passender Stelle Taster und Elko einlöten - oder Version14 abwarten ;)

Mögliche weitere Entwicklung

Die Platine erhält einen power-on Reset und einen Reset-Knopf.
Die Helligkeitssteuerung des LCD-Moduls wird durch Verwendung eines MOS-FETs verbessert.
Der LC-Modul Anschluss wird irgendwann zugunsten von zwei 4bit Steckplätzen wegfallen, da 8k ROM zuwenig für einen sinnvollen LC-Modul Betrieb sind.
Für die UART wird es einen MAX232 onboard geben und, wenns reicht, einen alternative Steckplatz für ein Modul.
Am ICP Eingang bietet sich der Anschluss eines IR - Empfängers an.



Tastatur

Tastatur

Schaltplan
ja
Schaltplan als EAGLE 4 Datei
Layout
ja
Layout als EAGLE 4 Datei
Prototyp
ja
Layout als Bilddatei


Bestückung als Bilddatei


Foto
Software
nein

Die Tasten können in 3x2 Reihen (6 Tasten) oder 'schräg' (7 Tasten) bestückt werden. Bei der 3x2 Variante fallen die unteren beiden Tasten (S6,S7) weg, und stattdessen kann man S6-2 bestücken. Diese Version kann auch sinnvoll sein, wenn einem das 'schräge' Tastenlayout nicht gefällt oder die Platine in der Höhe verringert werden muss.
Das 7-Tasten Layout kann bei Einhandbedienung unter Umständen ergonomischer sein.
Mein Vorschlag für die Tastenbelegung: Pfeil links, Pfeil rechts, Auf, Ab, Enter, ESC, Shift.

Die Tasten werden von einem 8-3 dezimal-zu-binär Dekoder umgewandelt (Ausgänge sind in Ruhestellung high). Über die vierte Portleitung kann die LED angesteuert werden, z.B. als 'Shift Lock' - Anzeige. Bei der Dimensionierung des Widerstand - Arrays sollte man beachten, daß es auch den Vorwiderstand der LED enthält.
D1 und D2 sind alternative Bestückungen, je nachdem, das ob 3x2 Tastaturlayout oder das 'schräge' Layout benutzt wird.
Das 3x2 Layout wurde nicht getestet.

Bekannte Probleme und Fehler:

Beim Aufbau des Prototyps wurden Fehler entdeckt, die im vorliegenden Layout behoben sind

Eigentlich kein Problem, ...

Mögliche weitere Entwicklung

keine geplant

7-Segment LED Anzeige

Schaltplan
ja
Schaltplan als EAGLE 4 Datei
Layout
ja
Layout als EAGLE 4 Datei
Prototyp
ja
Layout als Bilddatei


Bestückung als Bilddatei


Foto
Software
nein

Ziel der Entwicklung war ein Anzeigemodul mit kleinstmöglichen Abmessungen. Das vorliegende Modul trägt daher auch keinen Stecker, sondern die Flachbandleitung muss angelötet werden. Jede Sieben-Segment-Anzeige hat ihren eigenen Anzeigepuffer, der über ein Schieberegister geladen wird. Es findet kein Multiplexing statt.
Zur Ansteuerung wird eine synchrone, serielle Schnittstelle verwendet, ähnlich der SPI der AVR Controller. Demzufolge gibt es vier Leitungen: ein Taktsignal, ein Latchsignal und jeweils eine Daten Hin- und Rückleitung. Durch dieses Prinzip lässt sich die Anzeige auch leicht erweitern und ausserdem ist der Anschluss von digitalen Eingängen möglich.
Das Layout ist speziell auf diese Anreihbarkeit zugeschnitten.
Von diesem Modul gibt es einen Prototyp.

Bekannte Probleme und Fehler:

Manche Abstände zwischen Leiterbahnen und Lötpunkten sind ziemlich gering

Abhilfe: genau arbeiten bei der Platinenherstellung und beim Bestücken

Die Versorgungsspannung für die LEDs wird den +5V entnommen, dadurch steigt die Verlustleistung im Spannungsregler der Hauptplatine unnötig an.

???

Mögliche weitere Entwicklung

Tastatur - Erweiterung
LCD - Variante
Variante mit größeren Anzeigen


feedback: node13 (at) web.de
(Alexander Wagner)