Forum: Mikrocontroller und Digitale Elektronik Mehrkanaliges PWM mit nur einem PWM-Ausgang


von PICler (Gast)


Lesenswert?

Hallo,

ich habe jetzt endlich geschafft, den PWM im PIC16F627A anzusteuern und 
zu nutzen. Aber: Er hat nur einen PWM-Ausgang (RB3), ich bräuchte aber 
zwei, da ich Ziffern ineinander überblenden möchte.

Wie ist das möglich?

Gruß
Jens

von sam (Gast)


Lesenswert?

eine PWM zu Multiplexen macht eigentlich keinen sinn ... deswegen : 
software-PWM auf 2 PINS.

von PICler (Gast)


Lesenswert?

Hm... mit Software PWM hab ich keine so guten Erfahrungen gemacht, ich 
werde es ausprobieren.

Also geht es gar nicht mit nur einem Port? Ich dachte erst: Für die 
kleine Zeitspanne (ein PWM-Zyklus) den einen Duty-Cycle-Wert verwenden, 
den nächsten den zweiten, immer im Wechsel. Wenn der PWM-Zyklus kurz 
genug ist sollte das doch gehen, oder?

von sam (Gast)


Lesenswert?

>Also geht es gar nicht mit nur einem Port? Ich dachte erst: Für die
>kleine Zeitspanne (ein PWM-Zyklus) den einen Duty-Cycle-Wert verwenden,
>den nächsten den zweiten, immer im Wechsel. Wenn der PWM-Zyklus kurz
>genug ist sollte das doch gehen, oder?

? ich weiß echt nicht wie du deinen PWM ausgang aufteilen willst ... das 
ist ein einzelner draht ... mit einer kleinen logikschaltung (z.b. UND 
mit einem weiteren ausgang) könnte man die pwm wechselweise zu dem einen 
oder andern verbraucher schalten (was für die verbraucher dann aber auch 
bedeutet nur 50% abzubekommen über die zeit gesehen)


und eine software-PWM ist immer so gut wie sie programmiert wurde.
2 Timer   oder 1 Timer mit 2 Comparewerten(PWM low) dann overflow(PWM 
high)  und Interupts ... ich wüsste nicht, was an dieser PWM auszusetzen 
wäre ...

wenn die frequenz der pwm nicht zu hoch ist, bleibt dem prozessor auch 
noch genügend rechenzeit für seine andern aufgaben.

von Peter (Gast)


Lesenswert?

sam schrieb:
>eine PWM zu Multiplexen macht eigentlich keinen sinn

Tschuldigung, wenn ich mich in diesen Thread mit reinhänge, aber ich 
habe ein ganz ähnliches Problem: Ich habe drei LED-Reihen an einem Port, 
die ich per Multiplexing ansteuere. Wenn ich jetzt noch die Helligkeit 
per PWM regeln will, dann müsste ich doch PWM und Multiplexing irgendwie 
kombinieren? Da ich ja nicht einen Hardware-PWM-Kanal auf drei 
Anschlüsse teilen kann, muss ich wohl Software-PWM verwenden. Wenn ich 
mit 100Hz 1:3 multiplexe und 256 Helligkeitsstufen brauche, bin ich bei 
(1000/100/3/256) 13yS Zykluszeit, was einer Interruptfrequenz von ca. 77 
khz entspricht. Das erscheint mir sehr viel, habe ich da irgendwo einen 
Denkfehler gemacht und das ganze geht noch einfacher?

von Alex W. (a20q90)


Lesenswert?

Software-PWM kann theoretisch sogar 16Bit-Auflösung!

Ich habe mal einen AVR programmiert und ein 16x16 RGB-Selbstbaudisplay 
mit 16M Farbtiefe gebaut (3x255 Stufen).

Das habe ich quasi in einer For 0 to 255-Schleife gemacht. Sobald ein 
Farbwert erreich wurde, wurde der Pin abgeschaltet. Somit konnte man 
quasi alle Ports des AVR als PWM-Out nutzen.

Beim PIC wird das nicht anderst sein!

von Simon K. (simon) Benutzerseite


Lesenswert?

Software-PWM kann ohne Anforderung an Frequenz sogar 666 Bit haben ;)

von Karl H. (kbuchegg)


Lesenswert?

PICler schrieb:
> Hallo,
>
> ich habe jetzt endlich geschafft, den PWM im PIC16F627A anzusteuern und
> zu nutzen. Aber: Er hat nur einen PWM-Ausgang (RB3), ich bräuchte aber
> zwei, da ich Ziffern ineinander überblenden möchte.

Kannst du nicht das PWM Signal extern mit Hühnerfutter invertieren?
Wenn du sowieso nur eine Überblendung machen willst, müsste das doch 
gehen.

von PICler (Gast)


Lesenswert?

Hey, das ist mal ne super Idee, darauf bin ich noch gar nicht gekommen! 
Einfach aber genial. Danke!

von Falk B. (falk)


Lesenswert?

@  Peter (Gast)

>mit 100Hz 1:3 multiplexe und 256 Helligkeitsstufen brauche, bin ich bei
>(1000/100/3/256) 13yS Zykluszeit, was einer Interruptfrequenz von ca. 77
>khz entspricht. Das erscheint mir sehr viel,

Ist es auch. Zu viel für praktische Anwendung.

@ Alex W. (a20q90)

>Software-PWM kann theoretisch sogar 16Bit-Auflösung!

Kaum. Siehe Soft-PWM

>Ich habe mal einen AVR programmiert und ein 16x16 RGB-Selbstbaudisplay
>mit 16M Farbtiefe gebaut (3x255 Stufen).

Im Traum.

>Das habe ich quasi in einer For 0 to 255-Schleife gemacht. Sobald ein
>Farbwert erreich wurde, wurde der Pin abgeschaltet.

WOW! Und das bei 1 Hz PWM Frequenz, was?

MFG
Falk

von Peter (Gast)


Lesenswert?

Falk Brunner schrieb:
>Ist es auch. Zu viel für praktische Anwendung.

Erst mal danke, dass mir überhaupt jemand geantwortet hat.
Allerdings bringt mich das einer Lösung noch nicht näher...

von Peter D. (peda)


Lesenswert?

PICler schrieb:
> zu nutzen. Aber: Er hat nur einen PWM-Ausgang (RB3), ich bräuchte aber
> zwei, da ich Ziffern ineinander überblenden möchte.

Was willst Du dann mit nem PWM-Ausgang ???

Du mußt beide Ziffern im Wechsel unterschiedlich lange ausgeben, z.B. 
von '6' auf '7' erst die '6' zu 100%, die '7' zu 0%, und dann langsam 
ändern, bis 0% '6' und 100% '7'.

Eine HW-PWM ist dabei völlig nutzlos.


Peter

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.