Forum: Mikrocontroller und Digitale Elektronik Schieberegister mit PWM?


von Marot (Gast)


Lesenswert?

Hallo alle,
und zwar möchte ich 8 LEDs mit Hilfe eines ATmega und eines 
Schieberegisters zum leuchten bringen. Und zwar habe ich vor sequenziell 
in das Schieberegister rein zuschreiben und dann alles parallel ausgeben 
zu lassen. Sobald aber alle Daten drin sind, soll nichts mehr weiter 
geschoben werden.

Nun stellt sich mir die Frage, ob ich das ganze nicht einfach indem ich 
die PWM missbrauche machen kann, also indem ich an den Takteingang des 
Schieberegisters ein PWM lege und dann einfach dafür sorge, dass keine 
steigende Taktflanke mehr kommt nachdem ich fertig durchgeschoben habe. 
Oder ob es da eine noch einfachere Möglichkeit gibt.

Die weitere Frage wäre, ob mein Schaltung sonst vom Prinzip her 
funktionieren würde, wenn ich da 8 Low Current LEDs am Schieberegister 
habe.
Als Schieberegister möchte ich übrigens ein 74HC164 verwenden.

von kopfkratzer (Gast)


Lesenswert?

Aha und warum hängst Du die LEDs nicht einfach an einen Port des Mega ?
Da sind acht Pins :-P

von K. B. (Gast)


Lesenswert?

Marot schrieb:
> Oder ob es da eine noch einfachere Möglichkeit gibt.

Ja, das Hardware SPI Interface benutzen.

PWM hat damit übrigens herzlich wenig zu tun bzw. wäre ein Missbrauch 
des PWM Konzepts.

von Schlumpf (Gast)


Lesenswert?

Und wie stellst du sicher, dass das entsprechende Datum zu Zeitpunkt der 
Flanke des Taktes am DI-Pin des Schieberegister anliegt???

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Nimm den 74HC595 und leg die PWM an den OE (Output Enable) Pin.

von Timm T. (Gast)


Lesenswert?

Ein anderes Schieberegister mit Output Enable nehmen, und den an den 
PWM-Ausgang des µC hängen. Dann gilt aber für alle Pins das gleiche 
Taktverhältnis.

von Toff (Gast)


Lesenswert?

So wie ich das sehe (nach kurzem Check des Datenblattes des 74HC164), 
ist dein Vorhaben mit dem von Dir gewähltem IC nicht möglich. Besorge 
Dir ein 74HC595.

von Marot (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die Empfehlung des anderen Schieberegisters und SPI. Hab 
das ganze nochmal überarbeitet. Aber ist es denn damit möglich, 
sozusagen das weiterschieben zu stoppen? Denn nur den Output zu 
aktivieren oder nicht, hilft mir ja erstmal nicht sonderlich viel oder? 
Könntet ihr das bitte genauer erklären?
Ich möchte es ja so haben, dass am Ausgang des Mikrocontrollers die 
Daten nur einmal sequenziell angelegen haben müssen und dann bis neue 
Daten kommen diese im Schieberegister bleiben und das dann die LEDs 
betreibt.

So, da ich vorhin natürlich den Schaltplan vergessen hatte, kommt der 
jetzt hier noch.

von Werner (Gast)


Lesenswert?

Marot schrieb:
> Ich möchte es ja so haben, dass am Ausgang des Mikrocontrollers die
> Daten nur einmal sequenziell angelegen haben müssen und dann bis neue
> Daten kommen diese im Schieberegister bleiben und das dann die LEDs
> betreibt.

Warum sollte sich an den Ausgängen vom 74HC595 an den Daten etwas 
ändern, wenn er keine Clock-Impulse bekommt.

von Jobst M. (jobstens-de)


Lesenswert?

QH' nicht an Masse!


Gruß

Jobst

von Karl H. (kbuchegg)


Lesenswert?

Marot schrieb:
> Vielen Dank für die Empfehlung des anderen Schieberegisters und SPI. Hab
> das ganze nochmal überarbeitet. Aber ist es denn damit möglich,
> sozusagen das weiterschieben zu stoppen? Denn nur den Output zu
> aktivieren oder nicht, hilft mir ja erstmal nicht sonderlich viel oder?
> Könntet ihr das bitte genauer erklären?

Wozu willst du was stoppen? Da sist doch viel komplizierter als einfach 
die 8 Datenbits nacheinenander mit 8 Clock-Pulsen rauszutakten!

Machs doch nicht so kompliziert und vergiss die PWM. PWM bringt dich 
hier nicht weiter. Es ist doch völlig pervers, ein simples 
Pin_Low-Pin_High-Pin_Low mit einer PWM realisieren zu wollen, nur weil 
der PWM Modus des Timers einen Pin toggeln kann. Du wirst doch wohl noch 
händisch einen Pin umschalten können! Oder den SPI benutzen - der ist 
genau dafür vorgesehen.

Schau dir halt mal an, wie so ein Schieberegister prinzipiell 
funktioniert.
AVR-Tutorial: Schieberegister

von hp-freund (Gast)


Lesenswert?

Direkt für PWM sehe ich da auch keinen Sinn.
Wenn es aber etwas mit Timing sein soll:

http://www.edn.com/design/power-management/4368093/Drive-16-LEDs-with-one-I-O-line

von hp-freund (Gast)


Lesenswert?

Wäre dann Einzel Puls Weiten Modulation EPWM ;-)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Was willst du jetz eigentlich?
PWM hat was mit Dimmen zu tun, also die Helligkeit der LEDs ändern.
Und nichts mit Schieberegister soll stehen bleiben.

Wenn nur 8 bit rein sollen und dann bleibt der Zustand statisch, dann 
legste eben kein Clock Signal mehr an.
Das macht die SPI Hardware des AVR schon von alleine.

Nen 8 bit Wert ins SPDR schreiben und der AVR gibt 8 Takte mit den Daten 
auf MOSI aus, dann ist Ruhe auf der Taktleitung un die Ausgänge des 
Schiebers bleiben gleich.

von Karl H. (kbuchegg)


Lesenswert?

Martin Wende schrieb:
> Was willst du jetz eigentlich?
> PWM hat was mit Dimmen zu tun, also die Helligkeit der LEDs ändern.

Ne, will er nicht.

Er hat halt den Begriff PWM aufgeschnappt und meint, das ist 
Allheilmittel für alles.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

PWM und Schieberegister ist wie VCC und GND.

von Jobst M. (jobstens-de)


Lesenswert?

Kan asta schrieb:
> PWM und Schieberegister ist wie VCC und GND.

Schlechtes Beispiel. Vcc und GND gehören meist irgendwie zusammen, PWM 
und Schieberegister sind aber zwei verschiedene Paar Schuhe ...

Also: Ein Schieberegister mit PWM zu takten ist eine ziemlich blöde Idee 
und bedeutet unverhältnismässig Mehraufwand, der nicht nötig ist.
Es ist sicherlich nicht unmöglich. Ohne Erfahrung wirst Du das aber 
vermutlich so nicht hinbekommen. Wenn Du die entsprechende Erfahrung 
hast, wirst Du es so auch nicht mehr lösen wollen. ;-)


Gruß

Jobst

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.