16-Segment-Dekoder (mit CPLD)


zurück zu Elektronik, Homepage


4. Demonstrationsbeispiel

Das folgende Beispiel dient nur zur Demonstration. Es zeigt eine mögliche Einbindung der im Abschnitt 3 beschriebenen Tabelle.

Diese Dateien können im 5. Download-Berich gedownloadet werden.

nach oben

4.1. Schaltung

Das obige Bild zeigt die sehr einfache Schaltung dieses Demonstrationsbeispiels. Sie besteht im Wesentlichen aus dem zu programmierenden Logikbausteins (IC1) vom Typ EPM7064 und der 16-Segment-Anzeige (LD1) vom Typ PSA08-12EWA. Der Logikbaustein ist ein so genanntes CPLD (Complex Programmable Logic Device).
Die 10polige Anschlussleiste JTAG dient zur Programmierung des Logikbausteins IC1. Die Programmierung erfolgt mit einem speziellen Downloadkabel.

Die Kondensatoren C1 bis C3 dienen zur Pufferung der Betriebsspannung für den Logikbaustein.

Eine Takterzeugung für den Logikbaustein ist hier nicht notwendig, da die programmierte Logik eine reine kombinatorische Logik in Form einer sehr großen Wahrheitstabelle ist. Aus demselben Grund ist auch keine Reset-Schaltung notwendig. Die Pins 43 (Takt) und 1 (Reset) bleiben daher unbeschaltet.

Die Widerstände R1 bis R16 sind so genannte Strombegrenzungswiderstände, während das Widerstandsarray R17 als so genannte Pull-Up-Widerstände für die Eingänge dienen.

Die Stromversorgung kann zwischen 2.5V und 5V liegen, wobei die Tendenz zu niedrigen Betriebsspannung geht, da hier die Verlustleistung deutlich geringer ist.

nach oben

4.2. Software

%****************************************************************************%
%* Demonstrationsbeispiel 1 zum 16-Segment-Dekoder (in AHDL)                *%
%*                                                                          *%
%* CPLD-Typ: EPM7064SLC44-10                                                *%
%*                                                                          *%
%* Entwickler: Buchgeher Stefan                                             *%
%* Entwicklungsbeginn: 11. Juni 2005                                        *%
%* Funktionsfaehig seit: 11. Juni 2005                                      *%
%* Letzte Bearbeitung: 8. Juli 2005                                         *%
%****************************************************************************%


%***************** Include-Dateien ******************************************%
include "16_SEGM_DEKODER.INC";


%***************** Definition der Ein- und Ausgaenge ************************%
SUBDESIGN 16_Segment_Dekoder
(
        inASCII[6..0]                : INPUT;

        a,b,c,d,e,f,g,h              : OUTPUT;
        k,m,n,p,r,s,t,u              : OUTPUT;
)


%***************** Definition der Variablen *********************************%
VARIABLE
        iAnzeige                     : 16_SEGM_DEKODER;


%***************** Beginn der Schaltungsbeschreibung ************************%
BEGIN
        iAnzeige.in[] = inASCII[];

        a = !iAnzeige.out[15];
        b = !iAnzeige.out[14];
        c = !iAnzeige.out[13];
        d = !iAnzeige.out[12];
        e = !iAnzeige.out[11];
        f = !iAnzeige.out[10];
        g = !iAnzeige.out[9];
        h = !iAnzeige.out[8];
        k = !iAnzeige.out[7];
        m = !iAnzeige.out[6];
        n = !iAnzeige.out[5];
        p = !iAnzeige.out[4];
        r = !iAnzeige.out[3];
        s = !iAnzeige.out[2];
        t = !iAnzeige.out[1];
        u = !iAnzeige.out[0];
END;
nach oben

4.3. Anmerkungen zur Software

Die in AHDL geschriebene Software besteht hier nur aus der Einbindung der Wahrheitstabelle vom Abschnitt 3 und der Definition der Ein- und Ausgänge. Die Einbindung erfolgt mit Hilfe der Include-Anweisung

include "16_SEGM_DEKODER.INC";

Bei den Ausgängen ist anzumerken, dass diese lowaktiv sind, da ja eine Anzeige mit gemeinsamer Anode verwendet wird. Das bedeutet, dass ein Segment nur dann leuchten kann, wenn der Ausgang des CPLD low ist. In der Software bedeutet dass, dass diese Ausgänge invertiert werden müssen. Diese Invertierung erfolgt mit "!" zB.

a = !iAnzeige.out[15];

Die Software benötigt 61 Makrozellen, füllt also das verwendete CPLD (mit 64 Makrozellen) fast vollständig aus.

nach oben

4.4. Nachbauanleitung

Schritt 1: Platinen herstellen

Zu diesem Zweck kann im Download-Bereich ein Layout (im Ordner HArdware) gedownloadet und ausgedruckt werden.

Selbstverständlich kann eine eigene Platine entworfen werden, die den eigenen Anforderungen entspricht.

Schritt 2: Platinen bestücken

Das Bestücken einer Platine ist erst dann sinnvoll, wenn alle für diese Platine benötigten Bauteile vorhanden sind. Es sollten generell nur erstklassige und neuwertige Bauteile verwendet werden. Auf Bauteile aus ausgeschlachteten Geräten sollte grundsätzlich verzichtet werden, da ihre Funktionalität nicht gewährleistet ist, und eine unnötige Fehlersuche dadurch vermieden werden kann.

Weiters sollte ausreichend Platz und vor allem ausreichend Zeit für die Bestückung und Verdrahtung der Platinen vorhanden sein.

Die Bauelemente entsprechend den unteren Bildern (Bauteilseite und Lötseite) der folgenden Reihenfolge, der Stückliste und dem Schaltplan bestücken. Die nach dem anlöten überstehenden Anschlüsse mit einem kleinen Seitenschneider entfernen.

Reihenfolge zur Bestückung der Platine:

Schritt 3: Test

Schritt 4: Inbetriebnahme

nach oben

4.5. Stückliste

Nr.             Bezeichnung               St.  Liefe-   Bestell   E-     Bemerkungen
                                               rant      -Nr.     Preis
------------------------------------------------------------------------------------
R1 - R16        Widerstand 120 Ohm        16   Farnell  613-599   0,028  SMD 1206
R7              Widerstandsarray 8x1k      1   Conrad   414190    0,33
R18, R19        Widerstand 0 Ohm           2   Farenll  772-240   0,028  SMD 1206

C1, C2          Keramikkondensator 22pF    2   Conrad   453366    0,35
                220nF (RM5,08)
C3              Elko 22µF/25V              1   Conrad   460575    0,15

LD1             16-Segment-Anzeige         1   RS       451-6622  2,83
                (PSA08-12EWA)

IC1             EPM7064SLV44-10            1   Farnell  300-5860  9,60

                PLCC-Fassung 44polig       1   Conrad   189731    1,15   für IC1

                Stiftleiste 2reihig        1   Conrad   732478    0,79   Preis für 2x36polig
                (2x5polig)                                               (für JTAG)
                Buchsenleiste 7polig       2   Conrad   740438    1,15   Preis für 32polig
                                                                         (für ASCII-Eingäng)
                Buchsenleiste 9polig       2   Conrad   740438    1,15   Preis für 32polig
                                                                         (für LD)

                Platinen-Basismaterial     1   Conrad   529214    1,95   Preis für 75x100mm
                                                                         (einseitig)

                Distanz M3x10              4                             (optional)
                Mutter M3x10               4                             (optional)
                Zahnscheibe M3x10          4                             (optional)

  
nach oben


zurück zu Elektronik, Homepage

Autor: Buchgeher Stefan
Erstellt: 20. Juli 2005
Letzte Änderung: