Forum: Mikrocontroller und Digitale Elektronik MSP430 an jedem PIN eine LED steuern


von Martin Müller (Gast)


Lesenswert?

Hallo,

ich habe hier einen MSP430 mit 38 Pins, wovon ich gerne 34 Pins 
verwenden möchte zum ein- / ausschalten von LEDs. Also an jedem Pin eine 
LED.

Laut Spec geht das natürlich nicht direkt, da jeder Port nur 20mA 
treiben kann...
Bzw. es würde gehen, wenn ich nicht mehr als 4-5 LEDs gleichzeitig 
einschalte.

Wie würde eine Lösung aussehen, damit ich alle 34 Pins bzw. LEDs 
einschalten kann? Ich gehe von 5mA pro LED aus. Das wären dann rund 
170mA bei 3,3V.

Benötige ich hier einen oder mehrere LED-Treiber?
Ich möchte das gerne mit so wenigen Bauteilen wie möglich realisieren.
Und jede LED muss von der SW aus erreichbar sein. Also ich möchte jede 
nur denkbar Kombination schalten können.

Herzlichen Dank und viele Grüße
Martin

von c-hater (Gast)


Lesenswert?

Martin Müller schrieb:

> Ich möchte das gerne mit so wenigen Bauteilen wie möglich realisieren.
> Und jede LED muss von der SW aus erreichbar sein. Also ich möchte jede
> nur denkbar Kombination schalten können.

Nunja, wenn du auch nur andeutungsweise in der Lage wärest, zu 
programmieren, könntest du die 34 LEDs wie gewünscht ansteuern und 
bräuchtest dazu nur 6 MOSFETs und 6 Widerstände. Und du hättest von 
deinen 34 GPIOs noch 22 für andere Zwecke über, weil du nur zwölf für 
das Multiplexing der LEDs benötigen würdest...

Aber, es ist ja nicht so, dass seit Jahrzehnten unzählige Beispiele für 
das Multiplexing von LEDs hier und anderswo veröffentlicht wurden. Nein, 
da kann man einfach mal dumm rumfragen, weil man vollkommen faul und 
100%ig merkbefreit ist...

von Frank K. (fchk)


Lesenswert?

Vorschlag:

Damit

https://www.ti.com/lit/ds/symlink/tlc5928.pdf

bekommst Du 16 LEDs angesteuert. Für 32 LEDs brauchst Du zwei von denen, 
für 48 LEDs drei, usw usw. Am Prozessor brauchst Du nur 5 Pins 
unabhängig von der Anzahl der LEDs.

fchk

von Martin Müller (Gast)


Lesenswert?

JA der TLC5928 sieht super aus.

Den würde ich gerne verwenden bzw. 1-3 Stück davon. Damit fallen dann 
auch alle Vorwiderstände weg...

Die Frage ist jetzt natürlich noch welche GPIO des MSP430 ich für die 
Eingänge SIN, SCLK, LAT, BLANK ich verwenden sollte?
Kann ich hierfür jeden beliebigen Pin wählen oder gibt es hier etwas zu 
beachten.

Vor allem sollte der SCLK vermutlich schnell generiert werden oder?
Mein MSP430 läuft mit MCLK = SMCLK = 8MHz.
Diese 8MHz würde ich natürlich gerne dem TLC5928 zur Verfügung 
stellen...

Die Schnittstelle zum TLC ist ja jetzt kein Standard (wie I2C oder SPI).
Die Ansteuerung ist nur über Bit-Banging zu realisieren oder?

Daher hätte ich jetzt im ersten Moment alle 4 Pins von einem Port 
genommen:
Etwa
P1.0 --> SCLK
P1.1 --> SIN
P1.2 --> LAT
P1.3 --> BLANK

Danke für eure Ideen hierzu!!

VG

von wv (Gast)


Lesenswert?

Hallo Martin,
doch, das ist ganz normales SPI was der TLC braucht. Also nimm auf jeden 
Fall das Hardwaremodul für SPI, was jeder MSP430 hat. Vom Modul benutzt 
Du nur Clk und MOSI, Modul auf Master konfigurieren, Baudrate nach 
Bedarf, für BLANK u. LATCH zwei GPIOs dazu und das wars.
--wv

von Frank K. (fchk)


Lesenswert?

wv schrieb:
> doch, das ist ganz normales SPI was der TLC braucht. Also nimm auf jeden
> Fall das Hardwaremodul für SPI, was jeder MSP430 hat. Vom Modul benutzt
> Du nur Clk und MOSI, Modul auf Master konfigurieren, Baudrate nach
> Bedarf, für BLANK u. LATCH zwei GPIOs dazu und das wars.

Genau! MISO kannst Du auch noch nehmen, dann kannst Du auch 
Fehlerzustände etc zurücklesen, aber das ist optional. BLANK schaltet 
alle Ausgänge ab und ist daher auch optional (auf GND legen, wenn es 
nicht gebraucht wird). LATCH wird gebraucht, und das ist ein beliebiger 
GPIO.

fchk

von Martin Müller (Gast)


Lesenswert?

Super! Vielen Dank für die Hilfe. Das werde ich beherzigen...

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.