Category:Wiki

Studienarbeit

LED-Dot-Matrix-Anzeigen

 

Gruppe 5

 

Elektronische Schaltungstechnik

 


 *  Sommersemester 2009

 

Verfasser:    Jan Kreikemeier (Mtnr.169979)


 * Tatjana Baumbach (Mtnr 169967)


 * Sven Neu (Mtnr.166935)


 * Denis Kamaleev (Mtnr.169975)


 * Thomas Völlm (Mtnr.169084)


 * Zubair Zulkifli (Mtnr.169889)

Betreuer:      Prof. Dipl.-Phys. Gerhard Gruhler

Dipl.-Ing. (FH) Denis Braun

Inhaltsverzeichnis

Abbildungsverzeichnis. II

Tabellenverzeichnis. III

1.   Einführung. 1

2.   Definition.. 1

2.1 Aufgabenstellung. 2

2.2     Aufgabenbereiche. 2

2.3     Pflichtenheft 3

2.3.1 Zielbestimmung. 3

2.3.2 Produkteinsatz. 3

2.3.3 Produktübersicht 3

2.3.4 Produktfunktionen.. 4

2.3.5 Produktdaten.. 4

2.3.6 Produktleistung. 4

2.3.7 Qualitätsanforderungen.. 4

2.3.8 Benutzungsoberfläche. 4

2.4     Projektplanung ( Anhang) 5

2.5     Überlegungen.. 5

2.6     Lösung. 5

3 Hardware. 6

3.1 Steuerplatine. 6

3.1.1 Schaltplan Steuerplatine. 6

3.1.2 Layout Steuerplatine. 7

3.1.3     Bauteilliste Steuerplatine. 8

3.1.4     Inbetriebnahmeprotokoll 9

3.2 Alphanumerisches Anzeigemodul 10

3.2.1 Schaltplan alphanumerisches Anzeigemodul 10

3.2.2     Layout alphanumerisches Anzeigemodul 11

3.2.3 Bauteilliste alphanumerisches Anzeigemodul 11

3.2.4 Inbetriebnahmeprotokoll alphanumerisches Anzeigemodul 12

3.2.5 Ergebnis. 12

3.3 Graphische Anzeigeplatine. 13

3.3.1 Schaltplan graphische Anzeigeplatine. 13

3.3.2 Layout graphische Anzeigeplatine. 14

3.3.3 Bauteilliste graphische Anzeigeplatine. 14

3.3.4 Ergebnis graphische Anzeigeplatine. 14

3.3.5 Inbetriebnahmeprotokoll graphische Anzeigeplatine. 15

5 Software. 16

5.1 LED-Matrix- Ansteuerung (Programmcode im Anhang) 16

5.1.Hauptprogramme……………………………………………………………………………………16

5.1.2 LED-Display……………………………………………………………………………………….17

5.1.3 SPI Slave…………………………………………………………………………………………..19

5.1.4 Aufgetretene Probleme. 20

5.2 SPI 21

5.2.1 SPI Einstellung…………………………………………………………………………………22

5.2.2 Funktionen der dot-lib. 22

6 Fazit 23

7 Literaturverzeichnis. IV

=Abbildungsverzeichnis=

Abbildung 1: SPI-Kommunikation der einzelnen Module. 5

Abbildung 2: Schaltplan Steuerplatine basierend auf MiniMexle. 6

Abbildung 3: Layout Steuerplatine Eagle. 7

Abbildung 4: Schaltplan 5x8-Anzeige. 10

Abbildung 5: Layout 5x8-Anzeige Eagle. 11

Abbildung 6: Bild der 5x8-Anzeige. 12

Abbildung 7: Schaltplan der 8x8-Anzeige. 13

Abbildung 8: Layout 8x8-Anzeige Eagle. 14

Abbildung 9: Bild der 8x8-Anzeige. 14

Abbildung 10: Flussdiagramm Initialisation.. 16

Abbildung 11: Flussdiagramm LED-Matrix-Extern.. 16

Abbildung 12: Flussdiagramm Init LED.. 17

Abbildung 13: Flussdiagramm Decode. 18

Abbildung 14: Flussdiagramm Show.. 18

Abbildung 15 Ausschnitt aus dem Code. 19

Abbildung 16: Flussdiagramm Init-SPI 20

Abbildung 17 SPI Master- SPI Slave. 21

Abbildung 18 Übertragung von Daten.. 21

Abbildung 19 Drei Register 22

=Tabellenverzeichnis=

Tabelle 1: Bauteilliste mit Werten von Steuerplatine. 8

Tabelle 2: Protokoll der Steuerplatine. 9

Tabelle 3: Bauteilliste mit Werten von 5x8-Anzeige. 11

Tabelle 4: Protokoll 5x8-Anzeige. 12

Tabelle 5: Bautelliste und Werte der 8x8-Anzeige. 14

Tabelle 6: Protokoll der 8x8-Anzeige. 15

Anhänge

Anhang A: Planungsübersicht

Anhang B: Source Code

=Einführung=

Anhand der erlernten Fähigkeiten in der Vorlesung „Elektronische Schaltungstechnik“ durch Herrn Professor Gruhler wurden die Kommilitonen insgesamt in 6 verschiedene Gruppen aufgeteilt. Die Projekte waren: 10-Band Audio-Analyzer, μC-programmierbares Universalfilter, DDS-Funktionsgenerator, LCD-Graphik-Anzeigen, LED-Dot-Matrix-Anzeigen, Prozessorgesteuertes Digitalmultimeter. Unsere Gruppe 5 beinhaltete 6 Personen, das Projekt war die Realisierung bzw. Entwicklung der LED-Dot-Matrix-Anzeigen, Hardware/Softwareseitig. = Definition=

Im Rahmen der Projekte im Labor Elektronische Schaltungstechnik entwickeln wir Module bestehend aus Hardwarekomponenten und einer zugehörigen Softwareumgebung (Treiber, Funktionssoftware). Diese arbeiten typischerweise mit dem MiniMEXLE-Board zusammen. Zumeist gruppiert sich die Funktion um einen speziellen Hardwarebaustein. Teilweise enthalten die Module auch eigene Mikrocontroller aus der AVR-Familie on Board. Als Hardware-Schnittstellen zwischen dem MiniMEXLE-Board und dem jeweiligen Modul wird je nach Aufgabe einer der drei Steckverbinder des MiniMEXLE verwendet:

<p style="text-align:justify">1. Peripherie-Stecker (SV2, links, 34-polig) – Zugriff auf alle Signale des μC

<p style="text-align:justify">2. Programmier-Stecker (SV1, rechts, 10-polig) – auch SPI-Schnittstelle für Peripherie

<p style="text-align:justify">3. Seriell-Stecker (SV4, oben, 6-polig) – mit UART-Signalen und I²C-Bus (bei Ver. 3.0)

<p style="text-align:justify">Die Verbindung zwischen dem MiniMEXLE und den Modulen wird über Flachbandkabel hergestellt. Die Module werden soweit möglich auf standardisierten Leiterplatten aufgebaut.

<p style="text-align:justify">Für komplette Anwendungen, z.B. eine Messaufgabe mit einer gekoppelten Großanzeige, können

<p style="text-align:justify">auch mehrere Peripheriemodule an ein MiniMEXLE-Board gekoppelt werden. Typischerweise wird die ganze Applikation über das Steckernetzteil und den Stabilisator auf dem MiniMEXLE-Bord versorgt. In einzelnen Fällen (Großanzeige, Analogteil mit 15 V Versorgung) kann wegen des größeren Stromverbrauchs bzw. der besonderen Spannungen eine zusätzliche externe Stromversorgung notwendig werden.

2.1 Aufgabenstellung
Zum MiniMEXLE-Board sollen für Demonstrationszwecke Großanzeigen basierend auf LED-Dot-Matrix-Anzeigen aufgebaut werden. Dabei sollen zwei Typen von Modulen erstellt werden:

1.   Alphanumerisches Anzeigemodul basierend auf 5x8-Matrix-Anzeigen mit 4 Zeichenstellen

<p style="text-align:justify">ausgestattet mit eigenem Atmega88-μC on-Board für Decodierung und Multiplexen

2.    Graphisches Anzeigemodul mit 8 x 32 Dots basierend auf 8x8-Matrix-Anzeigen mit μC auf

einem getrennten Board für die Anzeigensteuerung auch für mehrere Module.

Die Modul-μC entlasten das MEXLE-Board von den direkten Anzeigeaufgaben und führen selbständig Aufgaben wie Zeichen-Decodierung, Multiplexing und Zeichnen von Graphik-Elementen durch. Damit kann das Interface-Protokoll zum MEXLE sehr vereinfacht werden.

1.2 Aufgabenbereiche

 * <p style="text-align:justify">§ HW: 1) + 2) Entwicklung der Platinen für das alphanumerische Modul und das


 * <p style="text-align:justify">Graphik-Modul


 * <p style="text-align:justify">§ HW: 3) Entwicklung der zusätzlichen Prozessorplatine für die Graphikmodule


 * <p style="text-align:justify">§ HW: Layout, Aufbau und Inbetriebnahme der drei Leiterplatten


 * <p style="text-align:justify">§ SW: Erstellung eines echtzeitfähigen Softwarekonzepts


 * <p style="text-align:justify">§ SW: Schnittstelle (SPI) zwischen MiniMEXLE und den Ansteuermodulen


 * <p style="text-align:justify">§ SW: Entwicklung einer Library für Zeichendecodierung und Graphik-Elemente

1.3      Pflichtenheft
Detailierte chronologische Reihenfolge der Ziel/Produktbestimmungen.

2.3.1 Zielbestimmung
 

1. Musskriterien

LED Dot- Matrix-Anzeigen am MiniMEXLE betreiben:

§ Alphanumerisches Anzeigemodul(A bis Z, 0 bis 9)

§ Graphisches Anzeigemodul ( Punkt, Linie, Rechteck, Kreis)


 * 2.   Sollkriterien

§ Flimmerfreie Anzeige


 * 3.   Kannkriterien

§ Helligkeitsregelung

§ Schaltbarkeit der Spannungsversorger ( Display, ATX)

2.3.2 Produkteinsatz
 


 * 1.   Anwendungsbereiche

§ Großanzeiger für MiniMEXLE


 * 2.   Zielgruppe

§ MiniMEXLE Benutzer


 * 3.   Betriebsbedingungen

§ Temperaturabhängig von den Bauteilen

§ Dauerbetrieb

§ Wartungsfrei

2.3.3 Produktübersicht
 


 * § Erweiterbare alphanumerische oder graphische Großanzeige für MiniMEXLE-Reihe

2.3.4 Produktfunktionen
§ Alphanumerische Anzeigen


 * Vier Anzeigeelemente mit jeweils 5x8 Pixeln, erweiterbar durch andere Module, angesteuert über MiniMEXLE für String Anzeige

§ Graphische Anzeigen


 * Vier Anzeigeelemente mit jeweils 8x8 Pixeln, erweiterbar durch andere Module,


 * zu Anzeige der Graphik

2.3.5 Produktdaten
 

§ Spannung                                :           +5V bzw. +12V

§ Strom (Max)                              :           7,4A

§ Spitzenleistung (Max)            :           26,5A

§ Leistung (Max)                         :           12,4W

§ Lagertemperatur                      :           -25 bis 85°C

§ Betriebstemperatur                  :           -25 bis 85°C

2.3.6 Produktleistung
§ Genauigkeit

§ Ansteuerbar durch µC

2.3.7 Qualitätsanforderungen
§ Flimmerfrei

§ Wartungsarm

§ Ausreichende Helligkeit

2.3.8 Benutzungsoberfläche
           

§ Das Display von MiniMEXLE muss noch einmal anders dargestellt werden.

1.4     Projektplanung ( Anhang)
<p style="text-align:justify">Nach ausreichender Planung und Verteilung der Aufgabenbereiche wurden verschiedenste Lösungen bzw. Vorschläge in der Gruppe besprochen und ausgewertet und durch Gruppentermine mit dem Betreuer Dipl.-Ing. (FH) Denis Braun die Zielsetzungen und Ideen besprochen.

 

1.5     Überlegungen
<p style="text-align:justify">Die Überlegungen waren zuerst die Anzeigemodule durch jeweils eine Steuerplatine getrennt anzusteuern. Schließlich kamen wir zu der Lösung den Datentransfer über eine Steuerplatine zu realisieren und die Anzeigemodule sozusagen über Pfostenstecker und Flachbandkabel an die Steuerplatine umzustecken.

 

 

1.6     Lösung
Strukturgrafik der einzelnen Module.

Abbildung 1: SPI-Kommunikation der einzelnen Module

=3 Hardware=

<p style="text-align:justify">An das MiniMEXLE-Board sollen externe LCD-Graphikanzeigen angeschlossen werden. Es ist geplant, zwei verschiedene monochrome LCD-Module zu verwenden, die jedoch mit einem einheitlichen Software-Protokoll angesteuert werden über die Steuerplatine.

<p style="text-align:justify">Im folgenden sind die hardwaremäßigen Anbindungen der Steuerplatine und der Graphikdisplays zu sehen, sowie die Schaltpläne und entwickelten Layouts in Eagle.

 

3.1 Steuerplatine
<p style="text-align:justify">Die Steuerplatine hat die Aufgabe die Daten vom MiniMexle an die alphanumerischen und

<p style="text-align:justify">graphischen Anzeigen weiter zu leiten.

3.1.1 Schaltplan Steuerplatine
  

 

3.1.2 Layout Steuerplatine
 

    

 

 

3.1.3    Bauteilliste Steuerplatine
  Tabelle 1: Bauteilliste mit Werten von Steuerplatine

    

 

3.1.4   Inbetriebnahmeprotokoll
  Tabelle 2: Protokoll der Steuerplatine   

 

 

3.2 Alphanumerisches Anzeigemodul
 

Das alphanumerische Anzeigemodul hat die Aufgabe Zahlen und Buchstaben anzuzeigen.

 

3.2.1 Schaltplan alphanumerisches Anzeigemodul
Abbildung 4: Schaltplan 5x8-Anzeige   

3.2.2   Layout alphanumerisches Anzeigemodul
 

 

3.2.3 Bauteilliste alphanumerisches Anzeigemodul
  Tabelle 3: Bauteilliste mit Werten von 5x8-Anzeige   

3.2.4 Inbetriebnahmeprotokoll alphanumerisches Anzeigemodul
  Tabelle 4: Protokoll 5x8-Anzeige

3.2.5 Ergebnis
 

 

 

 

 

 

 

 

 

 

    

 

 

 

3.3 Graphische Anzeigeplatine
 

Die graphische Anzeige hat die Aufgabe Zeichen und Graphiken anzuzeigen.

 

3.3.1 Schaltplan graphische Anzeigeplatine
 

Abbildung 7: Schaltplan der 8x8-Anzeige

 

 

 

 

 

    

3.3.2 Layout graphische Anzeigeplatine
 

Abbildung 8: Layout 8x8-Anzeige Eagle

 

3.3.3 Bauteilliste graphische Anzeigeplatine
  Tabelle 5: Bautelliste und Werte der 8x8-Anzeige

3.3.4 Ergebnis graphische Anzeigeplatine
 

Abbildung '9': Bild der 8x8-Anzeige''' '''

 

 

3.3.5 Inbetriebnahmeprotokoll graphische Anzeigeplatine
  Tabelle 6: Protokoll der 8x8-Anzeige

 

 

 

 

 

     =5 Software=  

5.1 LED-Matrix- Ansteuerung (Programmcode im Anhang)
 

5.1.1 Hauptprogramm
 

Initialisierung von der Hardware und unendliche Schleife, die Daten dekodiert und anzeigt.

 

<p style="text-align:center">                                     

 

 



'''

5.1.2 LED-Display
 

<p style="text-align:justify">Enthält Bibliothek zum Dekodieren und Funktionskörpern von Decode, Show und InitLED.

<p style="text-align:justify">Decodieren:

<p style="text-align:justify">Der ASCII-Code wird hier mittels eines Software-Decoders in einen 5x8Matrix-Code konvertiert.

<p style="text-align:justify">Die Dekodierung wurde über ein zweidimensionales Feld realisiert, in welchem die 128 Zeichen des ASCII-Codes enthalten sind. Der ASCII-Code wird in 8 Byte umgewandelt, wovon jeweils ein Byte der entsprechenden Zeile entspricht.

<p style="text-align:justify"> Beispiel A

<p style="text-align:justify">1. Byte                      0b01110000


 * <p style="text-align:justify">2. Byte                      0b10001000

<p style="text-align:justify">3. Byte                      0b10001000

<p style="text-align:justify">4. Byte                      0b11111000

<p style="text-align:justify">5. Byte                      0b10001000

<p style="text-align:justify">6. Byte                      0b10001000

<p style="text-align:justify">7. Byte                      0b10001000

<p style="text-align:justify">8. Byte                      0b10001000

<p style="text-align:justify">Vier Bytes von der ersten Zeile werden über PORTC PIN4 an die Schieberegister geschickt, gespeichert und ausgegeben. Zur gleichen Zeit wird am Port D der entsprechende MOSFET eingeschaltet. Dieser Vorgang wiederholt sich bis alle 8 Bytes geschrieben sind und beginnt sofern keine neuen Buchstaben ausgegeben werden von vorne. Wenn neue Buchstaben ankommen, werden diese auf dasselbe Weise dekodiert und angezeigt.

<p style="text-align:center">Abbildung 12: Flussdiagramm Init LED

<p style="text-align:center">

5.1.3 SPI Slave
Die SPI-Schnittstelle löst einen Interrupt aus wenn sie Daten empfängt.

Jedes mal wenn Daten empfangen werden wird ein Zähler [spi-zahler] hochgezählt und mit Hilfe dieses Zählers werden die empfangenen Daten in dem Vektor ausgabe[X,X,X,X] abgespeichert. Der Vektor ausgabe[X,X,X,X] wird für die Darstellung der Werte auf der Matrix ausgelesen.

Wenn alle vier Zeichen übertragen wurden wird der Zähler wieder auf Null gesetzt.

Wenn der Code 0x01 gesendet wird, wird der Zähler ebenfalls auf null gesetzt.

<p style="text-align:center">Abbildung 15 Ausschnitt aus dem Code

Um das Programm leicht an neue Anforderungen anzupassen zu können wurde die Zuordnung der Werte mit einer Case-Funktion realisiert.

Es können so zum Beispiel um die 5 – 8 übertragen Zeichen an einer zweiten Matrix auszugeben, die Werte der Case-Funktion1-4 entsprechend in 5-8  geändert werden und  insgesamt auf acht übertragene Zeichen zählen.

 

<p style="text-align:center">Abbildung 16: Flussdiagramm Init-SPI

5.1.4 Aufgetretene Probleme

Beim Dekodeiren von Daten sind folgende Probleme aufgetreten:


 * 1.   Falsches Offset (20 statt 21)


 * 2.   nicht richtiger Datentyp für temp (unsigned int statt unsigned char)


 * 3.   Problematik der Bitablesung:


 * § Auswählen der Vorgehensweise


 * § Bitverschiebung hat nicht richtig funktionert: unerwartetes Abnullen

Beim Ausgeben von Daten sind folgende Probleme aufgetreten:


 * 1.   Falsches Pin für die Datenleitung wurde angesprochen(Tippfehler)


 * 2.   Bitverschiebung hat nicht richtig funktionert: unerwartetes Abnullen

5.2 SPI
Die Daten werden vom Minimexle über die SPI-Schnittstelle an die Steuerplatine geschickt.

Es wurde eine Library-Datei „dot_lip“ geschrieben mit der man die Funktionen der Dot-Martix ansprechen kann. Die dot-lib lehnt sich an die bekannte Libary-Datei „lcd_lib“ an.

<p style="text-align:center">Abbildung 17 SPI Master- SPI Slave

Bei der SPI werden die Daten wie bei einem Schieberegister von Master zum Slave geschoben  MOSI, gleichzeitig werden Daten vom Slave zum Master übertragen MISO.

Der Übertragungstakt wird vom Master erzeugt und über SCLK an das Slave übertragen.

Über Slave Select [SS] wird das aktuelle Slave vom Master gewählt

Zur Darstellung der zweiten Zeile wurde auf der Steuerplatine eine zweite SPI-Schnittstelle vorgesehen bei der die SS-Leitung von der Steuerplatine geschaltet werden kann. So sollte es möglich sein mit Wechseln der SS-Leitung beide Zeilen anzusprechen. Mangels einer zweiten Steuerplatine wurde diese Funktion aber noch nicht interplementiert.

<p style="text-align:center">Abbildung 18 Übertragung von Daten

 

5.2.1 SPI Einstellungen 

Für die Funktion der SPI-Schnittstelle sind drei Register notwendig

<p style="text-align:center">Abbildung 19 Drei Register

·       Data Register  enthält die zu Übermittelten Daten. Die Daten werden gesendet beim beschreiben des Registers.

·       SPI Status Register  SPIF wird high gesetzt wenn die Übertragung erfolgt ist

·       SPI Control Register   konfiguriert die SPI-Schnittstelle

                                              SPE  high – schaltet SPI ein

MSTR High – schaltet SPI auf Master

SPRO high – Taktrate Einstellung

5.2.2 Funktionen der dot-lib

 

Funktionen der Liberay:

·       send_int(int);  


 * o  Funktion sendet ein Zeichen an die Dot-Matrix. Das Zeichen ist nach den Ascii-Code vercodet.

·       dot_putstr (char *string);  


 * o  Funktion sendet Inhalt des Strings an die Dot-Matrix. Der String sollte vier Zeichen lang sein da die Matrix Aus vier Stellen besteht und nach Überlauf dieser vier Stellen auf die erste Stelle zurückspringt.

·       dot_gotoxy(unsigned char zeile, unsigned char positon );


 * o  Diese Funktion versetzt den “Schreibbeginn“


 * o  Um das Display des Minimexles vollständig darstellen zu können wurde die Wahl der  Zeile schon mal vorgesehen hat aber noch keine Funktion.


 * o  Bei dieser Funktion kam es zu Darstellungsfehlern die noch nicht gelöst wurden!

<p style="text-align:justify">·       dot_number(unsigned int zahl, unsigned char zeile, unsigned char pos, unsigned char stellen);


 * <p style="text-align:justify">o  Funktion gibt die eingegebene Zahl auf der Martix aus.

<p style="text-align:justify">·       dot_bild(unsigned char);


 * <p style="text-align:justify">o  Funktion gibt die hinterlegten Bilder aus

=6 Fazit=

<p style="text-align:justify">Das Projekt war eine sehr gute Möglichkeit unser erlerntes Wissen aus der Vorlesung in die Praxis umzusetzen und Gruppenorientiert zu arbeiten, sowie Teamfähigkeit und Kooperation für die entstandenen Nichtfunktionalitäten zu erlernen und die Lösung zu finden. Dabei wurde der Zusammenhang zwischen Theorie und Praxis sehr deutlich erkennbar. Im Großen und Ganzen war das Engagement jedes Einzelnen von großem Interesse und zeigt als Resultat eine funktionierende Hardware/Softwarefunktion, die einwandfrei läuft und sogar durch den Expandausgang erweiterbar ist. Recht herzlich möchten wir uns bei den Betreuern

<p style="text-align:justify">Prof. Dipl.-Phys. Gerhard Gruhler und Dipl.-Ing. (FH) Denis Braun für die tatkräftige Unterstützung bedanken.

<p style="text-align:justify"> 

=7 Literaturverzeichnis=

<p style="text-align:justify">Datasheet ATmega88 - doc2545

<p style="text-align:justify">Datenblatt BSL215P_Rev2.1

<p style="text-align:justify">Datenlatt ltp2158a

<p style="text-align:justify">Datenblatt M2881SURWAS530A2

<p style="text-align:justify">Datenblatt sts4dpf30l

<p style="text-align:justify">Datenblatt tpic6c596

<p style="text-align:justify">           Ulrich Tietze, Christoph Schenk: Halbleiter-Schaltungstechnik,

<p style="text-align:justify">           Springer-Verlag Berlin Heidelberg 2002,

<p style="text-align:justify">12. Auflage unter Mitarbeit von E. Gamm

Vorlesungsskript, Elektronische Schaltungstechnik, Prof. G. Gruhler