DEVBOARD 3 - Development-Board für Mikrocontroller



Zur effektiven Entwicklung von Schaltungen mit Mikrocontrollern bieten sich Entwicklungs-Boards an. Diese werden von den meisten Controller-Herstellern angeboten, um die Entwickler von der Qualität und den Möglichkeiten "ihrer" Produkte zu überzeugen. Sie vereinen auf einer kleinen Leiterkarte den verwendeten Prozessor, ein Programmierinterface und bieten Zugang zu den Ein- und Ausgängen des Controllers. Der große Nachteil dieser Lösungen besteht meistens darin, dass sie auf einen ganz bestimmten Controllertyp zugeschnitten sind. Diese Boards sind meistens fest verdrahtet und bieten wenig Spielraum  für eine umfassende Schaltungsentwicklung.
Das von mir entwickelte Devboard umgeht diese Nachteile.
Es ist eine universelle Entwicklungs-,Programmier- und Testumgebung die controllerunabhängig ist und mit einer Vielzahl von peripheren Anwendungen aufwartet. Erreicht wir das durch den konsequenten modularen Aufbau. Die drei Hauptkomponenten Programmer, Microcontroller und Testperipherie fungieren als Einzelkomponenten , die mit einer standardisierten Schnittstelle versehen sind. Die Kenntnis  dieser Schnittstellen ermöglicht leicht den Bau weiterer Komponenten, die das Board erweitern können. Das bedeutet eine nahezu unbegrenzte Flexibilität und Ausbaufähigkeit des Systems. Ursprünglich wurde das Board nur für die breite Familie von ATMEL-Controllern konzipiert. Mittlerweile  lassen sich damit 8051-Bausteine, FPGAs und CPLDs programmieren. Ein Modul für LPC210x ist in der Planung.

Kernstück des  DEVBOARD 3 ist eine 150mm x 200mm  große doppelseitige Leiterplatte. Darauf sind mehrere unabhängig voneinander wirkende Peripheriemodule direkt integriert, die ich später noch genauer auflisten und beschreiben werde. Desweiteren befindet sich darauf ein Steckplatz  für ein Programmer-Modul sowie einer für ein Controller-Modul.  Vom Brennermodul werden die Programmiersignale entsprechend ATMEL-ISP-Spezifikation,auf einen 6poligen Wannenstecker geführt. Das Controllermodul ist ebenfalls mit einem pinkompatiblen Eingangsstecker versehen. Die Verbindung wird über eine kurzes Kabel mit entsprechenden Steckbuchsen realisiert. Das hat den Vorteil, dass der Brenner auch zur Programmierung externer Schaltungen verwendet werden kann. Andererseits können von externen Programmiergeräten Signale in das Brennermodul eingespeist werden.
Die Verbindungen zwischen Controller und der Testperipherie erfolgt direkt von den Controllermodulen zum Devboard über spezielle Patchleitungen. Eine frei kontaktierbare Buchsenleiste fungiert als Expanderport. Er ermöglicht die Anbindung externer Schaltungen oder darauf zugeschnittener Anwendermodule.

 

    
prinzipieller Aufbau DEVBOARD 3

 

Die Spannungsversorgung erfolgt über ein externes Stecker-Schaltnetzteil mit einem Eingangsspannungsbereich von ca. +7,5-12VDC; I>=500mA. Die Verbindung zum Board wird über eine Hohlsteckerbuchse hergestellt, wobei der Außenmantel des Steckers Massepotential führen muss. Über einen einstellbaren Linearregler wird die Betriebsspannung Uint erzeugt. Sie versorgt alle Komponenten des Board. Sie kann entweder 3,3V oder 5V betragen. Die Einstellung erfolgt über den DIP-Switch SW5. Controllerm odule, die mit maximal 3,3V arbeiten (z.B. LPC210x) können so designed werden, dass sie beim Stecken unabhängig von der Schalterstellung an SW5 die Betriebsspannung auf 3,3V ziehen, um bei Falscheinstellung versehentliche Überspannung zu vermeiden.
Ebenfalls an SW5 befindet sich ein Schalter, der Uint an den Programmiermodul-Steckplatz zuschaltet (Progon/Progoff). Das ist sinnvoll für Programmiermodule, die keine eigene Spannungsversorgung haben (z.B. Parallelport-Brenner).
Mit dem Spindeltrimmer R25 kann man aus der Betriebsspannung eine einstellbare Referenzspannung AREF für ADC-Anwendungen ableiten.
Für Anwendungen von SD-Karten in einer 5V-Umgebung, ist eine 3,3V SD-Karten-Betriebsspannungserzeugung mit T1 vorgesehen.
Die Betriebsspannungszuschaltung erfolgt mit dem Schalter S9. Die grün leuchtende TopLED D6 signalisiert den Einschaltzustand. Die LED D1 leuchtet bei der Programmierung.

Der Steckplatz für Programmermodule ist links oben angeordnet. Er besteht aus den zwei abgewinkelten 10poligen Buchsenleisten K2 und K3. Er ist Pin-kompatibel zum AVR-Brenner mySmartUSB MK2 der Firma Laser & Co. Solutions GmbH. Für diesen Brennertyp ist der Steckplatz ursprünglich konzipiert worden. Beim Design eigener Module, muss man sich zwingend an das vorgegebene Footprint und die Kontaktbelegung halten. Durch die Verwendung abgewinkelter Stiftleisten auf der Unterseite werden die Module seitlich von links nach rechts eingeschoben.
Aufgrund dieser Gegebenheiten würde ich für die Programmierung von AVR-Controllern die Verwendung des erwähnten 
mySmartUSB MK2 empfehlen. Dieser USB-Brenner bietet weiterhin die Möglichkeit, das Board ohne eigene Betriebsspannungsversorgung zu nutzen. Er reicht die 5V-USB-Spannung vom PC über eine Schutzdiode auf das Board durch. Voraussetzung ist allerdings,  dass der Programmierspannungsschalter auf Progon steht, und dass der Controller 5V-kompatibel ist. Die Umschaltung auf 3,3V funktioniert hier nicht! Die Belastbarkeit dieser Spannungsquelle ist jedoch eingeschränkt (siehe USB-Spezifikation), sodass die konsequente Verwendung der boardeigenen Spannungsversorgung ratsamer erscheint.

 

Programmer-Steckplatz und Programmer-Modul   Footprint Programmer-Steckplatz

Hier die Kontaktbelegung des Steckplatzes, sowie der Programmierstecker:

Kontaktbelegung des Brennermodul-Steckplatzes   Kontaktbelegung der Programmierstecker KS1 und KS2
Anschluss Signal Bemerkung Anschluss Signal  
K2:6; K3:10 GND   KS1/2:1 MISO  
K3:3 CLK ISP-Signal KS1/2:2 Uint  
K3:4 MISO ISP-Signal KS1/2:3 CLK  
K3:5 MOSI ISP-Signal KS1/2:4 MOSI  
K3:6 RST ISP-Signal KS1/2:5 RST  
K3:9 Vprog

zuschaltbare Betriebsspannung Uint (Progon/Progoff)

KS1/2:6 GND  

 

Der Steckplatz für die Controller-Module besteht aus den senkrecht stehenden Buchsenleisten K5 und K6. Aufbau und Footprint  sind aus den folgenden Abbildungen zu entnehmen. Die angegebenen Außenmaße sind gleichzeitig die Maximalmaße für selber zu erstellende Controllermodule.
Neben den Programmiersignalen von KS2, sind die Anschlüsse eines zuschaltbaren Quarzes, eine gesiebte Betriebsspannung für ADC-Verwendung, sowie ein spezieller Referenzspannungseingang vorgesehen. Desweiteren ist ein Programmier-Pin für die 3,3V-Betriebsspannung vorgesehen wie weiter oben schon erwähnt wurde. Die Anordnung der Signale wurde für eine optimale Anbindung eines ATMEGA8-Controllers designed.

 

Mikrocontroller-Steckplatz und Programmer-Modul   Footprint Mikrocontroller-Steckplatz

 

Es gilt folgende Kontaktbelegung:

Signalbelegung des Mikrocontroller-Steckplatzes
Anschluss Signal Bemerkung
K5:5; K5:6 XTAL externer Quarz, über SW10 an-/abschaltbar
K5:7; K5:9 Uint Betriebsspannung

K5:8; K5:10; K6:9

GND  
K5:15 RST

ISP-Signal sowie L-aktives RESET-Signal, über S2 auslösbar

K6:3 MOSI ISP-Signal
K6:4 MISO ISP-Signal
K6:5 SCK ISP-Signal
K6:6 AVCC Betriebsspannung für ADC; =Uint
K6:8 AREF externe Referenzspannung für ADC
K6:10 PROG3,3

offen: Uint=5V; mit K6:9 gebrückt (GND): Uint=3,3V

 

Die Controllermodule müssen auf der Unterseite mit passenden Steckerleisten ausgerüstet sein. Werden von Uint abweichende Betriebsspannungen benötigt, so müssen diese auf dem Modul erzeugt werden, indem sie von der Betriebsspannung abgeleitet werden. Werden Programmiersignale benötigt, die nicht mit den zugeführten ISP-Signalen kompatibel sind, so müssen diese direkt über die Controllermodule eingespeist werden. Dazu ist dann ein entsprechender Programmierstecker auf dem Modul zu plazieren. Möglicherweise können aber auch die bestehenden Programmierleitungen umfunktioniert werden.
Desweiteren werden auf dem Modul Buchsenleisten mit runden Kontakten auf der Oberseite angebracht und von  jedem Controller-Pin eine Verbindung zu einem Buchsen-Pin geroutet. Darüber werden später die Verbindungen zur Testperipherie gepatcht.

Soviel zu den Modulsteckplätzen an dieser Stelle. Die verschiedenen bereits entwickelten Brenner-, Controller- und Expandermodule und werden als eigenständige Themen behandelt.

Den flächenmäßig weitaus größten Raum nimmt die Testperipherie auf dem Board ein. Das sind eine Vielzahl von unabhängigen Schaltungen, die in bestimmter Weise mit den Controllern zusammengeschaltet werden, um deren programmierte Funktionen zu testen. Die Ein-/bzw. Ausgänge dieser Schaltungen sind ebenfalls mit runden Leiterplattensteckbuchsen versehen. Mit den bereits erwähnten Patchkabeln, deren Aufbau später noch erläutert wird, können nach dem Baukastensystem binnen kürzester Zeit flexible Verbindungen zu den Controller-Pins gesteckt werden. Auch eine Umkonfiguration ist in Sekunden erfolgt.
Mit Zuschaltung der Betriebsspannung sind alle Peripheriemodule prinzipiell einsatzbereit. Bei einigen kann per Jumper noch eine Konfiguration vorgenommen werden. Eine eindeutige Beschriftung auf dem Board sowie der Bestückungsplan helfen beim Auffinden der jeweiligen Schaltung. Bei der nachfolgenden Vorstellung der einzelnen Module werden auf dem Board vorhandene Beschriftungen fettgeduckt dargestellt.

 

Taster-Modul
8 Taster (S0-S7), die bei Betätigung die Eingänge auf GND legen. Zugänglich links unten, über die Anschlüsse 0 bis
7 der Buchsenleiste K35

Switch-Modul
4 DIP-Switches SW8, SW9, die im ON-Zustand die Eingänge auf GND legen. Zugänglich über die Anschlüsse 0 bis 3 an K37.

LED-Modul
8 verschiedenfarbige LEDs, die bei H-Signal an K33 0-7 leuchten. Die LEDs sind durch Leitungstreiber entkoppelt und stellen keine nennenswerte Strombelastung für die GPIOs des Controllers dar.

Tastermatrix
12-Tasten-Tastaturmatrix. Die im Knotenpunkt sitzende Taste brückt im gedrückten Zustand die entsprechende Reihenadresse mit der Spaltenadresse. Zugang über K15 r0 bis r3 sowie s0 bis s2.

IGR-Impulsgeber
Inkrementaler Schalter zur Erzeugung von Drehimpulsen in Vorwärts- und Rückwärtsrichtung. Anschlüsse A und B an K11. Die Ausgänge sind vorentprellt. Eine sichere Entprellung muss jedoch über Software erfolgen.

BCD-Codierschalter
Erzeugt abhängig von der Schalterstellung eine BCD-Kodierung 0-Fh an K4. Die Bezeichnung entspricht dabei der Wertigkeit der Bits (1 bis 8)

LCD-Matrixanzeige
Zeilenorientierte  LCD-Matrix mit Standard-Controller. Alle Anschlüsse sind an K12 herausgeführt und entsprechend bezeichnet. Zur Kontrasteinstellung dient R11.

7-Segment Anzeige
Einzelnes 7-Segment-Display mit gemeinsamer Anode. Alle Katodensegmente sind über Vorwiderstände einzeln an K36 herausgeführt und bezeichnet a-h.

7-Segment Multiplexanzeige
Maximal 4stellige 7-Segmentanzeige. Die 2 binär codierten Stellenadressen 0, 1, sowie die BCD-Ziffernwerte a-d, liegen an K12 an.

PWM
Zwei Integratoren zur Umwandlung eines PWM-Signals in eine adäquate Gleichspannung. Die Integrationszeitkonstante beträgt 150ms. Die Kanäle PWM1 und PWM2 verfügen jeweils über in/out-Buchsen (K27/K26).

I²C-EEPROM
Serielles EEPROM mit I²C-Bus an K28 und K29. Die Anbindung erfolgt über SDA und SCL . Die Busleitungen sind bereits über Widerstände abgeschlossen. Die Hardwareadresse des EEPROMs ist 0.

Beep
Piezo-Signalgeber, der gegen GND betrieben wird. Anschluss Beep an K34. Abhängig vom verwendeten Typ sind verschiedene Bestückungsvarianten möglich.

Regelbare Analogspannung
Zwei universelle, unabhängig voneinander konfigurierbare regelbare Gleichspannungen. Über die Jumper KS4, KS5 wird die Eingangsspannungsquelle festgelegt. Das kann entweder die Betriebsspannung Uint intern oder eine externe Spannung extern sein. Die externe Spannung muss über die Anschlüsse exin an K24 und K30 eingekoppelt werden. Die geregelte Ausgangsspannung kann an den gleichen Buchsen bei out abgenommen werden.

Analoge Referenzspannung
Am Jumper K28 kann eine aus der Betriebsspannung erzeugte Referenzspannung ext angelegt werden. Diese wird mit dem Spindeltrimmer R24 präzise eingestellt. Steht der Jumper AREF auf int, wird die interne Referenzspannung des Controllers benutzt.

DAC-Interface
Ein 12Bit DAC, der über SPI angesteuert werden kann, ist über die Buchse K10 zugänglich. Zur Ansteuerung dienen die Signale Sync, SCLK, SDIN,
ADCout

USB-Interface
USB 2.0 kompatibles Interface zur seriellen Datenübertragung, z.B. für das Debugging. Das Interface stellt am PC eine virtuelle COM-Schnittstelle zur Verfügung und kann dort konfiguriert werden. Die Signale RXD und TXD stehen an K7 zur Verfügung. Die USB-Leitungen D+ und D- liegen an K8 an. Der Trafic auf den Datenleitungen wird an D2 und D3 angezeigt.

RS232-Interface
Interface zur seriellen Datenübertragung. Es wird am PC mit der COM-Schnittstelle über ein serielles Parallelkabel verbunden und kann dort konfiguriert werden. Die Signale RXD und TXD stehen an K13 zur Verfügung.

SD-Card-Interface
Interface zur Anbindung einer SD-Karte über SPI. Die Signale CS, DI, CLK und DO stehen an K16, K18, K20, K22 an. Die Karte wird mit 3,3V betrieben. Die Signalanpassung ist aber auf die Kommunikation mit einem 5V-System angepasst. Die Funktion ist nur bei einer Betriebsspannung von Uint=5V gegeben. Die 3,3V-Ausgangspegel werden in der Regel an 5V-Controllern als H erkannt.

IR-Modul
Über einen IR-Empfänger können Signale von Standard-Fernbedienungen empfangen und an K25 als TTL-Pegel weiterverarbeitet werden.

Programmierbuchsen
Bei der Nutzung von ATMEGA-Brennern wird das Programmiersignal an den Stecker KS2 ISPout geführt und kann dort über ein 1:1-Kabel an ISPin an KS1 übergeben werden. ATMEGE-Module sind so verdrahtet, dass sie direkt mit dem ISPin-Stecker verbunden sind. Um externe Schaltungen zu programmieren, kann an ISPout auch ein längeres Programmierkabel angeschlossen werden, das dann zur entsprechenden Baugruppe führt.
Umgekehrt können über
ISPin externe Brenner an das Controllermodul angeschlossen werden.

RESET-Taste
Ein RESET-Taster ist mit dem Controllermodul verbunden, um ein Hardware-RESET ausführen zu können. Das Signal ist L-aktiv

Quarz
Ein steckbarer Quarz mit Anschwing-Kondensatoren dient zur externen Takterzeugung, wenn das notwendig ist. Über die beiden DIP-Schalter IC10 kann dieser abgeschaltet werden.

Expanderport
Über K40 kann eine externe Baugruppe angesteckt werden. Sie kann über K38 mit dem System verbunden werden. Über K39 kann die Betriebsspannung auf die Baugruppe gepatcht werden. Damit ist eine Anbindung einer beliebigen, externen Schaltung an das System möglich.

Anschlüsse für Messgeräte
Zum Übergang von BNC auf Patchbuchsen, steht eine BNC-Buchse zur Verfügung. Zum Anschluss von Masseklemmen ist ein Drahtbügel und eine Bananenklemme vorhanden.

 

Hier noch einige Anmerkungen zu den Kabeln. Das Programmierkabel ist ein 6pol. kurzes Flachbandkabel mit entsprechenden Pfostensteckern. Die Patchkabel sollten aus dünner, ca. 25cm langer Schaltlitze gefertigt werden. Dazu sind an den Enden runde Stifte aus demontierten Stiftsockelleisten einzulöten und mit Schrumpfschlauch zu überziehen. 30 Stück davon, in verschiedenen Farben, sollten für den Anfang reichen.

 

Programmierkabel   Patchkabel

 

Beim Ausdrucken der Belichtungsvorlagen mit dem TARGET3001!-Viewer ist noch zu beachten, dass zusätzlich zu den Standard-Layern hier noch die Ebene 32 bei der Oberseite einzuschalten ist. Er realisiert die Beschriftung der Platine und sollte keinesfalls vergessen werden.

Das DEVBOARD 3 wurde mit allem Zubehör in einem Sortimentskoffer untergebracht, wie er in jedem Baumarkt erhältlich ist. Die nachfolgende Abbildung vermittelt einen Eindruck, wie ein ausgebautes "Baukastensystem" aussehen kann.