Forum: Mikrocontroller und Digitale Elektronik Anbindung von 7-Segment LED Anzeigen an MSP430


von Sten L. (seaview)


Lesenswert?

Hallo Leute,

ich würde gerne mein erstes Microcontroller-Projekt realisieren und
dachte da an einen Wecker mit Digitalanzeige, den ich neben mein Bett
stellen kann.

Als Controller wollte ich einen MSP430-irgendwas nehmen, da ich schon
mal ein TI-Launchpad in der Hand hatte und ich auch gerne unter Linux
arbeiten möchte; Die entsprechende open-source tool chain fkt ja unter
Linux, gibt es aber sicherlich auch für andere MCUs.

Jetzt möchte ich eine Teileliste zusammen zu stellen bzw. mir eine
Schaltung überlegen und hätte dazu einige Fragen. Es wäre nett,
wenn mir jemand ein paar Tips geben könnte.

Kurz zu den grundsätzlichen Features:
- Steuerung, wie gesagt, über MSP430; mein Launchpad hat einen
  MSP430G2553, vielleicht könnte ich den ja gleich nehmen.

- Anzeige mittels vierstelliger LED 7-Segment Anzeige (können aber
  auch Einzelmodule sein, ich denke die sind leichter zu beschaffen
  bzw. die Auswahl ist hier grösser)

- Alarm über einen einfachen Signalgeber, nur laut muss er sein.

- das Einstellen von Uhr- bzw. Alarmzeit will ich über einen
  Drehimpulsgeber mit Taster realisieren: um in den Set-Modus zu
  gelangen muss ein- bzw. zweimal der Taster gedrückt werden, dann
  dreht man links oder rechts herum und je nach Drehrichtung wird die
  Zeit hoch- oder runtergezählt

- ein einfacher Schalter für Alarm an/aus mit einer einzelnen LED als
  Indikator

- ein Taster zum Unterbrechen des Alarms bis zum nächsten Tag

- alles soll dann in ein kleines Gehäuse eingebaut werden und mittels
  Steckernetzteil betrieben werden

Hier meine Fragen:

- Microcontroller

  Der MSP430 arbeitet mit ca. 3V; Gibt es alle anderen Teile auch in
  dieser Spannungsklasse, sodass ich mit einer Spannung auskomme, oder
  wird das schwierig?

- Anzeige und Treiberstufe

  Wie binde ich am einfachsten die LED-Displays an? Da gibt es ja
  verschiedene Möglichkeiten, z.B.:

  - dedizierter Treiber-IC, z.B. MAX695? oder SAA1064 und
    Anbindung über SPI bzw. I2C. Die Anbindung über die serielle
    Schnittstelle

    Bei Reichelt gibt es einen MAX6958 im DIL Gehäuse. Denkt ihr
    das könnte damit klappen?

    http://www.maximintegrated.com/datasheet/index.mvp/id/3638/t/al

    Wie wäre es mit einem SAA1064 (gibt es auch bei Reichelt)? Da gibt
    es z.B. bei Youtube ein Video, in dem ein 4stelliges Display
    mittels SAA1064 an einem Launchpad angebunden wird. Allerdings
    gibt es zum Video keine weitere Erklärungen nur Hillbilly-Musik. ;)

    http://www.youtube.com/watch?v=orzU15I8PFY

  - Porterweiterung mittels Schieberegister

    Ist das softwareseitig aufwendiger als mit einem "richtigen" LED
    Treiber-IC?

- generelle Frage zu den Spannungen

  Was die Auswahl der Komponenten für mich gerade etwas schwierig
  macht, sind die unterschiedlichen benötigten Spannungen. Deshalb
  eine eher grundsätzliche Frage: Sollte ich versuchen eher alles auf
  eine Spannung hin auszulegen, z.B. alles 5V (dann könnte ich
  natürlich keinen MSP430 nehmen) oder ist das eher kein Problem 3V
  und 5V Komponenten zu mixen und ich muss mir die benötigten
  Spannungen (z.B. mittels Spannungswandler) erzeugen? Aufwand ist
  sicher nicht so gross.

Ok, es wäre echt super, wenn mir jemand meine Anfänger-Fragen
beantworten könnte. Schon mal Vielen Dank im voraus. :)

VG, Sten

von Harald (Gast)


Lesenswert?

Hallo Sten,
es gibt viele Löungsansätze, einen davon siehe im Text eingefügt.

Sten L. schrieb:
> - Microcontroller
>
>   Der MSP430 arbeitet mit ca. 3V; Gibt es alle anderen Teile auch in
>   dieser Spannungsklasse, sodass ich mit einer Spannung auskomme, oder
>   wird das schwierig?

Meist ist das zu vielen 5V Komponenten kompatibel, da die Schaltschwelle 
oftmals (nicht immer) bei 2,4V liegt. Nur in der anderen Richtung zum uC 
hin (falls erforderlich) muss man eine Anpassung per Teiler machen.

>
> - Anzeige und Treiberstufe
>
>   Wie binde ich am einfachsten die LED-Displays an? Da gibt es ja
>   verschiedene Möglichkeiten, z.B.:
>
>   - dedizierter Treiber-IC, z.B. MAX695? oder SAA1064 und
>     Anbindung über SPI bzw. I2C. Die Anbindung über die serielle
>     Schnittstelle
>
>     Bei Reichelt gibt es einen MAX6958 im DIL Gehäuse. Denkt ihr
>     das könnte damit klappen?
>
>     http://www.maximintegrated.com/datasheet/index.mvp...
>
>     Wie wäre es mit einem SAA1064 (gibt es auch bei Reichelt)? Da gibt
>     es z.B. bei Youtube ein Video, in dem ein 4stelliges Display
>     mittels SAA1064 an einem Launchpad angebunden wird. Allerdings
>     gibt es zum Video keine weitere Erklärungen nur Hillbilly-Musik. ;)
>
>     http://www.youtube.com/watch?v=orzU15I8PFY
>
>   - Porterweiterung mittels Schieberegister
>
>     Ist das softwareseitig aufwendiger als mit einem "richtigen" LED
>     Treiber-IC?
>

Ein einfaches Schieberegister ist meiner Meinung nach der einfachste Weg 
für den Anfang. Nimm einfach 4 Stück 74HC595 (Durchschleifen siehe 
Tutorials), packe die an 3,3V oder auch 5V und steuere mit den Ausgängen 
die LEDs an.
"Richtige" Treiber-ICs sind für den Anfang meist schwieriger zu 
verstehen, da diese oftmals mehr Optionen bieten, die man natürlich auch 
alle verstehen und umsetzen muss.

> - generelle Frage zu den Spannungen
>
>   Was die Auswahl der Komponenten für mich gerade etwas schwierig
>   macht, sind die unterschiedlichen benötigten Spannungen. Deshalb
>   eine eher grundsätzliche Frage: Sollte ich versuchen eher alles auf
>   eine Spannung hin auszulegen, z.B. alles 5V (dann könnte ich
>   natürlich keinen MSP430 nehmen) oder ist das eher kein Problem 3V
>   und 5V Komponenten zu mixen und ich muss mir die benötigten
>   Spannungen (z.B. mittels Spannungswandler) erzeugen? Aufwand ist
>   sicher nicht so gross.

Siehe oben.

von Peter D. (peda)


Lesenswert?

Sten L. schrieb:
> - Porterweiterung mittels Schieberegister
>
>     Ist das softwareseitig aufwendiger als mit einem "richtigen" LED
>     Treiber-IC?

Nein, ist sehr einfach. Nur die Bytes per SPI rausschieben.
Das Layout wird auch sehr einfach.
Allerdings brauchst Du für jedes Segment einen Widerstand zur 
Stromeinstellung. Am besten nimm ein 8-fach Array je Digit (8*470R).

Ich würde zu 8 Digits raten. Dann kann man mehr darstellen (Sekunden, 
Datum) und bei der Anzeige eine Lücke zwischen Minuten und Stunden 
lassen.


Peter

von 16 Bit (Gast)


Lesenswert?

TI hat ein eigenes WIKI. Da gibts Infos und Projekte:
http://processors.wiki.ti.com/index.php/MSP430_Launchpad_Seven-Segment_Display_Driver

Du kannst mehrere Segmente parallel anschließen und die die Anoden (oder 
Kathoden je nach Display) multiplexen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.